[Midnightbsd-cvs] src [9176] vendor/xz/dist: 5.2.2 from git
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sat Oct 15 12:14:07 EDT 2016
Revision: 9176
http://svnweb.midnightbsd.org/src/?rev=9176
Author: laffer1
Date: 2016-10-15 12:14:07 -0400 (Sat, 15 Oct 2016)
Log Message:
-----------
5.2.2 from git
Modified Paths:
--------------
vendor/xz/dist/ChangeLog
vendor/xz/dist/THANKS
vendor/xz/dist/TODO
vendor/xz/dist/src/common/mythread.h
vendor/xz/dist/src/common/sysdefs.h
vendor/xz/dist/src/common/tuklib_cpucores.c
vendor/xz/dist/src/common/tuklib_integer.h
vendor/xz/dist/src/common/tuklib_physmem.c
vendor/xz/dist/src/liblzma/api/lzma/base.h
vendor/xz/dist/src/liblzma/api/lzma/block.h
vendor/xz/dist/src/liblzma/api/lzma/container.h
vendor/xz/dist/src/liblzma/api/lzma/filter.h
vendor/xz/dist/src/liblzma/api/lzma/hardware.h
vendor/xz/dist/src/liblzma/api/lzma/index.h
vendor/xz/dist/src/liblzma/api/lzma/index_hash.h
vendor/xz/dist/src/liblzma/api/lzma/version.h
vendor/xz/dist/src/liblzma/api/lzma.h
vendor/xz/dist/src/liblzma/check/check.h
vendor/xz/dist/src/liblzma/check/sha256.c
vendor/xz/dist/src/liblzma/common/alone_decoder.c
vendor/xz/dist/src/liblzma/common/alone_decoder.h
vendor/xz/dist/src/liblzma/common/alone_encoder.c
vendor/xz/dist/src/liblzma/common/auto_decoder.c
vendor/xz/dist/src/liblzma/common/block_buffer_decoder.c
vendor/xz/dist/src/liblzma/common/block_buffer_encoder.c
vendor/xz/dist/src/liblzma/common/block_decoder.c
vendor/xz/dist/src/liblzma/common/block_decoder.h
vendor/xz/dist/src/liblzma/common/block_encoder.c
vendor/xz/dist/src/liblzma/common/block_encoder.h
vendor/xz/dist/src/liblzma/common/block_header_decoder.c
vendor/xz/dist/src/liblzma/common/block_header_encoder.c
vendor/xz/dist/src/liblzma/common/block_util.c
vendor/xz/dist/src/liblzma/common/common.c
vendor/xz/dist/src/liblzma/common/common.h
vendor/xz/dist/src/liblzma/common/easy_buffer_encoder.c
vendor/xz/dist/src/liblzma/common/easy_encoder.c
vendor/xz/dist/src/liblzma/common/filter_buffer_decoder.c
vendor/xz/dist/src/liblzma/common/filter_buffer_encoder.c
vendor/xz/dist/src/liblzma/common/filter_common.c
vendor/xz/dist/src/liblzma/common/filter_common.h
vendor/xz/dist/src/liblzma/common/filter_decoder.c
vendor/xz/dist/src/liblzma/common/filter_decoder.h
vendor/xz/dist/src/liblzma/common/filter_encoder.c
vendor/xz/dist/src/liblzma/common/filter_encoder.h
vendor/xz/dist/src/liblzma/common/filter_flags_decoder.c
vendor/xz/dist/src/liblzma/common/index.c
vendor/xz/dist/src/liblzma/common/index_decoder.c
vendor/xz/dist/src/liblzma/common/index_encoder.c
vendor/xz/dist/src/liblzma/common/index_encoder.h
vendor/xz/dist/src/liblzma/common/index_hash.c
vendor/xz/dist/src/liblzma/common/stream_buffer_decoder.c
vendor/xz/dist/src/liblzma/common/stream_buffer_encoder.c
vendor/xz/dist/src/liblzma/common/stream_decoder.c
vendor/xz/dist/src/liblzma/common/stream_decoder.h
vendor/xz/dist/src/liblzma/common/stream_encoder.c
vendor/xz/dist/src/liblzma/delta/delta_common.c
vendor/xz/dist/src/liblzma/delta/delta_decoder.c
vendor/xz/dist/src/liblzma/delta/delta_decoder.h
vendor/xz/dist/src/liblzma/delta/delta_encoder.c
vendor/xz/dist/src/liblzma/delta/delta_encoder.h
vendor/xz/dist/src/liblzma/delta/delta_private.h
vendor/xz/dist/src/liblzma/liblzma.pc.in
vendor/xz/dist/src/liblzma/lz/lz_decoder.c
vendor/xz/dist/src/liblzma/lz/lz_decoder.h
vendor/xz/dist/src/liblzma/lz/lz_encoder.c
vendor/xz/dist/src/liblzma/lz/lz_encoder.h
vendor/xz/dist/src/liblzma/lz/lz_encoder_mf.c
vendor/xz/dist/src/liblzma/lzma/fastpos.h
vendor/xz/dist/src/liblzma/lzma/lzma2_decoder.c
vendor/xz/dist/src/liblzma/lzma/lzma2_decoder.h
vendor/xz/dist/src/liblzma/lzma/lzma2_encoder.c
vendor/xz/dist/src/liblzma/lzma/lzma2_encoder.h
vendor/xz/dist/src/liblzma/lzma/lzma_common.h
vendor/xz/dist/src/liblzma/lzma/lzma_decoder.c
vendor/xz/dist/src/liblzma/lzma/lzma_decoder.h
vendor/xz/dist/src/liblzma/lzma/lzma_encoder.c
vendor/xz/dist/src/liblzma/lzma/lzma_encoder.h
vendor/xz/dist/src/liblzma/lzma/lzma_encoder_optimum_fast.c
vendor/xz/dist/src/liblzma/lzma/lzma_encoder_optimum_normal.c
vendor/xz/dist/src/liblzma/lzma/lzma_encoder_private.h
vendor/xz/dist/src/liblzma/rangecoder/range_decoder.h
vendor/xz/dist/src/liblzma/simple/arm.c
vendor/xz/dist/src/liblzma/simple/armthumb.c
vendor/xz/dist/src/liblzma/simple/ia64.c
vendor/xz/dist/src/liblzma/simple/powerpc.c
vendor/xz/dist/src/liblzma/simple/simple_coder.c
vendor/xz/dist/src/liblzma/simple/simple_coder.h
vendor/xz/dist/src/liblzma/simple/simple_decoder.c
vendor/xz/dist/src/liblzma/simple/simple_decoder.h
vendor/xz/dist/src/liblzma/simple/simple_private.h
vendor/xz/dist/src/liblzma/simple/sparc.c
vendor/xz/dist/src/liblzma/simple/x86.c
vendor/xz/dist/src/xz/args.c
vendor/xz/dist/src/xz/args.h
vendor/xz/dist/src/xz/coder.c
vendor/xz/dist/src/xz/coder.h
vendor/xz/dist/src/xz/file_io.c
vendor/xz/dist/src/xz/file_io.h
vendor/xz/dist/src/xz/hardware.c
vendor/xz/dist/src/xz/hardware.h
vendor/xz/dist/src/xz/list.c
vendor/xz/dist/src/xz/main.c
vendor/xz/dist/src/xz/message.c
vendor/xz/dist/src/xz/options.c
vendor/xz/dist/src/xz/private.h
vendor/xz/dist/src/xz/signals.c
vendor/xz/dist/src/xz/suffix.c
vendor/xz/dist/src/xz/xz.1
Added Paths:
-----------
vendor/xz/dist/src/liblzma/api/lzma/lzma12.h
vendor/xz/dist/src/liblzma/common/block_buffer_encoder.h
vendor/xz/dist/src/liblzma/common/hardware_cputhreads.c
vendor/xz/dist/src/liblzma/common/memcmplen.h
vendor/xz/dist/src/liblzma/common/outqueue.c
vendor/xz/dist/src/liblzma/common/outqueue.h
vendor/xz/dist/src/liblzma/common/stream_encoder_mt.c
vendor/xz/dist/src/liblzma/liblzma.map
vendor/xz/dist/src/liblzma/validate_map.sh
vendor/xz/dist/src/xz/mytime.c
vendor/xz/dist/src/xz/mytime.h
Removed Paths:
-------------
vendor/xz/dist/ABOUT-NLS
vendor/xz/dist/COPYING.GPLv2
vendor/xz/dist/COPYING.GPLv3
vendor/xz/dist/COPYING.LGPLv2.1
vendor/xz/dist/INSTALL
vendor/xz/dist/INSTALL.generic
vendor/xz/dist/NEWS
vendor/xz/dist/PACKAGERS
vendor/xz/dist/doc/
vendor/xz/dist/lib/
vendor/xz/dist/po/
vendor/xz/dist/src/common/common_w32res.rc
vendor/xz/dist/src/liblzma/api/lzma/lzma.h
vendor/xz/dist/src/liblzma/check/Makefile.inc
vendor/xz/dist/src/liblzma/common/Makefile.inc
vendor/xz/dist/src/liblzma/common/stream_encoder.h
vendor/xz/dist/src/liblzma/delta/Makefile.inc
vendor/xz/dist/src/liblzma/liblzma_w32res.rc
vendor/xz/dist/src/liblzma/lz/Makefile.inc
vendor/xz/dist/src/liblzma/lzma/Makefile.inc
vendor/xz/dist/src/liblzma/rangecoder/Makefile.inc
vendor/xz/dist/src/liblzma/simple/Makefile.inc
vendor/xz/dist/src/lzmainfo/lzmainfo_w32res.rc
vendor/xz/dist/src/scripts/
vendor/xz/dist/src/xz/xz_w32res.rc
vendor/xz/dist/src/xzdec/lzmadec_w32res.rc
vendor/xz/dist/src/xzdec/xzdec_w32res.rc
Deleted: vendor/xz/dist/ABOUT-NLS
===================================================================
--- vendor/xz/dist/ABOUT-NLS 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/ABOUT-NLS 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,1327 +0,0 @@
-1 Notes on the Free Translation Project
-***************************************
-
-Free software is going international! The Free Translation Project is
-a way to get maintainers of free software, translators, and users all
-together, so that free software will gradually become able to speak many
-languages. A few packages already provide translations for their
-messages.
-
- If you found this `ABOUT-NLS' file inside a distribution, you may
-assume that the distributed package does use GNU `gettext' internally,
-itself available at your nearest GNU archive site. But you do _not_
-need to install GNU `gettext' prior to configuring, installing or using
-this package with messages translated.
-
- Installers will find here some useful hints. These notes also
-explain how users should proceed for getting the programs to use the
-available translations. They tell how people wanting to contribute and
-work on translations can contact the appropriate team.
-
- When reporting bugs in the `intl/' directory or bugs which may be
-related to internationalization, you should tell about the version of
-`gettext' which is used. The information can be found in the
-`intl/VERSION' file, in internationalized packages.
-
-1.1 Quick configuration advice
-==============================
-
-If you want to exploit the full power of internationalization, you
-should configure it using
-
- ./configure --with-included-gettext
-
-to force usage of internationalizing routines provided within this
-package, despite the existence of internationalizing capabilities in the
-operating system where this package is being installed. So far, only
-the `gettext' implementation in the GNU C library version 2 provides as
-many features (such as locale alias, message inheritance, automatic
-charset conversion or plural form handling) as the implementation here.
-It is also not possible to offer this additional functionality on top
-of a `catgets' implementation. Future versions of GNU `gettext' will
-very likely convey even more functionality. So it might be a good idea
-to change to GNU `gettext' as soon as possible.
-
- So you need _not_ provide this option if you are using GNU libc 2 or
-you have installed a recent copy of the GNU gettext package with the
-included `libintl'.
-
-1.2 INSTALL Matters
-===================
-
-Some packages are "localizable" when properly installed; the programs
-they contain can be made to speak your own native language. Most such
-packages use GNU `gettext'. Other packages have their own ways to
-internationalization, predating GNU `gettext'.
-
- By default, this package will be installed to allow translation of
-messages. It will automatically detect whether the system already
-provides the GNU `gettext' functions. If not, the included GNU
-`gettext' library will be used. This library is wholly contained
-within this package, usually in the `intl/' subdirectory, so prior
-installation of the GNU `gettext' package is _not_ required.
-Installers may use special options at configuration time for changing
-the default behaviour. The commands:
-
- ./configure --with-included-gettext
- ./configure --disable-nls
-
-will, respectively, bypass any pre-existing `gettext' to use the
-internationalizing routines provided within this package, or else,
-_totally_ disable translation of messages.
-
- When you already have GNU `gettext' installed on your system and run
-configure without an option for your new package, `configure' will
-probably detect the previously built and installed `libintl.a' file and
-will decide to use this. This might not be desirable. You should use
-the more recent version of the GNU `gettext' library. I.e. if the file
-`intl/VERSION' shows that the library which comes with this package is
-more recent, you should use
-
- ./configure --with-included-gettext
-
-to prevent auto-detection.
-
- The configuration process will not test for the `catgets' function
-and therefore it will not be used. The reason is that even an
-emulation of `gettext' on top of `catgets' could not provide all the
-extensions of the GNU `gettext' library.
-
- Internationalized packages usually have many `po/LL.po' files, where
-LL gives an ISO 639 two-letter code identifying the language. Unless
-translations have been forbidden at `configure' time by using the
-`--disable-nls' switch, all available translations are installed
-together with the package. However, the environment variable `LINGUAS'
-may be set, prior to configuration, to limit the installed set.
-`LINGUAS' should then contain a space separated list of two-letter
-codes, stating which languages are allowed.
-
-1.3 Using This Package
-======================
-
-As a user, if your language has been installed for this package, you
-only have to set the `LANG' environment variable to the appropriate
-`LL_CC' combination. If you happen to have the `LC_ALL' or some other
-`LC_xxx' environment variables set, you should unset them before
-setting `LANG', otherwise the setting of `LANG' will not have the
-desired effect. Here `LL' is an ISO 639 two-letter language code, and
-`CC' is an ISO 3166 two-letter country code. For example, let's
-suppose that you speak German and live in Germany. At the shell
-prompt, merely execute `setenv LANG de_DE' (in `csh'),
-`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
-This can be done from your `.login' or `.profile' file, once and for
-all.
-
- You might think that the country code specification is redundant.
-But in fact, some languages have dialects in different countries. For
-example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
-country code serves to distinguish the dialects.
-
- The locale naming convention of `LL_CC', with `LL' denoting the
-language and `CC' denoting the country, is the one use on systems based
-on GNU libc. On other systems, some variations of this scheme are
-used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
-locales supported by your system for your language by running the
-command `locale -a | grep '^LL''.
-
- Not all programs have translations for all languages. By default, an
-English message is shown in place of a nonexistent translation. If you
-understand other languages, you can set up a priority list of languages.
-This is done through a different environment variable, called
-`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
-for the purpose of message handling, but you still need to have `LANG'
-set to the primary language; this is required by other parts of the
-system libraries. For example, some Swedish users who would rather
-read translations in German than English for when Swedish is not
-available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
-
- Special advice for Norwegian users: The language code for Norwegian
-bokma*l changed from `no' to `nb' recently (in 2003). During the
-transition period, while some message catalogs for this language are
-installed under `nb' and some older ones under `no', it's recommended
-for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
-older translations are used.
-
- In the `LANGUAGE' environment variable, but not in the `LANG'
-environment variable, `LL_CC' combinations can be abbreviated as `LL'
-to denote the language's main dialect. For example, `de' is equivalent
-to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
-(Portuguese as spoken in Portugal) in this context.
-
-1.4 Translating Teams
-=====================
-
-For the Free Translation Project to be a success, we need interested
-people who like their own language and write it well, and who are also
-able to synergize with other translators speaking the same language.
-Each translation team has its own mailing list. The up-to-date list of
-teams can be found at the Free Translation Project's homepage,
-`http://translationproject.org/', in the "Teams" area.
-
- If you'd like to volunteer to _work_ at translating messages, you
-should become a member of the translating team for your own language.
-The subscribing address is _not_ the same as the list itself, it has
-`-request' appended. For example, speakers of Swedish can send a
-message to `sv-request at li.org', having this message body:
-
- subscribe
-
- Keep in mind that team members are expected to participate
-_actively_ in translations, or at solving translational difficulties,
-rather than merely lurking around. If your team does not exist yet and
-you want to start one, or if you are unsure about what to do or how to
-get started, please write to `coordinator at translationproject.org' to
-reach the coordinator for all translator teams.
-
- The English team is special. It works at improving and uniformizing
-the terminology in use. Proven linguistic skills are praised more than
-programming skills, here.
-
-1.5 Available Packages
-======================
-
-Languages are not equally supported in all packages. The following
-matrix shows the current state of internationalization, as of May 2010.
-The matrix shows, in regard of each package, for which languages PO
-files have been submitted to translation coordination, with a
-translation percentage of at least 50%.
-
- Ready PO files af am ar as ast az be be at latin bg bn_IN bs ca crh
- +---------------------------------------------------+
- a2ps | [] [] |
- aegis | |
- ant-phone | |
- anubis | |
- aspell | [] [] |
- bash | |
- bfd | |
- bibshelf | [] |
- binutils | |
- bison | |
- bison-runtime | [] |
- bluez-pin | [] [] |
- bombono-dvd | |
- buzztard | |
- cflow | |
- clisp | |
- coreutils | [] [] |
- cpio | |
- cppi | |
- cpplib | [] |
- cryptsetup | |
- dfarc | |
- dialog | [] [] |
- dico | |
- diffutils | [] |
- dink | |
- doodle | |
- e2fsprogs | [] |
- enscript | [] |
- exif | |
- fetchmail | [] |
- findutils | [] |
- flex | [] |
- freedink | |
- gas | |
- gawk | [] [] |
- gcal | [] |
- gcc | |
- gettext-examples | [] [] [] [] |
- gettext-runtime | [] [] [] |
- gettext-tools | [] [] |
- gip | [] |
- gjay | |
- gliv | [] |
- glunarclock | [] [] |
- gnubiff | |
- gnucash | [] |
- gnuedu | |
- gnulib | |
- gnunet | |
- gnunet-gtk | |
- gnutls | |
- gold | |
- gpe-aerial | |
- gpe-beam | |
- gpe-bluetooth | |
- gpe-calendar | |
- gpe-clock | [] |
- gpe-conf | |
- gpe-contacts | |
- gpe-edit | |
- gpe-filemanager | |
- gpe-go | |
- gpe-login | |
- gpe-ownerinfo | [] |
- gpe-package | |
- gpe-sketchbook | |
- gpe-su | [] |
- gpe-taskmanager | [] |
- gpe-timesheet | [] |
- gpe-today | [] |
- gpe-todo | |
- gphoto2 | |
- gprof | [] |
- gpsdrive | |
- gramadoir | |
- grep | |
- grub | [] [] |
- gsasl | |
- gss | |
- gst-plugins-bad | [] |
- gst-plugins-base | [] |
- gst-plugins-good | [] |
- gst-plugins-ugly | [] |
- gstreamer | [] [] [] |
- gtick | |
- gtkam | [] |
- gtkorphan | [] |
- gtkspell | [] [] [] |
- gutenprint | |
- hello | [] |
- help2man | |
- hylafax | |
- idutils | |
- indent | [] [] |
- iso_15924 | |
- iso_3166 | [] [] [] [] [] [] [] [] |
- iso_3166_2 | |
- iso_4217 | |
- iso_639 | [] [] [] [] [] |
- iso_639_3 | [] |
- jwhois | |
- kbd | |
- keytouch | [] |
- keytouch-editor | |
- keytouch-keyboa... | [] |
- klavaro | [] |
- latrine | |
- ld | [] |
- leafpad | [] [] |
- libc | [] [] |
- libexif | () |
- libextractor | |
- libgnutls | |
- libgpewidget | |
- libgpg-error | |
- libgphoto2 | |
- libgphoto2_port | |
- libgsasl | |
- libiconv | [] |
- libidn | |
- lifelines | |
- liferea | [] [] |
- lilypond | |
- linkdr | [] |
- lordsawar | |
- lprng | |
- lynx | [] |
- m4 | |
- mailfromd | |
- mailutils | |
- make | |
- man-db | |
- man-db-manpages | |
- minicom | |
- mkisofs | |
- myserver | |
- nano | [] [] |
- opcodes | |
- parted | |
- pies | |
- popt | |
- psmisc | |
- pspp | [] |
- pwdutils | |
- radius | [] |
- recode | [] [] |
- rosegarden | |
- rpm | |
- rush | |
- sarg | |
- screem | |
- scrollkeeper | [] [] [] |
- sed | [] [] |
- sharutils | [] [] |
- shishi | |
- skencil | |
- solfege | |
- solfege-manual | |
- soundtracker | |
- sp | |
- sysstat | |
- tar | [] |
- texinfo | |
- tin | |
- unicode-han-tra... | |
- unicode-transla... | |
- util-linux-ng | [] |
- vice | |
- vmm | |
- vorbis-tools | |
- wastesedge | |
- wdiff | |
- wget | [] [] |
- wyslij-po | |
- xchat | [] [] [] [] |
- xdg-user-dirs | [] [] [] [] [] [] [] [] [] |
- xkeyboard-config | [] [] [] |
- +---------------------------------------------------+
- af am ar as ast az be be at latin bg bn_IN bs ca crh
- 6 0 2 3 19 1 11 3 28 3 1 38 5
-
- cs da de el en en_GB en_ZA eo es et eu fa fi
- +-------------------------------------------------+
- a2ps | [] [] [] [] [] [] [] [] |
- aegis | [] [] [] |
- ant-phone | [] () |
- anubis | [] [] [] |
- aspell | [] [] [] [] [] |
- bash | [] [] [] [] |
- bfd | [] [] |
- bibshelf | [] [] [] [] |
- binutils | [] [] |
- bison | [] [] [] |
- bison-runtime | [] [] [] [] [] |
- bluez-pin | [] [] [] [] [] [] [] |
- bombono-dvd | [] [] |
- buzztard | [] [] [] |
- cflow | [] [] [] |
- clisp | [] [] [] [] |
- coreutils | [] [] [] [] |
- cpio | [] |
- cppi | [] |
- cpplib | [] [] [] |
- cryptsetup | [] |
- dfarc | [] [] [] [] |
- dialog | [] [] [] [] [] |
- dico | |
- diffutils | [] [] [] [] [] [] [] |
- dink | [] [] [] |
- doodle | [] |
- e2fsprogs | [] [] [] |
- enscript | [] [] [] |
- exif | () [] [] [] |
- fetchmail | [] [] () [] [] [] |
- findutils | [] [] [] [] |
- flex | [] [] [] |
- freedink | [] [] [] [] |
- gas | [] |
- gawk | [] [] [] |
- gcal | [] |
- gcc | [] [] |
- gettext-examples | [] [] [] [] [] |
- gettext-runtime | [] [] [] [] [] |
- gettext-tools | [] [] [] |
- gip | [] [] [] [] [] |
- gjay | [] [] |
- gliv | [] [] [] [] |
- glunarclock | [] [] [] |
- gnubiff | () |
- gnucash | [] () () () () () |
- gnuedu | [] [] |
- gnulib | [] [] [] |
- gnunet | |
- gnunet-gtk | [] |
- gnutls | [] [] |
- gold | [] [] |
- gpe-aerial | [] [] [] [] [] |
- gpe-beam | [] [] [] [] [] |
- gpe-bluetooth | [] [] [] |
- gpe-calendar | [] [] |
- gpe-clock | [] [] [] [] [] |
- gpe-conf | [] [] [] [] |
- gpe-contacts | [] [] [] [] |
- gpe-edit | [] [] [] |
- gpe-filemanager | [] [] [] [] |
- gpe-go | [] [] [] [] [] |
- gpe-login | [] [] [] |
- gpe-ownerinfo | [] [] [] [] [] |
- gpe-package | [] [] [] [] |
- gpe-sketchbook | [] [] [] [] [] |
- gpe-su | [] [] [] [] [] |
- gpe-taskmanager | [] [] [] [] [] |
- gpe-timesheet | [] [] [] [] [] |
- gpe-today | [] [] [] [] [] |
- gpe-todo | [] [] [] [] |
- gphoto2 | [] [] () [] [] [] [] |
- gprof | [] [] [] [] |
- gpsdrive | [] [] [] |
- gramadoir | [] [] [] |
- grep | [] [] |
- grub | [] [] [] |
- gsasl | [] [] |
- gss | [] |
- gst-plugins-bad | [] [] [] [] [] [] |
- gst-plugins-base | [] [] [] [] [] [] |
- gst-plugins-good | [] [] [] [] [] [] [] |
- gst-plugins-ugly | [] [] [] [] [] [] [] |
- gstreamer | [] [] [] [] [] [] |
- gtick | [] () [] [] |
- gtkam | [] [] () [] [] |
- gtkorphan | [] [] [] [] |
- gtkspell | [] [] [] [] [] [] [] [] |
- gutenprint | [] [] [] [] |
- hello | [] [] [] [] [] |
- help2man | [] [] |
- hylafax | [] [] |
- idutils | [] [] [] |
- indent | [] [] [] [] [] [] [] [] |
- iso_15924 | [] () [] [] [] |
- iso_3166 | [] [] [] () [] [] [] () [] |
- iso_3166_2 | () |
- iso_4217 | [] [] [] () [] [] [] |
- iso_639 | [] [] [] () [] [] [] |
- iso_639_3 | |
- jwhois | [] [] |
- kbd | [] [] [] [] [] |
- keytouch | [] [] [] |
- keytouch-editor | [] [] [] |
- keytouch-keyboa... | [] [] |
- klavaro | [] [] [] [] |
- latrine | [] () [] |
- ld | [] [] [] |
- leafpad | [] [] [] [] [] [] [] |
- libc | [] [] [] [] [] |
- libexif | [] [] () |
- libextractor | |
- libgnutls | [] |
- libgpewidget | [] [] [] |
- libgpg-error | [] [] |
- libgphoto2 | [] () |
- libgphoto2_port | [] () [] |
- libgsasl | [] |
- libiconv | [] [] [] [] [] [] |
- libidn | [] [] [] [] |
- lifelines | [] () |
- liferea | [] [] [] [] [] |
- lilypond | [] [] [] [] |
- linkdr | [] [] [] [] |
- lordsawar | [] |
- lprng | |
- lynx | [] [] [] [] |
- m4 | [] [] [] [] [] |
- mailfromd | |
- mailutils | [] |
- make | [] [] [] [] |
- man-db | |
- man-db-manpages | |
- minicom | [] [] [] [] [] |
- mkisofs | [] |
- myserver | |
- nano | [] [] [] [] |
- opcodes | [] [] [] |
- parted | [] [] |
- pies | |
- popt | [] [] [] [] [] [] |
- psmisc | [] [] [] [] |
- pspp | [] |
- pwdutils | [] |
- radius | [] |
- recode | [] [] [] [] [] [] [] |
- rosegarden | () () () () |
- rpm | [] [] [] |
- rush | |
- sarg | |
- screem | |
- scrollkeeper | [] [] [] [] [] [] |
- sed | [] [] [] [] [] [] [] |
- sharutils | [] [] [] [] [] |
- shishi | |
- skencil | [] () [] |
- solfege | [] [] [] [] |
- solfege-manual | [] [] |
- soundtracker | [] [] [] |
- sp | [] |
- sysstat | [] [] [] [] |
- tar | [] [] [] [] [] |
- texinfo | [] [] [] |
- tin | [] [] |
- unicode-han-tra... | |
- unicode-transla... | |
- util-linux-ng | [] [] [] [] [] |
- vice | () () |
- vmm | [] |
- vorbis-tools | [] [] |
- wastesedge | [] |
- wdiff | [] [] [] |
- wget | [] [] [] [] |
- wyslij-po | [] |
- xchat | [] [] [] [] [] [] |
- xdg-user-dirs | [] [] [] [] [] [] [] [] [] |
- xkeyboard-config | [] [] [] [] [] [] |
- +-------------------------------------------------+
- cs da de el en en_GB en_ZA eo es et eu fa fi
- 64 105 117 18 1 8 0 28 89 18 19 0 104
-
- fr ga gl gu he hi hr hu hy id is it ja ka kn
- +------------------------------------------------+
- a2ps | [] [] [] |
- aegis | [] [] |
- ant-phone | [] [] |
- anubis | [] [] [] |
- aspell | [] [] [] [] |
- bash | [] [] [] |
- bfd | [] [] |
- bibshelf | [] [] [] [] |
- binutils | [] [] |
- bison | [] [] [] |
- bison-runtime | [] [] [] [] [] |
- bluez-pin | [] [] [] [] [] [] [] |
- bombono-dvd | |
- buzztard | [] |
- cflow | [] [] |
- clisp | [] |
- coreutils | [] [] [] [] [] |
- cpio | [] [] [] |
- cppi | [] |
- cpplib | [] [] |
- cryptsetup | [] [] [] |
- dfarc | [] [] |
- dialog | [] [] [] [] [] [] [] |
- dico | |
- diffutils | [] [] [] [] [] [] [] [] |
- dink | [] |
- doodle | [] [] |
- e2fsprogs | [] [] |
- enscript | [] [] [] [] |
- exif | [] [] [] [] [] |
- fetchmail | [] [] [] [] |
- findutils | [] [] [] [] [] |
- flex | [] [] |
- freedink | [] [] |
- gas | [] [] |
- gawk | [] [] [] [] () [] |
- gcal | [] |
- gcc | [] |
- gettext-examples | [] [] [] [] [] [] |
- gettext-runtime | [] [] [] [] [] |
- gettext-tools | [] [] [] [] |
- gip | [] [] [] [] [] |
- gjay | |
- gliv | () |
- glunarclock | [] [] [] |
- gnubiff | () [] () |
- gnucash | () () () () [] |
- gnuedu | [] [] |
- gnulib | [] [] [] [] [] |
- gnunet | |
- gnunet-gtk | [] |
- gnutls | [] [] |
- gold | [] |
- gpe-aerial | [] [] |
- gpe-beam | [] [] [] |
- gpe-bluetooth | [] [] [] |
- gpe-calendar | [] |
- gpe-clock | [] [] [] [] |
- gpe-conf | [] [] [] |
- gpe-contacts | [] [] [] |
- gpe-edit | [] [] |
- gpe-filemanager | [] [] [] |
- gpe-go | [] [] [] [] |
- gpe-login | [] [] |
- gpe-ownerinfo | [] [] [] [] |
- gpe-package | [] [] |
- gpe-sketchbook | [] [] [] |
- gpe-su | [] [] [] [] [] |
- gpe-taskmanager | [] [] [] [] |
- gpe-timesheet | [] [] [] [] |
- gpe-today | [] [] [] [] [] [] |
- gpe-todo | [] [] |
- gphoto2 | [] [] [] [] [] |
- gprof | [] [] [] |
- gpsdrive | [] [] [] |
- gramadoir | [] [] [] |
- grep | [] |
- grub | [] [] [] |
- gsasl | [] [] [] [] |
- gss | [] [] [] [] |
- gst-plugins-bad | [] [] [] [] |
- gst-plugins-base | [] [] [] [] [] |
- gst-plugins-good | [] [] [] [] [] |
- gst-plugins-ugly | [] [] [] [] [] |
- gstreamer | [] [] [] [] |
- gtick | [] [] [] [] |
- gtkam | [] [] [] [] [] |
- gtkorphan | [] [] [] |
- gtkspell | [] [] [] [] [] [] [] [] |
- gutenprint | [] [] [] |
- hello | [] [] |
- help2man | [] |
- hylafax | [] |
- idutils | [] [] [] [] [] |
- indent | [] [] [] [] [] [] [] |
- iso_15924 | () [] [] |
- iso_3166 | () [] [] [] [] [] [] [] [] [] [] |
- iso_3166_2 | () [] [] [] |
- iso_4217 | () [] [] [] [] |
- iso_639 | () [] [] [] [] [] [] [] |
- iso_639_3 | () [] [] |
- jwhois | [] [] [] [] |
- kbd | [] [] |
- keytouch | [] [] [] [] [] |
- keytouch-editor | [] [] [] [] |
- keytouch-keyboa... | [] [] [] [] |
- klavaro | [] [] |
- latrine | [] [] |
- ld | [] [] [] |
- leafpad | [] [] [] [] [] [] () |
- libc | [] [] [] [] |
- libexif | |
- libextractor | |
- libgnutls | [] [] |
- libgpewidget | [] [] [] |
- libgpg-error | [] [] |
- libgphoto2 | [] [] [] |
- libgphoto2_port | [] [] [] |
- libgsasl | [] [] [] [] |
- libiconv | [] [] [] [] [] |
- libidn | [] [] [] |
- lifelines | () |
- liferea | [] [] [] [] |
- lilypond | [] |
- linkdr | [] [] [] [] |
- lordsawar | |
- lprng | [] |
- lynx | [] [] [] [] [] |
- m4 | [] [] [] [] [] |
- mailfromd | |
- mailutils | [] [] |
- make | [] [] [] [] [] [] [] [] |
- man-db | [] [] |
- man-db-manpages | [] |
- minicom | [] [] [] [] |
- mkisofs | [] [] [] |
- myserver | |
- nano | [] [] [] [] [] |
- opcodes | [] [] [] |
- parted | [] [] [] [] |
- pies | |
- popt | [] [] [] [] [] [] [] [] |
- psmisc | [] [] |
- pspp | |
- pwdutils | [] [] |
- radius | [] [] |
- recode | [] [] [] [] [] [] [] |
- rosegarden | () () () () |
- rpm | [] [] |
- rush | |
- sarg | [] |
- screem | [] [] |
- scrollkeeper | [] [] [] |
- sed | [] [] [] [] [] [] [] |
- sharutils | [] [] [] [] [] [] |
- shishi | [] |
- skencil | [] |
- solfege | [] [] [] |
- solfege-manual | [] [] |
- soundtracker | [] [] |
- sp | [] () |
- sysstat | [] [] [] [] |
- tar | [] [] [] [] [] [] |
- texinfo | [] [] [] [] |
- tin | [] |
- unicode-han-tra... | |
- unicode-transla... | [] [] |
- util-linux-ng | [] [] [] [] [] |
- vice | () () () |
- vmm | [] |
- vorbis-tools | [] |
- wastesedge | () () |
- wdiff | |
- wget | [] [] [] [] [] [] [] |
- wyslij-po | [] [] |
- xchat | [] [] [] [] [] [] [] [] |
- xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] |
- xkeyboard-config | [] [] [] [] |
- +------------------------------------------------+
- fr ga gl gu he hi hr hu hy id is it ja ka kn
- 121 53 20 4 8 2 5 53 2 120 5 83 66 0 4
-
- ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
- +-----------------------------------------------+
- a2ps | [] |
- aegis | |
- ant-phone | |
- anubis | [] [] |
- aspell | [] |
- bash | |
- bfd | |
- bibshelf | [] [] |
- binutils | |
- bison | [] |
- bison-runtime | [] [] [] [] [] |
- bluez-pin | [] [] [] [] [] |
- bombono-dvd | |
- buzztard | |
- cflow | |
- clisp | |
- coreutils | [] |
- cpio | |
- cppi | |
- cpplib | |
- cryptsetup | |
- dfarc | [] |
- dialog | [] [] [] [] [] |
- dico | |
- diffutils | [] [] |
- dink | |
- doodle | |
- e2fsprogs | |
- enscript | |
- exif | [] |
- fetchmail | |
- findutils | |
- flex | |
- freedink | [] |
- gas | |
- gawk | |
- gcal | |
- gcc | |
- gettext-examples | [] [] [] [] |
- gettext-runtime | [] |
- gettext-tools | [] |
- gip | [] [] |
- gjay | |
- gliv | |
- glunarclock | [] |
- gnubiff | |
- gnucash | () () () () |
- gnuedu | |
- gnulib | |
- gnunet | |
- gnunet-gtk | |
- gnutls | [] |
- gold | |
- gpe-aerial | [] |
- gpe-beam | [] |
- gpe-bluetooth | [] [] |
- gpe-calendar | [] |
- gpe-clock | [] [] [] [] [] |
- gpe-conf | [] [] |
- gpe-contacts | [] [] |
- gpe-edit | [] |
- gpe-filemanager | [] [] |
- gpe-go | [] [] [] |
- gpe-login | [] |
- gpe-ownerinfo | [] [] |
- gpe-package | [] [] |
- gpe-sketchbook | [] [] |
- gpe-su | [] [] [] [] [] [] |
- gpe-taskmanager | [] [] [] [] [] [] |
- gpe-timesheet | [] [] |
- gpe-today | [] [] [] [] |
- gpe-todo | [] [] |
- gphoto2 | |
- gprof | [] |
- gpsdrive | |
- gramadoir | |
- grep | |
- grub | |
- gsasl | |
- gss | |
- gst-plugins-bad | [] [] |
- gst-plugins-base | [] [] |
- gst-plugins-good | [] [] |
- gst-plugins-ugly | [] [] [] [] [] |
- gstreamer | |
- gtick | |
- gtkam | [] |
- gtkorphan | [] [] |
- gtkspell | [] [] [] [] [] [] [] |
- gutenprint | |
- hello | [] [] [] |
- help2man | |
- hylafax | |
- idutils | |
- indent | |
- iso_15924 | [] [] |
- iso_3166 | [] [] () [] [] [] [] [] |
- iso_3166_2 | |
- iso_4217 | [] [] |
- iso_639 | [] [] |
- iso_639_3 | [] |
- jwhois | [] |
- kbd | |
- keytouch | [] |
- keytouch-editor | [] |
- keytouch-keyboa... | [] |
- klavaro | [] |
- latrine | [] |
- ld | |
- leafpad | [] [] [] |
- libc | [] |
- libexif | |
- libextractor | |
- libgnutls | [] |
- libgpewidget | [] [] |
- libgpg-error | |
- libgphoto2 | |
- libgphoto2_port | |
- libgsasl | |
- libiconv | |
- libidn | |
- lifelines | |
- liferea | |
- lilypond | |
- linkdr | |
- lordsawar | |
- lprng | |
- lynx | |
- m4 | |
- mailfromd | |
- mailutils | |
- make | [] |
- man-db | |
- man-db-manpages | |
- minicom | [] |
- mkisofs | |
- myserver | |
- nano | [] [] |
- opcodes | |
- parted | |
- pies | |
- popt | [] [] [] |
- psmisc | |
- pspp | |
- pwdutils | |
- radius | |
- recode | |
- rosegarden | |
- rpm | |
- rush | |
- sarg | |
- screem | |
- scrollkeeper | [] [] |
- sed | |
- sharutils | |
- shishi | |
- skencil | |
- solfege | [] |
- solfege-manual | |
- soundtracker | |
- sp | |
- sysstat | [] |
- tar | [] |
- texinfo | [] |
- tin | |
- unicode-han-tra... | |
- unicode-transla... | |
- util-linux-ng | |
- vice | |
- vmm | |
- vorbis-tools | |
- wastesedge | |
- wdiff | |
- wget | [] |
- wyslij-po | |
- xchat | [] [] [] |
- xdg-user-dirs | [] [] [] [] [] [] [] [] |
- xkeyboard-config | [] [] [] |
- +-----------------------------------------------+
- ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
- 20 5 10 1 12 48 4 2 2 4 24 10 19 3 1
-
- nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr
- +---------------------------------------------------+
- a2ps | [] [] [] [] [] [] [] [] |
- aegis | [] [] [] |
- ant-phone | [] [] |
- anubis | [] [] [] |
- aspell | [] [] [] [] [] |
- bash | [] [] |
- bfd | [] |
- bibshelf | [] [] |
- binutils | [] [] |
- bison | [] [] [] |
- bison-runtime | [] [] [] [] [] [] [] |
- bluez-pin | [] [] [] [] [] [] [] [] |
- bombono-dvd | [] () |
- buzztard | [] [] |
- cflow | [] |
- clisp | [] [] |
- coreutils | [] [] [] [] [] [] |
- cpio | [] [] [] |
- cppi | [] |
- cpplib | [] |
- cryptsetup | [] |
- dfarc | [] |
- dialog | [] [] [] [] |
- dico | [] |
- diffutils | [] [] [] [] [] [] |
- dink | () |
- doodle | [] [] |
- e2fsprogs | [] [] |
- enscript | [] [] [] [] [] |
- exif | [] [] [] () [] |
- fetchmail | [] [] [] [] |
- findutils | [] [] [] [] [] |
- flex | [] [] [] [] [] |
- freedink | [] [] |
- gas | |
- gawk | [] [] [] [] |
- gcal | |
- gcc | [] |
- gettext-examples | [] [] [] [] [] [] [] [] |
- gettext-runtime | [] [] [] [] [] [] [] [] [] |
- gettext-tools | [] [] [] [] [] [] |
- gip | [] [] [] [] [] |
- gjay | |
- gliv | [] [] [] [] [] [] |
- glunarclock | [] [] [] [] [] |
- gnubiff | [] () |
- gnucash | [] () () () |
- gnuedu | [] |
- gnulib | [] [] [] [] |
- gnunet | |
- gnunet-gtk | |
- gnutls | [] [] |
- gold | |
- gpe-aerial | [] [] [] [] [] [] [] |
- gpe-beam | [] [] [] [] [] [] [] |
- gpe-bluetooth | [] [] |
- gpe-calendar | [] [] [] [] |
- gpe-clock | [] [] [] [] [] [] [] [] |
- gpe-conf | [] [] [] [] [] [] [] |
- gpe-contacts | [] [] [] [] [] |
- gpe-edit | [] [] [] |
- gpe-filemanager | [] [] [] |
- gpe-go | [] [] [] [] [] [] [] [] |
- gpe-login | [] [] |
- gpe-ownerinfo | [] [] [] [] [] [] [] [] |
- gpe-package | [] [] |
- gpe-sketchbook | [] [] [] [] [] [] [] |
- gpe-su | [] [] [] [] [] [] [] [] |
- gpe-taskmanager | [] [] [] [] [] [] [] [] |
- gpe-timesheet | [] [] [] [] [] [] [] [] |
- gpe-today | [] [] [] [] [] [] [] [] |
- gpe-todo | [] [] [] [] [] |
- gphoto2 | [] [] [] [] [] [] [] [] |
- gprof | [] [] [] |
- gpsdrive | [] [] |
- gramadoir | [] [] |
- grep | [] [] [] [] |
- grub | [] [] [] |
- gsasl | [] [] [] [] |
- gss | [] [] [] |
- gst-plugins-bad | [] [] [] [] [] |
- gst-plugins-base | [] [] [] [] [] |
- gst-plugins-good | [] [] [] [] [] |
- gst-plugins-ugly | [] [] [] [] [] [] |
- gstreamer | [] [] [] [] [] |
- gtick | [] [] [] |
- gtkam | [] [] [] [] [] [] |
- gtkorphan | [] |
- gtkspell | [] [] [] [] [] [] [] [] [] [] |
- gutenprint | [] [] |
- hello | [] [] [] [] |
- help2man | [] [] |
- hylafax | [] |
- idutils | [] [] [] [] [] |
- indent | [] [] [] [] [] [] [] |
- iso_15924 | [] [] [] [] |
- iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] |
- iso_3166_2 | [] [] [] |
- iso_4217 | [] [] [] [] [] [] [] [] |
- iso_639 | [] [] [] [] [] [] [] [] [] |
- iso_639_3 | [] [] |
- jwhois | [] [] [] [] |
- kbd | [] [] [] |
- keytouch | [] [] [] |
- keytouch-editor | [] [] [] |
- keytouch-keyboa... | [] [] [] |
- klavaro | [] [] |
- latrine | [] [] |
- ld | |
- leafpad | [] [] [] [] [] [] [] [] [] |
- libc | [] [] [] [] |
- libexif | [] [] () [] |
- libextractor | |
- libgnutls | [] [] |
- libgpewidget | [] [] [] |
- libgpg-error | [] [] |
- libgphoto2 | [] [] |
- libgphoto2_port | [] [] [] [] |
- libgsasl | [] [] [] [] [] |
- libiconv | [] [] [] [] [] |
- libidn | [] [] |
- lifelines | [] [] |
- liferea | [] [] [] [] [] () () [] |
- lilypond | [] |
- linkdr | [] [] [] |
- lordsawar | |
- lprng | [] |
- lynx | [] [] [] |
- m4 | [] [] [] [] [] |
- mailfromd | [] |
- mailutils | [] |
- make | [] [] [] [] |
- man-db | [] [] [] |
- man-db-manpages | [] [] [] |
- minicom | [] [] [] [] |
- mkisofs | [] [] [] |
- myserver | |
- nano | [] [] [] [] |
- opcodes | [] [] |
- parted | [] [] [] [] |
- pies | [] |
- popt | [] [] [] [] |
- psmisc | [] [] [] |
- pspp | [] [] |
- pwdutils | [] |
- radius | [] [] [] |
- recode | [] [] [] [] [] [] [] [] |
- rosegarden | () () |
- rpm | [] [] [] |
- rush | [] [] |
- sarg | |
- screem | |
- scrollkeeper | [] [] [] [] [] [] [] [] |
- sed | [] [] [] [] [] [] [] [] [] |
- sharutils | [] [] [] [] |
- shishi | [] |
- skencil | [] [] |
- solfege | [] [] [] [] |
- solfege-manual | [] [] [] |
- soundtracker | [] |
- sp | |
- sysstat | [] [] [] [] |
- tar | [] [] [] [] |
- texinfo | [] [] [] [] |
- tin | [] |
- unicode-han-tra... | |
- unicode-transla... | |
- util-linux-ng | [] [] [] [] [] |
- vice | [] |
- vmm | [] |
- vorbis-tools | [] [] |
- wastesedge | [] |
- wdiff | [] [] |
- wget | [] [] [] [] [] [] [] |
- wyslij-po | [] [] [] |
- xchat | [] [] [] [] [] [] [] [] [] |
- xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] |
- xkeyboard-config | [] [] [] [] [] |
- +---------------------------------------------------+
- nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr
- 135 10 4 7 105 1 29 61 47 91 3 55 47 8 37
-
- sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW
- +---------------------------------------------------+
- a2ps | [] [] [] [] [] | 27
- aegis | [] | 9
- ant-phone | [] [] [] [] | 9
- anubis | [] [] [] [] | 15
- aspell | [] [] [] | 20
- bash | [] [] | 11
- bfd | [] | 6
- bibshelf | [] [] [] | 16
- binutils | [] [] | 8
- bison | [] [] | 12
- bison-runtime | [] [] [] [] [] [] | 29
- bluez-pin | [] [] [] [] [] [] [] [] | 37
- bombono-dvd | [] | 4
- buzztard | [] | 7
- cflow | [] [] [] | 9
- clisp | | 10
- coreutils | [] [] [] [] | 22
- cpio | [] [] [] [] [] [] | 13
- cppi | [] [] | 5
- cpplib | [] [] [] [] [] [] | 13
- cryptsetup | [] [] | 7
- dfarc | [] | 9
- dialog | [] [] [] [] [] [] [] | 30
- dico | [] | 2
- diffutils | [] [] [] [] [] [] | 30
- dink | | 4
- doodle | [] [] | 7
- e2fsprogs | [] [] [] | 11
- enscript | [] [] [] [] | 17
- exif | [] [] [] | 16
- fetchmail | [] [] [] | 17
- findutils | [] [] [] [] [] | 20
- flex | [] [] [] [] | 15
- freedink | [] | 10
- gas | [] | 4
- gawk | [] [] [] [] | 18
- gcal | [] [] | 5
- gcc | [] [] [] | 7
- gettext-examples | [] [] [] [] [] [] [] | 34
- gettext-runtime | [] [] [] [] [] [] [] | 30
- gettext-tools | [] [] [] [] [] [] | 22
- gip | [] [] [] [] | 22
- gjay | [] | 3
- gliv | [] [] [] | 14
- glunarclock | [] [] [] [] [] | 19
- gnubiff | [] [] | 4
- gnucash | () [] () () | 9
- gnuedu | [] [] | 7
- gnulib | [] [] [] [] | 16
- gnunet | [] | 1
- gnunet-gtk | [] [] [] | 5
- gnutls | [] [] [] | 10
- gold | [] | 4
- gpe-aerial | [] [] [] | 18
- gpe-beam | [] [] [] | 19
- gpe-bluetooth | [] [] [] | 13
- gpe-calendar | [] [] [] [] | 12
- gpe-clock | [] [] [] [] [] | 28
- gpe-conf | [] [] [] [] | 20
- gpe-contacts | [] [] [] | 17
- gpe-edit | [] [] [] | 12
- gpe-filemanager | [] [] [] [] | 16
- gpe-go | [] [] [] [] [] | 25
- gpe-login | [] [] [] | 11
- gpe-ownerinfo | [] [] [] [] [] | 25
- gpe-package | [] [] [] | 13
- gpe-sketchbook | [] [] [] | 20
- gpe-su | [] [] [] [] [] | 30
- gpe-taskmanager | [] [] [] [] [] | 29
- gpe-timesheet | [] [] [] [] [] | 25
- gpe-today | [] [] [] [] [] [] | 30
- gpe-todo | [] [] [] [] | 17
- gphoto2 | [] [] [] [] [] | 24
- gprof | [] [] [] | 15
- gpsdrive | [] [] [] | 11
- gramadoir | [] [] [] | 11
- grep | [] [] [] | 10
- grub | [] [] [] | 14
- gsasl | [] [] [] [] | 14
- gss | [] [] [] | 11
- gst-plugins-bad | [] [] [] [] | 22
- gst-plugins-base | [] [] [] [] [] | 24
- gst-plugins-good | [] [] [] [] [] | 25
- gst-plugins-ugly | [] [] [] [] [] | 29
- gstreamer | [] [] [] [] | 22
- gtick | [] [] [] | 13
- gtkam | [] [] [] | 20
- gtkorphan | [] [] [] | 14
- gtkspell | [] [] [] [] [] [] [] [] [] | 45
- gutenprint | [] | 10
- hello | [] [] [] [] [] [] | 21
- help2man | [] [] | 7
- hylafax | [] | 5
- idutils | [] [] [] [] | 17
- indent | [] [] [] [] [] [] | 30
- iso_15924 | () [] () [] [] | 16
- iso_3166 | [] [] () [] [] () [] [] [] () | 53
- iso_3166_2 | () [] () [] | 9
- iso_4217 | [] () [] [] () [] [] | 26
- iso_639 | [] [] [] () [] () [] [] [] [] | 38
- iso_639_3 | [] () | 8
- jwhois | [] [] [] [] [] | 16
- kbd | [] [] [] [] [] | 15
- keytouch | [] [] [] | 16
- keytouch-editor | [] [] [] | 14
- keytouch-keyboa... | [] [] [] | 14
- klavaro | [] | 11
- latrine | [] [] [] | 10
- ld | [] [] [] [] | 11
- leafpad | [] [] [] [] [] [] | 33
- libc | [] [] [] [] [] | 21
- libexif | [] () | 6
- libextractor | [] | 1
- libgnutls | [] [] [] | 9
- libgpewidget | [] [] [] | 14
- libgpg-error | [] [] [] | 9
- libgphoto2 | [] [] | 8
- libgphoto2_port | [] [] [] [] | 13
- libgsasl | [] [] [] | 13
- libiconv | [] [] [] [] | 21
- libidn | () [] [] | 11
- lifelines | [] | 4
- liferea | [] [] [] | 21
- lilypond | [] | 7
- linkdr | [] [] [] [] [] | 17
- lordsawar | | 1
- lprng | [] | 3
- lynx | [] [] [] [] | 17
- m4 | [] [] [] [] | 19
- mailfromd | [] [] | 3
- mailutils | [] | 5
- make | [] [] [] [] | 21
- man-db | [] [] [] | 8
- man-db-manpages | | 4
- minicom | [] [] | 16
- mkisofs | [] [] | 9
- myserver | | 0
- nano | [] [] [] [] | 21
- opcodes | [] [] [] | 11
- parted | [] [] [] [] [] | 15
- pies | [] [] | 3
- popt | [] [] [] [] [] [] | 27
- psmisc | [] [] | 11
- pspp | | 4
- pwdutils | [] [] | 6
- radius | [] [] | 9
- recode | [] [] [] [] | 28
- rosegarden | () | 0
- rpm | [] [] [] | 11
- rush | [] [] | 4
- sarg | | 1
- screem | [] | 3
- scrollkeeper | [] [] [] [] [] | 27
- sed | [] [] [] [] [] | 30
- sharutils | [] [] [] [] [] | 22
- shishi | [] | 3
- skencil | [] [] | 7
- solfege | [] [] [] [] | 16
- solfege-manual | [] | 8
- soundtracker | [] [] [] | 9
- sp | [] | 3
- sysstat | [] [] | 15
- tar | [] [] [] [] [] [] | 23
- texinfo | [] [] [] [] | 16
- tin | | 4
- unicode-han-tra... | | 0
- unicode-transla... | | 2
- util-linux-ng | [] [] [] [] | 20
- vice | () () | 1
- vmm | [] | 4
- vorbis-tools | [] | 6
- wastesedge | | 2
- wdiff | [] [] | 7
- wget | [] [] [] [] [] | 26
- wyslij-po | [] [] | 8
- xchat | [] [] [] [] [] [] | 36
- xdg-user-dirs | [] [] [] [] [] [] [] [] [] | 60
- xkeyboard-config | [] [] [] [] | 25
- +---------------------------------------------------+
- 84 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW
- 178 domains 119 1 3 2 0 10 66 50 155 17 97 7 41 2610
-
- Some counters in the preceding matrix are higher than the number of
-visible blocks let us expect. This is because a few extra PO files are
-used for implementing regional variants of languages, or language
-dialects.
-
- For a PO file in the matrix above to be effective, the package to
-which it applies should also have been internationalized and
-distributed as such by its maintainer. There might be an observable
-lag between the mere existence a PO file and its wide availability in a
-distribution.
-
- If May 2010 seems to be old, you may fetch a more recent copy of
-this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
-matrix with full percentage details can be found at
-`http://translationproject.org/extra/matrix.html'.
-
-1.6 Using `gettext' in new packages
-===================================
-
-If you are writing a freely available program and want to
-internationalize it you are welcome to use GNU `gettext' in your
-package. Of course you have to respect the GNU Library General Public
-License which covers the use of the GNU `gettext' library. This means
-in particular that even non-free programs can use `libintl' as a shared
-library, whereas only free software can use `libintl' as a static
-library or use modified versions of `libintl'.
-
- Once the sources are changed appropriately and the setup can handle
-the use of `gettext' the only thing missing are the translations. The
-Free Translation Project is also available for packages which are not
-developed inside the GNU project. Therefore the information given above
-applies also for every other Free Software Project. Contact
-`coordinator at translationproject.org' to make the `.pot' files available
-to the translation teams.
-
Deleted: vendor/xz/dist/COPYING.GPLv2
===================================================================
--- vendor/xz/dist/COPYING.GPLv2 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/COPYING.GPLv2 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,339 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
Deleted: vendor/xz/dist/COPYING.GPLv3
===================================================================
--- vendor/xz/dist/COPYING.GPLv3 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/COPYING.GPLv3 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
Deleted: vendor/xz/dist/COPYING.LGPLv2.1
===================================================================
--- vendor/xz/dist/COPYING.LGPLv2.1 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/COPYING.LGPLv2.1 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,504 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
Modified: vendor/xz/dist/ChangeLog
===================================================================
--- vendor/xz/dist/ChangeLog 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/ChangeLog 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,129 +1,768 @@
-commit 265e5ffb70d9c175b424621576294d28807efd9b
+commit 9815cdf6987ef91a85493bfcfd1ce2aaf3b47a0a
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Sep 29 13:59:35 2015 +0300
+
+ Bump version and soname for 5.2.2.
+
+commit cbe0cec8476bdd0416c7ca9bc83895c9bea1cf78
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Sep 29 13:57:28 2015 +0300
+
+ Update NEWS for 5.2.2.
+
+commit 49427ce7eececdd18bbd35dab23c81910d083e1c
+Author: Andre Noll <maan at tuebingen.mpg.de>
+Date: Thu May 28 15:50:00 2015 +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.
+
+commit 608d6f06c940e7f28c25de005e8b99bdff42d27c
+Author: Hauke Henningsen <sqrt at entless.org>
+Date: Mon Aug 17 04:59:54 2015 +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 at tuebingen.mpg.de>
+
+ * Update after msgmerge
+
+commit c8988414e5b67b8ef2fe0ba7b1ccdd0ec73c60d3
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Aug 11 13:23:04 2015 +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.
+
+commit 85a6dfed53477906bfe9a7c0123dd412e391cb48
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Aug 11 13:21:52 2015 +0300
+
+ Build: Support building of MSYS2 binaries.
+
+commit 77f270be8432df2e4516a0c48814b6976d6618c5
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Aug 9 21:06:26 2015 +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.
+
+commit 8c975446c5903090a5a8493b5b96b71003056a88
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Aug 9 21:02:20 2015 +0300
+
+ Windows: Omit unneeded header files from MSVC project files.
+
+commit 119a00434954726ca58e4a578e6469f530fca30e
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Jul 12 20:48:19 2015 +0300
+
+ liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer.
+
+commit d4e7c557fcab353539c9481a8d95cb04bcb15c7c
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jun 19 20:38:55 2015 +0300
+
+ Update THANKS.
+
+commit 98001740ca56c894a7bd32eb47e9857a8a7d878d
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jun 19 20:21:30 2015 +0300
+
+ Windows: Update the docs.
+
+commit 28195e4c877007cc760ecea1d17f740693d66873
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jun 19 17:25:31 2015 +0300
+
+ Windows: Add MSVC project files for building liblzma.
+
+ Thanks to Adam Walling for creating these files.
+
+commit 960440f3230dc628f6966d9f7614fc1b28baf44e
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed May 13 20:57:55 2015 +0300
+
+ Tests: Fix a memory leak in test_bcj_exact_size.
+
+ Thanks to Cristian Rodríguez.
+
+commit 68cd35acafbdcdf4e8ea8b5bb843c736939d6f8b
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue May 12 18:08:24 2015 +0300
+
+ Fix NEWS about threading in 5.2.0.
+
+ Thanks to Andy Hochhaus.
+
+commit ff96ed6d25786728356017a13baf8c14731b4f1e
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon May 11 21:26:16 2015 +0300
+
+ xz: Document that threaded decompression hasn't been implemented yet.
+
+commit 00d37b64a64ea8597fd2422d5187afd761ab9531
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Apr 20 20:20:29 2015 +0300
+
+ Update THANKS.
+
+commit db190a832c49ca3aed6d69cc992fa5583cae7b11
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Apr 20 19:59:18 2015 +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.
+
+commit eccd8155e107c5ada03d13e7730675cdf1a44ddc
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Mar 29 22:14:47 2015 +0300
+
+ Update THANKS.
+
+commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Mar 29 22:13:48 2015 +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.
+
+commit 4c544d2410903d38402221cb783ed85585b6a007
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Mar 27 22:39:07 2015 +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.
+
+commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Mar 7 22:05:57 2015 +0200
+
+ xz: size_t/uint32_t cleanup in options.c.
+
+commit 8bcca29a65335fd679c13814b70b35b68fa5daed
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Mar 7 22:04:23 2015 +0200
+
+ xz: Fix a comment and silence a warning in message.c.
+
+commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Mar 7 22:01:00 2015 +0200
+
+ liblzma: Silence more uint32_t vs. size_t warnings.
+
+commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Mar 7 19:54:00 2015 +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.
+
+commit f6ec46801588b1be29c07c9db98558b521304002
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Mar 7 19:33:17 2015 +0200
+
+ liblzma: Fix a warning in index.c.
+
+commit a24518971cc621315af142dd3bb7614fab04ad27
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Feb 26 20:46:14 2015 +0200
+
+ Build: Fix a CR+LF problem when running autoreconf -fi on OS/2.
+
+commit dec11497a71518423b5ff0e759100cf8aadf6c7b
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Feb 26 16:53:44 2015 +0200
+
+ Bump version and soname for 5.2.1.
+
+commit 29e39c79975ab89ee5dd671e97064534a9f3a649
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Feb 26 13:01:09 2015 +0200
+
+ Update NEWS for 5.2.1.
+
+commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Feb 22 19:38:48 2015 +0200
+
+ xz: Use pipe2() if available.
+
+commit 117d962685c72682c63edc9bb765367189800202
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Feb 21 23:40:26 2015 +0200
+
+ liblzma: Fix a compression-ratio regression in LZMA1/2 in fast mode.
+
+ The bug was added in the commit
+ f48fce093b07aeda95c18850f5e086d9f2383380 and thus
+ affected 5.1.4beta and 5.2.0. Luckily the bug cannot
+ cause data corruption or other nasty things.
+
+commit ae984e31c167d3bc52972ec422dd1ebd5f5d5719
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Feb 21 23:00:19 2015 +0200
+
+ xz: Fix the fcntl() usage when creating a pipe for the self-pipe trick.
+
+ Now it reads the old flags instead of blindly setting O_NONBLOCK.
+ The old code may have worked correctly, but this is better.
+
+commit 2205bb5853098aea36a56df6f5747037175f66b4
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Feb 10 15:29:34 2015 +0200
+
+ Update THANKS.
+
+commit d935b0cdf3db440269b9d952b2b281b18f8c7b08
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Feb 10 15:28:30 2015 +0200
+
+ tuklib_cpucores: Use cpuset_getaffinity() on FreeBSD if available.
+
+ In FreeBSD, cpuset_getaffinity() is the preferred way to get
+ the number of available cores.
+
+ Thanks to Rui Paulo for the patch. I edited it slightly, but
+ hopefully I didn't break anything.
+
+commit eb61bc58c20769cac4d05f363b9c0e8c9c71a560
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Feb 9 22:08:37 2015 +0200
+
+ xzdiff: Make the mktemp usage compatible with FreeBSD's mktemp.
+
+ Thanks to Rui Paulo for the fix.
+
+commit b9a5b6b7a29029680af733082b6a46e0fc01623a
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Feb 3 21:45:53 2015 +0200
+
+ Add a few casts to tuklib_integer.h to silence possible warnings.
+
+ I heard that Visual Studio 2013 gave warnings without the casts.
+
+ Thanks to Gabi Davar.
+
+commit c45757135f40e4a0de730ba5fff0100219493982
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Jan 26 21:24:39 2015 +0200
+
+ liblzma: Set LZMA_MEMCMPLEN_EXTRA depending on the compare method.
+
+commit 3c500174ed5485f550972a2a6109c361e875f069
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Jan 26 20:40:16 2015 +0200
+
+ Update THANKS.
+
+commit fec88d41e672d9e197c9442aecf02bd0dfa6d516
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Jan 26 20:39:28 2015 +0200
+
+ liblzma: Silence harmless Valgrind errors.
+
+ Thanks to Torsten Rupp for reporting this. I had
+ forgotten to run Valgrind before the 5.2.0 release.
+
+commit a9b45badfec0928d20a27c7176c005fa637f7d1e
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jan 9 21:50:19 2015 +0200
+
+ xz: Fix comments.
+
+commit 541aee6dd4aa97a809aba281475a21b641bb89e2
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jan 9 21:35:06 2015 +0200
+
+ Update THANKS.
+
+commit 4170edc914655310d2363baccf5e615e09b04911
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jan 9 21:34:06 2015 +0200
+
+ xz: Don't fail if stdout doesn't support O_NONBLOCK.
+
+ This is similar to the case with stdin.
+
+ Thanks to Brad Smith for the bug report and testing
+ on OpenBSD.
+
+commit 04bbc0c2843c50c8ad1cba42b937118e38b0508d
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Jan 7 19:18:20 2015 +0200
+
+ xz: Fix a memory leak in DOS-specific code.
+
+commit f0f1f6c7235ffa901cf76fe18e33749e200b3eea
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Jan 7 19:08:06 2015 +0200
+
+ xz: Don't fail if stdin doesn't support O_NONBLOCK.
+
+ It's a problem at least on OpenBSD which doesn't support
+ O_NONBLOCK on e.g. /dev/null. I'm not surprised if it's
+ a problem on other OSes too since this behavior is allowed
+ in POSIX-1.2008.
+
+ The code relying on this behavior was committed in June 2013
+ and included in 5.1.3alpha released on 2013-10-26. Clearly
+ the development releases only get limited testing.
+
+commit d2d484647d9d9d679f03c75abb0404f67069271c
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Jan 6 20:30:15 2015 +0200
+
+ Tests: Don't hide unexpected error messages in test_files.sh.
+
+ Hiding them makes no sense since normally there's no error
+ when testing the "good" files. With "bad" files errors are
+ expected and then it makes sense to keep the messages hidden.
+
+commit aae6a6aeda51cf94a47e39ad624728f9bee75e30
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Dec 30 11:17:16 2014 +0200
+
+ Update Solaris notes in INSTALL.
+
+ Mention the possible "make check" failure on Solaris in the
+ Solaris-specific section of INSTALL. It was already in
+ section 4.5 but it is better mention it in the OS-specific
+ section too.
+
+commit 7815112153178800a3521b9f31960e7cdc26cfba
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Dec 26 12:00:05 2014 +0200
+
+ Build: POSIX shell isn't required if scripts are disabled.
+
+commit a0cd05ee71d330b79ead6eb9222e1b24e1559d3a
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Dec 21 20:48:37 2014 +0200
+
+ DOS: Update Makefile.
+
+commit b85ee0905ec4ab7656d22e63519fdd3bedb21f2e
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Dec 21 19:50:38 2014 +0200
+
+ Windows: Fix bin_i486 to bin_i686 in build.bash.
+
+commit cbafa710918195dbba3db02c3fab4f0538235206
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Dec 21 18:58:44 2014 +0200
+
+ Docs: Use lzma_cputhreads() in 04_compress_easy_mt.c.
+
+commit 8dbb57238d372c7263cfeb3e7f7fd9a73173156a
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Dec 21 18:56:44 2014 +0200
+
+ Docs: Update docs/examples/00_README.txt.
+
+commit 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Dec 21 18:11:17 2014 +0200
+
+ Bump version and soname for 5.2.0.
+
+ I know that soname != app version, but I skip AGE=1
+ in -version-info to make the soname match the liblzma
+ version anyway. It doesn't hurt anything as long as
+ it doesn't conflict with library versioning rules.
+
+commit 3e8bd1d15e417f2d588e9be50ce027ee3d48b2da
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Dec 21 18:05:03 2014 +0200
+
+ Avoid variable-length arrays in the debug programs.
+
+commit 72f7307cfdceb941aeb2bf30d424cc0d13621786
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Dec 21 18:01:45 2014 +0200
+
+ Build: Include 04_compress_easy_mt.c in the tarball.
+
+commit 2cb82ff21c62def11f3683a8bb0aaf363102aaa0
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Dec 21 18:00:38 2014 +0200
+
+ Fix build when --disable-threads is used.
+
+commit 9b9e3536e458ef958f66b0e8982efc9d36de4d17
Author: Adrien Nader <adrien at notk.org>
-Date: 2014-12-21 15:56:15 +0100
+Date: Sun Dec 21 15:56:15 2014 +0100
po/fr: improve wording for help for --lzma1/--lzma2.
- po/fr.po | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-commit 3dfa915cd16c638ef077d216fd8b6d95340b15a8
+commit a8b6b569e7fadbf5b5b9139d53bc764015c15027
Author: Adrien Nader <adrien at notk.org>
-Date: 2014-12-21 15:55:48 +0100
+Date: Sun Dec 21 15:55:48 2014 +0100
po/fr: missing line in translation of --extreme.
- po/fr.po | 1 +
- 1 file changed, 1 insertion(+)
+commit f168a6fd1a888cf4f0caaddcafcb21dadc6ab6e9
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Dec 21 14:32:33 2014 +0200
-commit 6b65e84bd4d5e51918772df539923e64860f0097
+ Update NEWS for 5.2.0.
+
+commit cec2ee863b3a88f4bf039cb00f73c4a4fc93a429
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-12-21 14:07:54 +0200
+Date: Sun Dec 21 14:32:22 2014 +0200
+ Update NEWS for 5.0.8.
+
+commit 42e97a32649bf53ce43be2258b902a417c6e7fa1
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Dec 21 14:07:54 2014 +0200
+
xz: Fix a comment.
- src/xz/options.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+commit 29b95d5d6665cedffa6a9d6d3d914f981e852182
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Dec 20 20:43:14 2014 +0200
-commit 4da8e1d83388f419258e328563e69b9bf215a789
+ Update INSTALL about the dependencies of the scripts.
+
+commit 3af91040bb42c21afbb81f5568c3313125e61192
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-12-21 13:50:08 +0200
+Date: Sat Dec 20 20:42:33 2014 +0200
- Bump version and soname for 5.0.8.
+ Windows: Update build instructions.
- src/liblzma/Makefile.am | 2 +-
- src/liblzma/api/lzma/version.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
+commit 0152f72bf6289d744823dc6c849538f3a139ad70
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Dec 20 20:41:48 2014 +0200
-commit f6dc9996b0f3e4d20b138285e5e8829a7a1dbd78
+ Windows: Update the build script and README-Windows.txt.
+
+ The 32-bit build is now for i686 or newer because the
+ prebuilt MinGW-w64 toolchains include i686 code in the
+ executables even if one uses -march=i486.
+
+ The build script builds 32-bit SSE2 enabled version too.
+ Run-time detection of SSE2 support would be nice (on any OS)
+ but it's not implemented in XZ Utils yet.
+
+commit 4a1f6133ee5533cee8d91e06fcc22443e5f1881a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-12-21 13:48:45 +0200
+Date: Fri Dec 19 15:51:50 2014 +0200
- Update NEWS for 5.0.8.
+ Windows: Define TUKLIB_SYMBOL_PREFIX in config.h.
+
+ It is to keep all symbols in the lzma_ namespace.
- NEWS | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
+commit 7f7d093de79eee0c7dbfd7433647e46302f19f82
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Dec 16 21:00:09 2014 +0200
-commit 67d62a375aa0ea70e826f7aadad818041394222d
+ xz: Update the man page about --threads.
+
+commit 009823448b82aa5f465668878a544c5842885407
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-12-20 20:49:49 +0200
+Date: Tue Dec 16 20:57:43 2014 +0200
- Translations: Update the French translation.
+ xz: Update the man page about --block-size.
+
+commit 7dddfbeb499e528940bc12047355c184644aafe9
+Author: Adrien Nader <adrien at notk.org>
+Date: Wed Dec 10 22:26:57 2014 +0100
+
+ po/fr: several more translation updates: reword and handle --ignore-check.
+
+commit 6eca5be40e04ddc4b738d493e4e56835956d8b69
+Author: Adrien Nader <adrien at notk.org>
+Date: Wed Dec 10 22:23:01 2014 +0100
+
+ po/fr: yet another place where my email address had to be updated.
+
+commit d1003673e92ba47edd6aeeb3dbea05c18269d0e7
+Author: Adrien Nader <adrien at notk.org>
+Date: Wed Dec 10 22:22:20 2014 +0100
+
+ po/fr: fix several typos that have been around since the beginning.
+
+commit 4c5aa911a0df027e46171e368debc543d2fa72b2
+Author: Adrien Nader <adrien at notk.org>
+Date: Wed Dec 3 20:02:31 2014 +0100
+
+ po/fr: last batch of new translations for now.
- Thanks to Adrien Nader.
+ Four new error messages.
- po/fr.po | 209 ++++++++++++++++++++++++++++-----------------------------------
- 1 file changed, 93 insertions(+), 116 deletions(-)
+commit 3e3099e36d27059499e7996fb38a62e8ab01d356
+Author: Adrien Nader <adrien at notk.org>
+Date: Wed Dec 3 20:01:32 2014 +0100
-commit 283c03fe5b991a6d2ab912c522044c63c2ea2d05
-Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-12-18 21:33:33 +0200
+ po/fr: translations for --threads, --block-size and --block-list.
- Update THANKS.
+commit e7d96a5933eec4e9d4a62569ee88df0ebb0f1d53
+Author: Adrien Nader <adrien at notk.org>
+Date: Wed Dec 3 20:00:53 2014 +0100
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
+ po/fr: remove fuzzy marker for error messages that will be kept in English.
+
+ The following is a copy of a comment inside fr.po:
+
+ Note from translator on "file status flags".
+ The following entry is kept un-translated on purpose. It is difficult to
+ translate and should only happen in exceptional circumstances which means
+ that translating would:
+ - lose some of the meaning
+ - make it more difficult to look up in search engines; it might happen one
+ in
+ a million times, if we dilute the error message in 20 languages, it will be
+ almost impossible to find an explanation and support for the error.
-commit 0c7fe9f227719dcfef0394a94002f20a73dde50e
+commit 46cbb9033af8a21fafe543302d6919746e0d72af
+Author: Adrien Nader <adrien at notk.org>
+Date: Wed Dec 3 19:58:25 2014 +0100
+
+ po/fr: several minor updates and better wording.
+
+ Meaning doesn't change at all: it's only for better wording and/or
+ formatting of a few strings.
+
+commit 7ce49d444f04e73145f79c832eb4d510594b074a
+Author: Adrien Nader <adrien at notk.org>
+Date: Wed Dec 3 19:56:12 2014 +0100
+
+ po/fr: update my email address and copyright years.
+
+commit 214c553ebc3047cd720da1ce5c80cf7c38118d3c
+Author: Adrien Nader <adrien at notk.org>
+Date: Wed Nov 26 10:08:26 2014 +0100
+
+ fr.po: commit file after only "update-po" so actual is readable.
+
+commit 1190c641af09cde85f8bd0fbe5c4906f4a29431b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-11-28 20:07:18 +0200
+Date: Tue Dec 2 20:04:07 2014 +0200
+ liblzma: Document how lzma_mt.block_size affects memory usage.
+
+commit e4fc1d2f9571fba79ce383595be2ea2a9257def0
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Nov 28 20:07:18 2014 +0200
+
Update INSTALL about a "make check" failure in test_scripts.sh.
- INSTALL | 24 +++++++++++++++++-------
- 1 file changed, 17 insertions(+), 7 deletions(-)
+commit 34f9e40a0a0c3bd2c2730cdb9cd550bbb8a3f2fe
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Nov 26 20:12:27 2014 +0200
-commit b46fe3ced9889bc79ed272b106a8a454eba9a40e
+ Remove LZMA_UNSTABLE macro.
+
+commit 6d9c0ce9f2677b159e32b224aba5b535b304a705
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-11-17 19:11:49 +0200
+Date: Wed Nov 26 20:10:33 2014 +0200
- Build: Update m4/ax_pthread.m4 from Autoconf Archive.
+ liblzma: Update lzma_stream_encoder_mt() API docs.
- m4/ax_pthread.m4 | 71 +++++++++++++++++++++++++++++++++++++-------------------
- 1 file changed, 47 insertions(+), 24 deletions(-)
+commit 2301f3f05dd9742f42cda8f0f318864f5dc39ab3
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Nov 25 12:32:05 2014 +0200
-commit 6ed0554a154b6314531cfb75aeff6b621035423f
+ liblzma: Verify the filter chain in threaded encoder initialization.
+
+ This way an invalid filter chain is detected at the Stream
+ encoder initialization instead of delaying it to the first
+ call to lzma_code() which triggers the initialization of
+ the actual filter encoder(s).
+
+commit 107a263d5bb63cd3593fd6a5c938706539f84523
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-12-18 21:27:35 +0200
+Date: Mon Nov 17 19:11:49 2014 +0200
+ Build: Update m4/ax_pthread.m4 from Autoconf Archive.
+
+commit b13a781833399ff5726cfc997f3cb2f0acbdbf31
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Nov 17 18:52:21 2014 +0200
+
Build: Replace obsolete AC_HELP_STRING with AS_HELP_STRING.
- configure.ac | 34 +++++++++++++++++-----------------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-commit 0ab300ec5240862c025dc3d313e10e69dbc69279
+commit 542cac122ed3550148a2af0033af22b757491378
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-12-18 21:26:20 +0200
+Date: Mon Nov 17 18:43:19 2014 +0200
Build: Fix Autoconf warnings about escaped backquotes.
+
+ Thanks to Daniel Richard G. for pointing out that it's
+ good to sometimes run autoreconf -fi with -Wall.
- configure.ac | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
+commit 7b03a15cea8cd4f19ed680b51c4bcbae3ce4142f
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Nov 10 18:54:40 2014 +0200
-commit b274ad02c4b8c45d3707a148a73b520b77519840
+ xzdiff: Use mkdir if mktemp isn't available.
+
+commit f8c13e5e3609581d5dd9f8777985ca07f2390ad7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-10-09 19:42:26 +0300
+Date: Mon Nov 10 18:45:01 2014 +0200
+ xzdiff: Create a temporary directory to hold a temporary file.
+
+ This avoids the possibility of "File name too long" when
+ creating a temp file when the input file name is very long.
+
+ This also means that other users on the system can no longer
+ see the input file names in /tmp (or whatever $TMPDIR is)
+ since the temporary directory will have a generic name. This
+ usually doesn't matter since on many systems one can see
+ the arguments given to all processes anyway.
+
+ The number X chars to mktemp where increased from 6 to 10.
+
+ Note that with some shells temp files or dirs won't be used at all.
+
+commit 7716dcf9df7f457500cb657314e7a9aea5fedb06
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Nov 10 15:38:47 2014 +0200
+
+ liblzma: Fix lzma_mt.preset in lzma_stream_encoder_mt_memusage().
+
+ It read the filter chain from a wrong variable. This is a similar
+ bug that was fixed in 9494fb6d0ff41c585326f00aa8f7fe58f8106a5e.
+
+commit 230fa4a605542c84b4178a57381695a0af4e779b
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Nov 10 14:49:55 2014 +0200
+
Update THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
+commit 4e4ae08bc7c1711e399c9f2d26eb375d39d08101
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Oct 29 21:28:25 2014 +0200
-commit 4fdcccd85e140acd99a1ef4684cd3a1957380376
+ Update .gitignore files.
+
+commit c923b140b27d1a055db6284e10fd546ad1a7fcdb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-10-09 19:41:51 +0300
+Date: Wed Oct 29 21:15:35 2014 +0200
+ Build: Prepare to support Automake's subdir-objects.
+
+ Due to a bug in Automake, subdir-objects won't be enabled
+ for now.
+
+ http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17354
+
+ Thanks to Daniel Richard G. for the original patches.
+
+commit 08c2aa16bea0df82828f665d51fba2e0a5e8997f
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Oct 24 20:09:29 2014 +0300
+
+ Translations: Update the Italian translation.
+
+ Thanks to Milo Casagrande.
+
+commit 2f9f61aa83539c54ff6c118a2693890f0519b3dd
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Oct 18 18:51:45 2014 +0300
+
+ Translations: Update the Polish translation.
+
+ Thanks to Jakub Bogusz.
+
+commit 4f9d233f67aea25e532824d11b7642cf7dee7a76
+Author: Andre Noll <maan at tuebingen.mpg.de>
+Date: Tue Oct 14 17:30:30 2014 +0200
+
+ l10n: de.po: Change translator email address.
+
+ Although the old address is still working, the new one should
+ be preferred. So this commit changes all three places in de.po
+ accordingly.
+
+ Signed-off-by: Andre Noll <maan at tuebingen.mpg.de>
+
+commit 00502b2bedad43f0cc167ac17ae0608837ee196b
+Author: Andre Noll <maan at tuebingen.mpg.de>
+Date: Tue Oct 14 17:30:29 2014 +0200
+
+ l10n: de.po: Update German translation
+
+ Signed-off-by: Andre Noll <maan at systemlinux.org>
+
+commit 706b0496753fb609e69f1570ec603f11162189d1
+Author: Andre Noll <maan at tuebingen.mpg.de>
+Date: Tue Oct 14 17:30:28 2014 +0200
+
+ l10n: de.po: Fix typo: Schießen -> Schließen.
+
+ That's a funny one since "schießen" means to shoot :)
+
+ Signed-off-by: Andre Noll <maan at systemlinux.org>
+
+commit 7c32e6a935c3d7ee366abad1679bd5f322f0c7d4
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Oct 9 19:42:26 2014 +0300
+
+ Update THANKS.
+
+commit 076258cc458f1e705041ac7a729b15ffe8c5214a
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Oct 9 19:41:51 2014 +0300
+
Add support for AmigaOS/AROS to tuklib_physmem().
Thanks to Fredrik Wikstrom.
- m4/tuklib_physmem.m4 | 3 ++-
- src/common/tuklib_physmem.c | 7 +++++++
- 2 files changed, 9 insertions(+), 1 deletion(-)
-
-commit f229fa32bf70bf9b109864d216719371af108364
+commit efa7b0a210e1baa8e128fc98c5443a944c39ad24
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-10-09 18:42:14 +0300
+Date: Thu Oct 9 18:42:14 2014 +0300
xzgrep: Avoid passing both -q and -l to grep.
@@ -137,12 +776,17 @@
Thanks to Christian Weisgerber.
- src/scripts/xzgrep.in | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
+commit 9c5f76098c9986b48d2fc574a0b764f4cde0c538
+Author: Trần Ngọc Quân <vnwildman at gmail.com>
+Date: Thu Sep 25 09:22:45 2014 +0700
-commit 94a1a869ee1b8b854592327e04decd6f8441aaf5
+ l10n: vi.po: Update Vietnamese translation
+
+ Signed-off-by: Trần Ngọc Quân <vnwildman at gmail.com>
+
+commit c4911f2db36d811896c73c008b4218d8fa9a4730
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-09-25 18:38:48 +0300
+Date: Thu Sep 25 18:38:48 2014 +0300
Build: Detect supported compiler warning flags better.
@@ -153,111 +797,248 @@
Thanks to Charles Diza.
- configure.ac | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
+commit 76e75522ed6f5c228d55587dee5a997893f6e474
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Sep 20 21:01:21 2014 +0300
-commit 0e50ad7129910f9a4c16d0c447eb9e073f367917
-Author: Andre Noll <maan at tuebingen.mpg.de>
-Date: 2014-10-14 17:30:30 +0200
+ Update NEWS for 5.0.7.
- l10n: de.po: Change translator email address.
+commit d62028b4c1174fc67b6929f126f5eb24c018c700
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Sep 20 19:42:56 2014 +0300
+
+ liblzma: Fix a portability problem in Makefile.am.
- Although the old address is still working, the new one should
- be preferred. So this commit changes all three places in de.po
- accordingly.
+ POSIX supports $< only in inference rules (suffix rules).
+ Using it elsewhere is a GNU make extension and doesn't
+ work e.g. with OpenBSD make.
- Signed-off-by: Andre Noll <maan at tuebingen.mpg.de>
+ Thanks to Christian Weisgerber for the patch.
- po/de.po | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
+commit c35de31d4283edad3e57d37ffe939406542cb7bb
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Sep 14 21:54:09 2014 +0300
-commit 9fd333d742427d5067ae6a77ac4b2f69546dc31b
-Author: Andre Noll <maan at tuebingen.mpg.de>
-Date: 2014-10-14 17:30:28 +0200
+ Bump the version number to 5.1.4beta.
- l10n: de.po: Fix typo: Schießen -> Schließen.
+commit e9e097e22cacdaa23e5414fea7913535449cb340
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Sep 14 21:50:13 2014 +0300
+
+ Update NEWS for 5.0.6 and 5.1.4beta.
+
+commit 642f856bb8562ab66704b1e01ac7bc08b6d0a663
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Sep 14 21:02:41 2014 +0300
+
+ Update TODO.
+
+commit 6b5e3b9eff5b8cedb2aac5f524d4d60fc8a48124
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Aug 5 22:32:36 2014 +0300
+
+ xz: Add --ignore-check.
+
+commit 9adbc2ff373f979c917cdfd3679ce0ebd59f1040
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Aug 5 22:15:07 2014 +0300
+
+ liblzma: Add support for LZMA_IGNORE_CHECK.
+
+commit 0e0f34b8e4f1c60ecaec15c2105982381cc9c3e6
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Aug 5 22:03:30 2014 +0300
+
+ liblzma: Add support for lzma_block.ignore_check.
- That's a funny one since "schießen" means to shoot :)
+ Note that this slightly changes how lzma_block_header_decode()
+ has been documented. Earlier it said that the .version is set
+ to the lowest required value, but now it says that the .version
+ field is kept unchanged if possible. In practice this doesn't
+ affect any old code, because before this commit the only
+ possible .version was 0.
+
+commit 71e1437ab585b46f7a25f5a131557d3d1c0cbaa2
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Aug 4 19:25:58 2014 +0300
+
+ liblzma: Use lzma_memcmplen() in the BT3 match finder.
- Signed-off-by: Andre Noll <maan at systemlinux.org>
+ I had missed this when writing the commit
+ 5db75054e900fa06ef5ade5f2c21dffdd5d16141.
+
+ Thanks to Jun I Jin.
- po/de.po | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+commit 41dc9ea06e1414ebe8ef52afc8fc15b6e3282b04
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Aug 4 00:25:44 2014 +0300
-commit 495aaf3a5b7200a5d2bf449bbbcc0e18834607af
+ Update THANKS.
+
+commit 5dcffdbcc23a68abc3ac3539b30be71bc9b5af84
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-09-20 20:44:32 +0300
+Date: Sun Aug 3 21:32:25 2014 +0300
- Bump version and soname for 5.0.7.
+ liblzma: SHA-256: Optimize the Maj macro slightly.
+
+ The Maj macro is used where multiple things are added
+ together, so making Maj a sum of two expressions allows
+ some extra freedom for the compiler to schedule the
+ instructions.
+
+ I learned this trick from
+ <http://www.hackersdelight.org/corres.txt>.
- src/liblzma/Makefile.am | 2 +-
- src/liblzma/api/lzma/version.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
+commit a9477d1e0c6fd0e47e637d051e7b9e2a5d9af517
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Aug 3 21:08:12 2014 +0300
-commit ac6c8921d1d8d2d749d5c97f9a0b0594cc863cea
+ liblzma: SHA-256: Optimize the way rotations are done.
+
+ This looks weird because the rotations become sequential,
+ but it helps quite a bit on both 32-bit and 64-bit x86:
+
+ - It requires fewer instructions on two-operand
+ instruction sets like x86.
+
+ - It requires one register less which matters especially
+ on 32-bit x86.
+
+ I hope this doesn't hurt other archs.
+
+ I didn't invent this idea myself, but I don't remember where
+ I saw it first.
+
+commit 5a76c7c8ee9a0afbeedb1c211db9224260404347
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-09-20 20:43:29 +0300
+Date: Sun Aug 3 20:38:13 2014 +0300
- Update NEWS for 5.0.7.
+ liblzma: SHA-256: Remove the GCC #pragma that became unneeded.
+
+ The unrolling in the previous commit should avoid the
+ situation where a compiler may think that an uninitialized
+ variable might be accessed.
- NEWS | 11 +++++++++++
- 1 file changed, 11 insertions(+)
+commit 9a096f8e57509775c331950b8351bbca77bdcfa8
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Aug 3 20:33:38 2014 +0300
-commit d1b0276aafd441a3d4db9dfd5dd9880e9f834d49
+ liblzma: SHA-256: Unroll a little more.
+
+ This way a branch isn't needed for each operation
+ to choose between blk0 and blk2, and still the code
+ doesn't grow as much as it would with full unrolling.
+
+commit bc7650d87bf27f85f1a2a806dc2db1780e09e6a5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-09-20 20:21:18 +0300
+Date: Sun Aug 3 19:56:43 2014 +0300
- liblzma: Fix invalid Libs.private value in liblzma.pc.
+ liblzma: SHA-256: Do the byteswapping without a temporary buffer.
- src/liblzma/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+commit 544aaa3d13554e8640f9caf7db717a96360ec0f6
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jul 25 22:38:28 2014 +0300
-commit cac72956b1e56788182ac14bfb25519636afd503
+ liblzma: Use lzma_memcmplen() in normal mode of LZMA.
+
+ Two locations were not changed yet because the simplest change
+ assumes that the initial "len" may be greater than "limit".
+
+commit f48fce093b07aeda95c18850f5e086d9f2383380
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-09-20 19:42:56 +0300
+Date: Fri Jul 25 22:30:38 2014 +0300
- liblzma: Fix a portability problem in Makefile.am.
+ liblzma: Simplify LZMA fast mode code by using memcmp().
+
+commit 6bf5308e34e23dede5b301b1b9b4f131dacd9218
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jul 25 22:29:49 2014 +0300
+
+ liblzma: Use lzma_memcmplen() in fast mode of LZMA.
+
+commit 353212137e51e45b105a3a3fc2e6879f1cf0d492
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jul 25 21:16:23 2014 +0300
+
+ Update THANKS.
+
+commit 5db75054e900fa06ef5ade5f2c21dffdd5d16141
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jul 25 21:15:07 2014 +0300
+
+ liblzma: Use lzma_memcmplen() in the match finders.
- POSIX supports $< only in inference rules (suffix rules).
- Using it elsewhere is a GNU make extension and doesn't
- work e.g. with OpenBSD make.
+ This doesn't change the match finder output.
+
+commit e1c8f1d01f4a4e2136173edab2dc63c71ef038f4
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jul 25 20:57:20 2014 +0300
+
+ liblzma: Add lzma_memcmplen() for fast memory comparison.
- Thanks to Christian Weisgerber for the patch.
+ This commit just adds the function. Its uses will be in
+ separate commits.
+
+ This hasn't been tested much yet and it's perhaps a bit early
+ to commit it but if there are bugs they should get found quite
+ quickly.
+
+ Thanks to Jun I Jin from Intel for help and for pointing out
+ that string comparison needs to be optimized in liblzma.
- src/liblzma/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+commit 765735cf52e5123586e74a51b9c073b5257f631f
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Jul 12 21:10:09 2014 +0300
-commit 2cdf0875dedca3e89b02ad5ac8aa1109f902ae11
+ Update THANKS.
+
+commit 59da01785ef66c7e62f36e70ca808fd2824bb995
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-09-14 19:35:45 +0300
+Date: Sat Jul 12 20:06:08 2014 +0300
- Bump version and soname for 5.0.6.
+ Translations: Add Vietnamese translation.
+
+ Thanks to Trần Ngọc Quân.
- src/liblzma/Makefile.am | 2 +-
- src/liblzma/api/lzma/version.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
+commit 17215f751c354852700e7f8592ccf319570a0721
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Jun 29 20:54:14 2014 +0300
-commit 0168b6c8fbc88cae61b1f5fb41d6c33c9e127967
+ xz: Update the help message of a few options.
+
+ Updated: --threads, --block-size, and --block-list
+ Added: --flush-timeout
+
+commit 96864a6ddf91ad693d102ea165f3d7918744d582
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-09-14 19:33:46 +0300
+Date: Wed Jun 18 22:07:06 2014 +0300
- Update NEWS for 5.0.6.
+ xz: Use lzma_cputhreads() instead of own copy of tuklib_cpucores().
- NEWS | 7 +++++++
- 1 file changed, 7 insertions(+)
+commit a115cc3748482e277f42a968baa3cd266f031dba
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Jun 18 22:04:24 2014 +0300
-commit 13337714e89d002af7af48d6853f977de985d7de
+ liblzma: Add lzma_cputhreads().
+
+commit 3ce3e7976904fbab4e6482bafa442856f77a51fa
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-06-13 19:21:54 +0300
+Date: Wed Jun 18 19:11:52 2014 +0300
+ xz: Check for filter chain compatibility for --flush-timeout.
+
+ This avoids LZMA_PROG_ERROR from lzma_code() with filter chains
+ that don't support LZMA_SYNC_FLUSH.
+
+commit 381ac14ed79e5d38809f251705be8b3193bba417
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jun 13 19:21:54 2014 +0300
+
xzgrep: List xzgrep_expected_output in tests/Makefile.am.
- tests/Makefile.am | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-commit ccc728d8290c0464c7af62790b1c5528eceaae35
+commit 4244b65b06d5ecaf6f9dd0387ac7e3166bd2364e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-06-13 18:58:22 +0300
+Date: Fri Jun 13 18:58:22 2014 +0300
xzgrep: Improve the test script.
@@ -264,14 +1045,9 @@
Now it should be close to the functionality of the original
version by Pavel Raiskup.
- tests/Makefile.am | 3 ++-
- tests/test_scripts.sh | 24 ++++++++++++++----------
- tests/xzgrep_expected_output | 39 +++++++++++++++++++++++++++++++++++++++
- 3 files changed, 55 insertions(+), 11 deletions(-)
-
-commit 948f5865fe65061e215baa8ed63be570bae152ea
+commit 1e60f2c0a0ee6c18b02943ce56214799a70aac26
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-06-11 21:03:25 +0300
+Date: Wed Jun 11 21:03:25 2014 +0300
xzgrep: Add a test for the previous fix.
@@ -278,12 +1054,9 @@
This is a simplified version of Pavel Raiskup's
original patch.
- tests/test_scripts.sh | 26 ++++++++++++++++++++++----
- 1 file changed, 22 insertions(+), 4 deletions(-)
-
-commit 64228d0d5cd75af31e5c330cc3a792016413fabf
+commit ceca37901783988204caaf40dff4623d535cc789
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-06-11 20:43:28 +0300
+Date: Wed Jun 11 20:43:28 2014 +0300
xzgrep: exit 0 when at least one file matches.
@@ -295,13 +1068,67 @@
Thanks to Pavel Raiskup for the patch.
- src/scripts/xzgrep.in | 15 +++++++++++++--
- 1 file changed, 13 insertions(+), 2 deletions(-)
+commit 8c19216baccb92d011694590df8a1262da2e980c
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Jun 9 21:21:24 2014 +0300
-commit 98d3368ef4bff0face78d6932f2156730c8cb658
+ xz: Force single-threaded mode when --flush-timeout is used.
+
+commit 87f1a24810805187d7bbc8ac5512e7eec307ddf5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-04-25 17:53:42 +0300
+Date: Sun May 25 22:05:39 2014 +0300
+ Update THANKS.
+
+commit da1718f266fcfc091e7bf08aae1bc986d0e6cc6b
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun May 25 21:45:56 2014 +0300
+
+ liblzma: Use lzma_alloc_zero() in LZ encoder initialization.
+
+ This avoids a memzero() call for a newly-allocated memory,
+ which can be expensive when encoding small streams with
+ an over-sized dictionary.
+
+ To avoid using lzma_alloc_zero() for memory that doesn't
+ need to be zeroed, lzma_mf.son is now allocated separately,
+ which requires handling it separately in normalize() too.
+
+ Thanks to Vincenzo Innocente for reporting the problem.
+
+commit 28af24e9cf2eb259997c85dce13d4c97b3daa47a
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun May 25 19:25:57 2014 +0300
+
+ liblzma: Add the internal function lzma_alloc_zero().
+
+commit ed9ac85822c490e34b68c259afa0b385d21d1c40
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu May 8 18:03:09 2014 +0300
+
+ xz: Fix uint64_t vs. size_t which broke 32-bit build.
+
+ Thanks to Christian Hesse.
+
+commit d716acdae3fa7996f9e68a7bac012e6d8d13dd02
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun May 4 11:09:11 2014 +0300
+
+ Docs: Update comments to refer to lzma/lzma12.h in example programs.
+
+commit 4d5b7b3fda31241ca86ed35e08e73f776ee916e0
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun May 4 11:07:17 2014 +0300
+
+ liblzma: Rename the private API header lzma/lzma.h to lzma/lzma12.h.
+
+ It can be confusing that two header files have the same name.
+ The public API file is still lzma.h.
+
+commit 1555a9c5664afc7893a2b75e9970105437f01ef1
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Apr 25 17:53:42 2014 +0300
+
Build: Fix the combination of --disable-xzdec --enable-lzmadec.
In this case "make install" could fail if the man page directory
@@ -310,23 +1137,15 @@
instead. This isn't the best fix but it's better than the old
behavior.
- src/xzdec/Makefile.am | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-commit ba3b5dd082db2cb5973e877a74221d739c663fb4
+commit 56056571df3377eaa6ae6233b3ccc5d72e81d43d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-04-25 17:44:26 +0300
+Date: Fri Apr 25 17:44:26 2014 +0300
Build: Add --disable-doc to configure.
- INSTALL | 6 ++++++
- Makefile.am | 2 ++
- configure.ac | 6 ++++++
- 3 files changed, 14 insertions(+)
-
-commit 3d4575f2367fe8f1f2dcacba014e6c0aef388535
+commit 6de61d8721097a6214810841aa85b08e303ac538
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-04-24 18:06:24 +0300
+Date: Thu Apr 24 18:06:24 2014 +0300
Update INSTALL.
@@ -339,12 +1158,9 @@
Add a note about a possible need to run "ldconfig" after
"make install".
- INSTALL | 25 +++++++++++++++++++++++++
- 1 file changed, 25 insertions(+)
-
-commit b9f0584e3eff421eadbb6604de0b0b40bf87e129
+commit 54df428799a8d853639b753d0e6784694d73eb3e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-04-09 17:26:10 +0300
+Date: Wed Apr 9 17:26:10 2014 +0300
xz: Rename a variable to avoid a namespace collision on Solaris.
@@ -355,21 +1171,65 @@
Thanks to Mark Ashley.
- src/xz/signals.c | 12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
+commit 5876ca27daa1429676b1160007d9688266907f00
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Jan 29 20:19:41 2014 +0200
-commit cc41bcaf77c9c27ec09ef033fb3300e994e828e6
+ Docs: Add example program for threaded encoding.
+
+ I didn't add -DLZMA_UNSTABLE to Makefile so one has to
+ specify it manually as long as LZMA_UNSTABLE is needed.
+
+commit 9494fb6d0ff41c585326f00aa8f7fe58f8106a5e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-04-26 08:45:49 +0300
+Date: Wed Jan 29 20:13:51 2014 +0200
+ liblzma: Fix lzma_mt.preset not working with lzma_stream_encoder_mt().
+
+ It read the filter chain from a wrong variable.
+
+commit 673a4cb53de3a715685cb1b836da57a3c7dcd43c
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Jan 20 11:20:40 2014 +0200
+
+ liblzma: Fix typo in a comment.
+
+commit ad96a871a1470eb76d6233d3890ce9338047b7a3
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Jan 12 19:38:43 2014 +0200
+
+ Windows: Add config.h for building liblzma with MSVC 2013.
+
+ This is for building liblzma. Building xz tool too requires
+ a little more work. Maybe it will be supported, but for most
+ MSVC users it's enough to be able to build liblzma.
+
+ C99 support in MSVC 2013 is almost usable which is a big
+ improvement over earlier versions. It's "almost" because
+ there's a dumb bug that breaks mixed declarations after
+ an "if" statements unless the "if" statement uses braces:
+
+ https://connect.microsoft.com/VisualStudio/feedback/details/808650/visual-studio-2013-c99-compiler-bug
+ https://connect.microsoft.com/VisualStudio/feedback/details/808472/c99-support-of-mixed-declarations-and-statements-fails-with-certain-types-and-constructs
+
+ Hopefully it will get fixed. Then liblzma should be
+ compilable with MSVC 2013 without patching.
+
+commit 3d5c090872fab4212b57c290e8ed4d02c78c1737
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Jan 12 17:41:14 2014 +0200
+
xz: Fix a comment.
- src/xz/coder.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+commit 69fd4e1c932c7975476a0143c86e45d81b60d3f9
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Jan 12 17:04:33 2014 +0200
-commit e34025d666852839388f997d076e3577847dd10f
+ Windows: Add MSVC defines for inline and restrict keywords.
+
+commit a19d9e8575ee6647cd9154cf1f20203f1330485f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-01-12 16:44:52 +0200
+Date: Sun Jan 12 16:44:52 2014 +0200
liblzma: Avoid C99 compound literal arrays.
@@ -376,23 +1236,17 @@
MSVC 2013 doesn't like them. Maybe they aren't so good
for readability either since many aren't used to them.
- src/liblzma/lzma/lzma_encoder_presets.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-commit 0b6168974f1fac3a06157039235b66e4161b9b42
+commit e28528f1c867b2ed4ac91195ad08efb9bb8a6263
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-01-12 12:50:30 +0200
+Date: Sun Jan 12 12:50:30 2014 +0200
liblzma: Remove a useless C99ism from sha256.c.
Unsurprisingly it makes no difference in compiled output.
- src/liblzma/check/sha256.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-commit 41e436076cfdcccc7e853de73b0d56b3d6d42053
+commit 5ad1effc45adfb7dabc9a98e79736077e6b7e2d5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-01-12 12:17:08 +0200
+Date: Sun Jan 12 12:17:08 2014 +0200
xz: Fix use of wrong variable.
@@ -400,62 +1254,161 @@
as the argument, fixing this bug doesn't change
the behavior of the program.
- src/xz/suffix.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-commit c33efefd4ef0931e5795e13725d4bd2203571ce0
+commit 3e62c68d75b5a3fdd46dbb34bb335d73289860d5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2014-04-26 08:37:00 +0300
+Date: Sun Jan 12 12:11:36 2014 +0200
Fix typos in comments.
- src/liblzma/check/crc32_fast.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-commit e560c82f1f5693d88db9dc71f656436135f17595
+commit e90ea601fb72867ec04adf456cbe4bf9520fd412
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-11-26 18:20:16 +0200
+Date: Tue Nov 26 18:20:16 2013 +0200
Update THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
-commit 05192b32e553eac5dfbd646b6102d10187f29a05
+commit b22e94d8d15764416354e04729382a7371ae2c30
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-11-26 18:20:09 +0200
+Date: Tue Nov 26 18:20:09 2013 +0200
liblzma: Document the need for block->check for lzma_block_header_decode().
Thanks to Tomer Chachamu.
- src/liblzma/api/lzma/block.h | 3 +++
- 1 file changed, 3 insertions(+)
+commit d1cd8b1cb824b72421d1ee370e628024d2fcbec4
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Nov 12 16:38:57 2013 +0200
-commit 0f35eafe51db7b1eb0711bc8cc829ea6896b34f4
+ xz: Update the man page about --block-size and --block-list.
+
+commit 76be7c612e6bcc38724488ccc3b8bcb1cfec9f0a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-10-26 12:47:04 +0300
+Date: Tue Nov 12 16:30:53 2013 +0200
+ Update THANKS.
+
+commit dd750acbe2259d75444ef0f8da2d4bacc90d7afc
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Nov 12 16:29:48 2013 +0200
+
+ xz: Make --block-list and --block-size work together in single-threaded.
+
+ Previously, --block-list and --block-size only worked together
+ in threaded mode. Boundaries are specified by --block-list, but
+ --block-size specifies the maximum size for a Block. Now this
+ works in single-threaded mode too.
+
+ Thanks to James M Leddy for the original patch.
+
+commit ae222fe9805d0161d022d75ba8485dab8bf6d7d5
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Oct 26 13:26:14 2013 +0300
+
+ Bump the version number to 5.1.3alpha.
+
+commit 2193837a6a597cd3bf4e9ddf49421a5697d8e155
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Oct 26 13:25:02 2013 +0300
+
+ Update NEWS for 5.1.3alpha.
+
+commit ed48e75e2763876173aef8902da407a8eb28854b
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Oct 26 12:47:04 2013 +0300
+
Update TODO.
- TODO | 4 ----
- 1 file changed, 4 deletions(-)
+commit 841da0352d79a56a44796a4c39163429c9f039a3
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Oct 25 22:41:28 2013 +0300
-commit fc9eaf81d718488b052e5c65f9d6f08acc858873
+ xz: Document behavior of --block-list with threads.
+
+ This needs to be updated before 5.2.0.
+
+commit 56feb8665b78c1032aabd53c619c62af51defe64
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-09-11 14:40:35 +0300
+Date: Tue Oct 22 20:03:12 2013 +0300
+ xz: Document --flush-timeout=TIMEOUT on the man page.
+
+commit ba413da1d5bb3324287cf3174922acd921165971
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Oct 22 19:51:55 2013 +0300
+
+ xz: Take advantage of LZMA_FULL_BARRIER with --block-list.
+
+ Now if --block-list is used in threaded mode, the encoder
+ won't need to flush at each Block boundary specified via
+ --block-list. This improves performance a lot, making
+ threading helpful with --block-list.
+
+ The flush timer was reset after LZMA_FULL_FLUSH but since
+ LZMA_FULL_BARRIER doesn't flush, resetting the timer is
+ no longer done.
+
+commit 0cd45fc2bc5537de287a0bc005e2d67467a92148
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Oct 2 20:05:23 2013 +0300
+
+ liblzma: Support LZMA_FULL_FLUSH and _BARRIER in threaded encoder.
+
+ Now --block-list=SIZES works with in the threaded mode too,
+ although the performance is still bad due to the use of
+ LZMA_FULL_FLUSH instead of the new LZMA_FULL_BARRIER.
+
+commit 97bb38712f414fabecca908af2e38a12570293fd
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Oct 2 12:55:11 2013 +0300
+
+ liblzma: Add LZMA_FULL_BARRIER support to single-threaded encoder.
+
+ In the single-threaded encoder LZMA_FULL_BARRIER is simply
+ an alias for LZMA_FULL_FLUSH.
+
+commit fef0c6b410c08e581c9178700a4e7599f0895ff9
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Sep 17 11:57:51 2013 +0300
+
+ liblzma: Add block_buffer_encoder.h into Makefile.inc.
+
+ This should have been in b465da5988dd59ad98fda10c2e4ea13d0b9c73bc.
+
+commit 8083e03291b6d21c0f538163e187b4e8cd5594e4
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Sep 17 11:55:38 2013 +0300
+
+ xz: Add a missing test for TUKLIB_DOSLIKE.
+
+commit 6b44b4a775fe29ecc7bcb7996e086e3bc09e5fd0
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Sep 17 11:52:28 2013 +0300
+
+ Add native threading support on Windows.
+
+ Now liblzma only uses "mythread" functions and types
+ which are defined in mythread.h matching the desired
+ threading method.
+
+ Before Windows Vista, there is no direct equivalent to
+ pthread condition variables. Since this package doesn't
+ use pthread_cond_broadcast(), pre-Vista threading can
+ still be kept quite simple. The pre-Vista code doesn't
+ use anything that wasn't already available in Windows 95,
+ so the binaries should run even on Windows 95 if someone
+ happens to care.
+
+commit ae0ab74a88d5b9b15845f1d9a24ade4349a54f9f
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Sep 11 14:40:35 2013 +0300
+
Build: Remove a comment about Automake 1.10 from configure.ac.
The previous commit supports silent rules and that requires
Automake 1.11.
- configure.ac | 2 --
- 1 file changed, 2 deletions(-)
-
-commit 090c69dda59e00fc86d0792879bd921bb1156029
+commit 72975df6c8c59aaf849138ab3606e8fb6970596a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-09-09 20:37:03 +0300
+Date: Mon Sep 9 20:37:03 2013 +0300
Build: Create liblzma.pc in a src/liblzma/Makefile.am.
@@ -473,52 +1426,138 @@
Thanks to Vincent Torri.
- configure.ac | 1 -
- src/liblzma/Makefile.am | 20 ++++++++++++++++++++
- 2 files changed, 20 insertions(+), 1 deletion(-)
+commit 1c2b6e7e8382ed390f53e140f160488bb2205ecc
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Aug 4 15:24:09 2013 +0300
-commit 1f35331332273de01c46897cafdb37f8e6e285db
+ Fix the previous commit which broke the build.
+
+ Apparently I didn't even compile-test the previous commit.
+
+ Thanks to Christian Hesse.
+
+commit 124eb69c7857f618b4807588c51bc9ba21bf8691
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Aug 3 13:52:58 2013 +0300
+
+ Windows: Add Windows support to tuklib_cpucores().
+
+ It is used for Cygwin too. I'm not sure if that is
+ a good or bad idea.
+
+ Thanks to Vincent Torri.
+
+commit eada8a875ce3fd521cb42e4ace2624d3d49c5f35
Author: Anders F Bjorklund <afb at users.sourceforge.net>
-Date: 2013-08-02 15:59:46 +0200
+Date: Fri Aug 2 15:59:46 2013 +0200
macosx: separate liblzma package
- macosx/build.sh | 23 +++++++++++++++--------
- 1 file changed, 15 insertions(+), 8 deletions(-)
-
-commit 1415f1d94644f28e07d544bc1e06b0636081abee
+commit be0100d01ca6a75899d051bee00acf17e6dc0c15
Author: Anders F Bjorklund <afb at users.sourceforge.net>
-Date: 2013-08-02 15:58:44 +0200
+Date: Fri Aug 2 15:58:44 2013 +0200
macosx: set minimum to leopard
- macosx/build.sh | 13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
-commit 41913949b93414a21ae9fb1a8e9b7cdde8b37f98
+commit 416729e2d743f4b2fe9fd438eedeb98adce033c3
Author: Anders F Bjorklund <afb at users.sourceforge.net>
-Date: 2011-08-07 13:13:30 +0200
+Date: Sun Aug 7 13:13:30 2011 +0200
move configurables into variables
- macosx/build.sh | 25 ++++++++++++++++++-------
- 1 file changed, 18 insertions(+), 7 deletions(-)
+commit 16581080e5f29f9a4e49efece21c5bf572323acc
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Jul 15 14:08:41 2013 +0300
-commit 3dffda33f47dc220bb1738564fe02effa9da4c8e
+ Update THANKS.
+
+commit 3e2b198ba37b624efd9c7caee2a435dc986b46c6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-07-15 14:08:02 +0300
+Date: Mon Jul 15 14:08:02 2013 +0300
Build: Fix the detection of missing CRC32.
Thanks to Vincent Torri.
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+commit dee6ad3d5915422bc30a6821efeacaeb8ca8ef00
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Jul 4 14:18:46 2013 +0300
-commit b69900ed0b2f914fc6c0a180dcb522dbe5b80ea7
+ xz: Add preliminary support for --flush-timeout=TIMEOUT.
+
+ When --flush-timeout=TIMEOUT is used, xz will use
+ LZMA_SYNC_FLUSH if read() would block and at least
+ TIMEOUT milliseconds has elapsed since the previous flush.
+
+ This can be useful in realtime-like use cases where the
+ data is simultanously decompressed by another process
+ (possibly on a different computer). If new uncompressed
+ input data is produced slowly, without this option xz could
+ buffer the data for a long time until it would become
+ decompressible from the output.
+
+ If TIMEOUT is 0, the feature is disabled. This is the default.
+
+ This commit affects the compression side. Using xz for
+ the decompression side for the above purpose doesn't work
+ yet so well because there is quite a bit of input and
+ output buffering when decompressing.
+
+ The --long-help or man page were not updated yet.
+ The details of this feature may change.
+
+commit fa381acaf9a29a8114e1c0a97de99bab9adb014e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-30 18:02:27 +0300
+Date: Thu Jul 4 13:41:03 2013 +0300
+ xz: Don't set src_eof=true after an I/O error because it's useless.
+
+commit ea00545beace5b950f709ec21e46878e0f448678
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Jul 4 13:25:11 2013 +0300
+
+ xz: Fix the test when to read more input.
+
+ Testing for end of file was no longer correct after full flushing
+ became possible with --block-size=SIZE and --block-list=SIZES.
+ There was no bug in practice though because xz just made a few
+ unneeded zero-byte reads.
+
+commit 736903c64bef394c06685d79908e397bcb08b88f
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Jul 4 12:51:57 2013 +0300
+
+ xz: Move some of the timing code into mytime.[hc].
+
+ This switches units from microseconds to milliseconds.
+
+ New clock_gettime(CLOCK_MONOTONIC) will be used if available.
+ There is still a fallback to gettimeofday().
+
+commit 24edf8d807e24ffaa1e793114d94cca3b970027d
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Jul 1 14:35:03 2013 +0300
+
+ Update THANKS.
+
+commit c0627b3fceacfa1ed162f5f55235360ea26f569a
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Jul 1 14:34:11 2013 +0300
+
+ xz: Silence a warning seen with _FORTIFY_SOURCE=2.
+
+ Thanks to Christian Hesse.
+
+commit 1936718bb38ee394bd89836fdd4eabc0beb02443
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Jun 30 19:40:11 2013 +0300
+
+ Update NEWS for 5.0.5.
+
+commit a37ae8b5eb6093a530198f109c6f7a538c80ecf0
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Jun 30 18:02:27 2013 +0300
+
Man pages: Use similar syntax for synopsis as in xz.
The man pages of lzmainfo, xzmore, and xzdec had similar
@@ -527,56 +1566,61 @@
didn't mention these man pages in his bug report, but
it's nice to be consistent.
- src/lzmainfo/lzmainfo.1 | 4 ++--
- src/scripts/xzmore.1 | 6 +++---
- src/xzdec/xzdec.1 | 10 +++++-----
- 3 files changed, 10 insertions(+), 10 deletions(-)
-
-commit cf4a1e1879d89be314ef3c064bd2656ea452f87e
+commit cdba9ddd870ae72fd6219a125662c20ec997f86c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-30 15:55:09 +0300
+Date: Sat Jun 29 15:59:13 2013 +0300
- Update NEWS for 5.0.5.
+ xz: Use non-blocking I/O for the output file.
+
+ Now both reading and writing should be without
+ race conditions with signals.
+
+ They might still be signal handling issues left.
+ Signals are blocked during many operations to avoid
+ EINTR but it may cause problems e.g. if writing to
+ stderr blocks when trying to display an error message.
- NEWS | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 52 insertions(+)
-
-commit cb94bb6d1f34e1e93c2d634ea9c3b7dfb3981d05
+commit e61a5c95da3fe31281d959e5e842885a8ba2b5bd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-30 15:54:38 +0300
+Date: Fri Jun 28 23:56:17 2013 +0300
- Bump version and soname for 5.0.5.
-
- src/liblzma/Makefile.am | 2 +-
- src/liblzma/api/lzma/version.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-commit b7dee202d5b041ccae028d0c5433b83cecbe9e5d
-Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-28 23:56:17 +0300
-
xz: Fix return value type in io_write_buf().
It didn't affect the behavior of the code since -1
becomes true anyway.
- src/xz/file_io.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+commit 9dc319eabb34a826f4945f91c71620f14a60e9e2
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jun 28 23:48:05 2013 +0300
-commit 265e7b44d804b47373f10b7da28350db7611cea6
+ xz: Use the self-pipe trick to avoid a race condition with signals.
+
+ It is possible that a signal to set user_abort arrives right
+ before a blocking system call is made. In this case the call
+ may block until another signal arrives, while the wanted
+ behavior is to make xz clean up and exit as soon as possible.
+
+ After this commit, the race condition is avoided with the
+ input side which already uses non-blocking I/O. The output
+ side still uses blocking I/O and thus has the race condition.
+
+commit 3541bc79d0cfabc0ad155c99bfdad1289f17fec3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-28 18:46:13 +0300
+Date: Fri Jun 28 22:51:02 2013 +0300
+ xz: Use non-blocking I/O for the input file.
+
+commit 78673a08bed5066c81e8a8e90d20e670c28ecfd5
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jun 28 18:46:13 2013 +0300
+
xz: Remove an outdated NetBSD-specific comment.
Nowadays errno == EFTYPE is documented in open(2).
- src/xz/file_io.c | 4 ----
- 1 file changed, 4 deletions(-)
-
-commit 78c2f8db902195468b8249c432252a6b281db836
+commit a616fdad34b48b2932ef03fb87309dcc8b829527
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-28 18:09:47 +0300
+Date: Fri Jun 28 18:09:47 2013 +0300
xz: Fix error detection of fcntl(fd, F_SETFL, flags) calls.
@@ -586,12 +1630,9 @@
F_SETFL is always 0 (at least accorinding to fcntl(2)
from man-pages 3.51).
- src/xz/file_io.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-commit 91750dff8f2c654ff636f12a2acdffe5492374b3
+commit 4a08a6e4c61c65ab763ab314100a6d7a3bb89298
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-28 17:36:47 +0300
+Date: Fri Jun 28 17:36:47 2013 +0300
xz: Fix use of wrong variable in a fcntl() call.
@@ -607,12 +1648,20 @@
indicate when the flags should be restored instead of
relying on a special value in stdout_flags.
- src/xz/file_io.c | 24 +++++++++++++-----------
- 1 file changed, 13 insertions(+), 11 deletions(-)
+commit b790b435daa3351067f80a5973b647f8d55367a2
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jun 28 14:55:37 2013 +0300
-commit e11888a79a4a77a69afde60445880d44f63d01aa
+ xz: Fix assertion related to posix_fadvise().
+
+ Input file can be a FIFO or something else that doesn't
+ support posix_fadvise() so don't check the return value
+ even with an assertion. Nothing bad happens if the call
+ to posix_fadvise() fails.
+
+commit 84d2da6c9dc252f441deb7626c2522202b005d4d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-26 13:30:57 +0300
+Date: Wed Jun 26 13:30:57 2013 +0300
xz: Check the value of lzma_stream_flags.version in --list.
@@ -621,12 +1670,9 @@
then this check becomes important and will stop the old xz
from trying to parse files that it won't understand.
- src/xz/list.c | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-commit f39ddd88f3222219ada88998cf30abfdd3e0e96c
+commit 9376f5f8f762296f2173d61af9101112c36f38c0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-26 12:17:00 +0300
+Date: Wed Jun 26 12:17:00 2013 +0300
Build: Require Automake 1.12 and use serial-tests option.
@@ -639,13 +1685,28 @@
in XZ Utils but they hide the progress output from
test_compress.sh.
- configure.ac | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
+commit b7e200d7bd0a3c7c171c13ad37d68296d6f73374
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Jun 23 18:59:13 2013 +0300
-commit cb84e278027a90e9827a6f4d3bb0b4d4744a2fbb
+ Update THANKS.
+
+commit 46540e4c10923e363741ff5aab99e79fc0ce6ee8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-23 17:36:47 +0300
+Date: Sun Jun 23 18:57:23 2013 +0300
+ liblzma: Avoid a warning about a shadowed variable.
+
+ On Mac OS X wait() is declared in <sys/wait.h> that
+ we include one way or other so don't use "wait" as
+ a variable name.
+
+ Thanks to Christian Kujau.
+
+commit ebb501ec73cecc546c67117dd01b5e33c90bfb4a
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Jun 23 17:36:47 2013 +0300
+
xz: Validate Uncompressed Size from Block Header in list.c.
This affects only "xz -lvv". Normal decompression with xz
@@ -654,32 +1715,23 @@
show such files as corrupt instead of showing the
Uncompressed Size from Index.
- src/xz/list.c | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-commit f01780fce454c7489f7dcbf806299b50da5f51b7
+commit c09e91dd236d3cabee0fc48312b3dc8cceae41ab
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-26 10:58:58 +0300
+Date: Fri Jun 21 22:08:11 2013 +0300
Update THANKS.
- THANKS | 2 ++
- 1 file changed, 2 insertions(+)
-
-commit d98ede7d700b892e32d9c2f46563b6ebc566786d
+commit eb6ca9854b8eb9fbf72497c1cf608d6b19d2d494
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-21 22:04:45 +0300
+Date: Fri Jun 21 22:04:45 2013 +0300
xz: Make the man page more friendly to doclifter.
Thanks to Eric S. Raymond.
- src/xz/xz.1 | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-commit 19b447b64b3f520cd5b11429000b092f7c76709b
+commit 0c0a1947e6ad90a0a10b7a5c39f6ab99a0aa5c93
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-21 21:54:59 +0300
+Date: Fri Jun 21 21:54:59 2013 +0300
xz: A couple of man page fixes.
@@ -689,12 +1741,9 @@
Thanks to DevHC who reported these issues on IRC to me
on 2012-12-14.
- src/xz/xz.1 | 35 +++++++++++++++++++++++------------
- 1 file changed, 23 insertions(+), 12 deletions(-)
-
-commit 45edf2966fc9a4d2eae8f84b2fa027fb4fa1df8b
+commit 2fcda89939c903106c429e109083d43d894049e0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-06-21 21:50:26 +0300
+Date: Fri Jun 21 21:50:26 2013 +0300
xz: Fix interaction between preset and custom filter chains.
@@ -717,23 +1766,10 @@
Thanks to Conley Moorhous.
- src/xz/coder.c | 35 +++++++++++++++++++++--------------
- 1 file changed, 21 insertions(+), 14 deletions(-)
-
-commit b065984e5a9272eb50bc0c6d3731e6199c0ae8a8
+commit 97379c5ea758da3f8b0bc444d5f7fa43753ce610
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-08 17:53:05 +0300
+Date: Sat Apr 27 22:07:46 2013 +0300
- xz: Change size_t to uint32_t in a few places.
-
- src/xz/coder.c | 6 +++---
- src/xz/coder.h | 2 +-
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-commit 32be621f52f2e1686db88baa7b01dc1ae338f426
-Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-04-27 22:07:46 +0300
-
Build: Use -Wvla with GCC if supported.
Variable-length arrays are mandatory in C99 but optional in C11.
@@ -741,12 +1777,9 @@
future either to stay compatible with C11 without requiring any
optional C11 features.
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
-commit efb07cfba65e9e05984c02cd796c1b0338ce04dc
+commit 8957c58609d3987c58aa72b96c436cf565cc4917
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-04-15 19:29:09 +0300
+Date: Mon Apr 15 19:29:09 2013 +0300
xzdec: Improve the --help message.
@@ -758,32 +1791,23 @@
because I find it easier to spot the ignored vs. non-ignored
options from the list that way.
- src/xzdec/xzdec.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-commit e3c8be13699e2813f5e2879d8187444b46d82d89
+commit ed886e1a92534a24401d0e99c11f1dcff3b5220a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-04-05 19:25:40 +0300
+Date: Fri Apr 5 19:25:40 2013 +0300
Update THANKS.
- THANKS | 2 ++
- 1 file changed, 2 insertions(+)
-
-commit ad8282efe483612f6b5544f9a0d2e4914fb2532a
+commit 5019413a055ce29e660dbbf15e02443cb5a26c59
Author: Jeff Bastian <jbastian at redhat.com>
-Date: 2013-04-03 13:59:17 +0200
+Date: Wed Apr 3 13:59:17 2013 +0200
xzgrep: make the '-h' option to be --no-filename equivalent
* src/scripts/xzgrep.in: Accept the '-h' option in argument parsing.
- src/scripts/xzgrep.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-commit 9271a3eb0e022b23e8712154be851d0afe4c02e4
+commit 5ea900cb5ad862bca81316729f92357c1fc040ce
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-04-05 19:34:09 +0300
+Date: Sat Mar 23 22:25:15 2013 +0200
liblzma: Be less picky in lzma_alone_decoder().
@@ -804,20 +1828,42 @@
Reported here:
http://sourceforge.net/projects/lzmautils/forums/forum/708858/topic/7068827
+
+commit bb117fffa84604b6e3811b068c80db82bf7f7b05
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Mar 23 21:55:13 2013 +0200
+
+ liblzma: Use lzma_block_buffer_bound64() in threaded encoder.
- Conflicts:
- src/liblzma/common/alone_decoder.c
- src/liblzma/common/alone_decoder.h
+ Now it uses lzma_block_uncomp_encode() if the data doesn't
+ fit into the space calculated by lzma_block_buffer_bound64().
- src/liblzma/common/alone_decoder.c | 22 ++++++++++++++--------
- src/liblzma/common/alone_decoder.h | 5 +++--
- src/liblzma/common/auto_decoder.c | 2 +-
- 3 files changed, 18 insertions(+), 11 deletions(-)
+commit e572e123b55b29527e54ce5f0807f115481d78b9
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Mar 23 21:51:38 2013 +0200
-commit 211b931cee58626c1d2e021810cb108cb5cbc10f
+ liblzma: Fix another deadlock in the threaded encoder.
+
+ This race condition could cause a deadlock if lzma_end() was
+ called before finishing the encoding. This can happen with
+ xz with debugging enabled (non-debugging version doesn't
+ call lzma_end() before exiting).
+
+commit b465da5988dd59ad98fda10c2e4ea13d0b9c73bc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2013-03-05 19:14:50 +0200
+Date: Sat Mar 23 19:17:33 2013 +0200
+ liblzma: Add lzma_block_uncomp_encode().
+
+ This also adds a new internal function
+ lzma_block_buffer_bound64() which is similar to
+ lzma_block_buffer_bound() but uses uint64_t instead
+ of size_t.
+
+commit 9e6dabcf22ef4679f4faaae15ebd5b137ae2fad1
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Mar 5 19:14:50 2013 +0200
+
Avoid unneeded use of awk in xzless.
Use "read" instead of "awk" in xzless to get the version
@@ -826,12 +1872,42 @@
Thanks to Ariel P for the patch.
- src/scripts/xzless.in | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
+commit e7b424d267a34803db8d92a3515528be2ed45abd
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Dec 14 20:13:32 2012 +0200
-commit 9f62fd9605eade23b62b07a235d1f02156f7a5c6
+ Make the progress indicator smooth in threaded mode.
+
+ This adds lzma_get_progress() to liblzma and takes advantage
+ of it in xz.
+
+ lzma_get_progress() collects progress information from
+ the thread-specific structures so that fairly accurate
+ progress information is available to applications. Adding
+ a new function seemed to be a better way than making the
+ information directly available in lzma_stream (like total_in
+ and total_out are) because collecting the information requires
+ locking mutexes. It's waste of time to do it more often than
+ the up to date information is actually needed by an application.
+
+commit 2ebbb994e367f55f2561aa7c9e7451703c171f2f
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Dec 14 11:01:41 2012 +0200
+
+ liblzma: Fix mythread_sync for nested locking.
+
+commit 4c7e28705f6de418d19cc77324ef301f996e01ff
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Dec 13 21:05:36 2012 +0200
+
+ xz: Mention --threads in --help.
+
+ Thanks to Olivier Delhomme for pointing out that this
+ was still missing.
+
+commit db5c1817fabf7cbb9e4087b1576eb26f0747338e
Author: Jonathan Nieder <jrnieder at gmail.com>
-Date: 2012-11-19 00:10:10 -0800
+Date: Mon Nov 19 00:10:10 2012 -0800
xzless: Make "less -V" parsing more robust
@@ -841,10 +1917,10 @@
with “|-”. That worked well for a while, but the version string from
‘less’ versions 448 (June, 2012) is misparsed, producing a warning:
- $ xzless /tmp/test.xz; echo $?
- /usr/bin/xzless: line 49: test: 456 (GNU regular expressions): \
- integer expression expected
- 0
+ $ xzless /tmp/test.xz; echo $?
+ /usr/bin/xzless: line 49: test: 456 (GNU regular expressions): \
+ integer expression expected
+ 0
More precisely, modern ‘less’ lists the regexp implementation along
with its version number, and xzless passes the entire version number
@@ -851,10 +1927,10 @@
with attached parenthetical phrase as a number to "test $a -gt $b",
producing the above confusing message.
- $ less-444 -V | head -1
- less 444
- $ less -V | head -1
- less 456 (no regular expressions)
+ $ less-444 -V | head -1
+ less 444
+ $ less -V | head -1
+ less 456 (no regular expressions)
So relax the pattern matched --- instead of expecting "less <number>",
look for a line of the form "less <number>[ (extra parenthetical)]".
@@ -868,45 +1944,37 @@
Reported-by: Jörg-Volker Peetz <jvpeetz at web.de>
Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
- src/scripts/xzless.in | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-commit 1d05980f5b5c2c94d833001daccacce4a466876e
+commit 65536214a31ecd33b6b03b68a351fb597d3703d6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-10-03 15:54:24 +0300
+Date: Wed Oct 3 15:54:24 2012 +0300
xz: Fix the note about --rsyncable on the man page.
- src/xz/xz.1 | 17 +++++++++--------
- 1 file changed, 9 insertions(+), 8 deletions(-)
-
-commit fb68497333598688d309a92838d91fd560f7e9f0
+commit 3d93b6354927247a1569caf22ad27b07e97ee904
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-09-28 20:11:09 +0300
+Date: Fri Sep 28 20:11:09 2012 +0300
xz: Improve handling of failed realloc in xrealloc.
Thanks to Jim Meyering.
- src/xz/util.c | 14 ++++++++++++--
- 1 file changed, 12 insertions(+), 2 deletions(-)
-
-commit 75013db6d4d63c195bd8b8d45729b4be0665a812
+commit ab225620664e235637833be2329935f9d290ba80
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-12-15 20:01:02 +0200
+Date: Fri Aug 24 16:27:31 2012 +0300
A few typo fixes to comments and the xz man page.
Thanks to Jim Meyering.
- configure.ac | 2 +-
- src/liblzma/check/sha256.c | 1 -
- src/xz/xz.1 | 4 ++--
- 3 files changed, 3 insertions(+), 4 deletions(-)
+commit f3c1ec69d910175ffd431fd82968dd35cec806ed
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Aug 13 21:40:09 2012 +0300
-commit e44b21839b1dcbac5097be39b87dd2ddb6e114fd
+ xz: Add a warning to --help about alpha and beta versions.
+
+commit d8eaf9d8278c23c2cf2b7ca5562d4de570d3b5db
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-08-02 17:13:30 +0300
+Date: Thu Aug 2 17:13:30 2012 +0300
Build: Bump gettext version requirement to 0.18.
@@ -913,21 +1981,34 @@
Otherwise too old version of m4/lib-link.m4 gets included
when autoreconf -fi is run.
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+commit 96e08902b09f0f304d4ff80c6e83ef7fff883f34
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Jul 17 18:29:08 2012 +0300
-commit fd3dbb23ca7e75a7a888d7e897c381dc06308307
+ Update THANKS.
+
+commit 3778db1be53e61ff285c573af5ee468803008456
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-07-05 07:36:28 +0300
+Date: Tue Jul 17 18:19:59 2012 +0300
+ liblzma: Make the use of lzma_allocator const-correct.
+
+ There is a tiny risk of causing breakage: If an application
+ assigns lzma_stream.allocator to a non-const pointer, such
+ code won't compile anymore. I don't know why anyone would do
+ such a thing though, so in practice this shouldn't cause trouble.
+
+ Thanks to Jan Kratochvil for the patch.
+
+commit d625c7cf824fd3b61c6da84f56179e94917ff603
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Jul 5 07:36:28 2012 +0300
+
Tests: Remove tests/test_block.c that had gotten committed accidentally.
- tests/test_block.c | 52 ----------------------------------------------------
- 1 file changed, 52 deletions(-)
-
-commit 05a735d279d74af437c31f25f69aded4713c1a3d
+commit 0b09d266cce72bc4841933b171e79551e488927c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-07-05 07:33:35 +0300
+Date: Thu Jul 5 07:33:35 2012 +0300
Build: Include macosx/build.sh in the distribution.
@@ -935,81 +2016,129 @@
few people have seen it since it hasn't been included in
the release tarballs. :-(
- Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
+commit d6e0b23d4613b9f417893dd96cc168c8005ece3d
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Jul 5 07:28:53 2012 +0300
-commit 4e6d62793b5e7b87edcc93c7ded072c1ecd94173
+ Build: Include validate_map.sh in the distribution.
+
+ It's required by "make mydist".
+
+ Fix also the location of EXTRA_DIST+= so that those files
+ get distributed also if symbol versioning isn't enabled.
+
+commit 19de545d86097c3954d69ab5d12820387f6a09bc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-07-05 07:24:45 +0300
+Date: Thu Jul 5 07:24:45 2012 +0300
Docs: Fix the name LZMA Utils -> XZ Utils in debug/README.
- debug/README | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-commit dd95b5e7614baf1f07a1316b5106bd616a9efa79
+commit 672eccf57c31a40dfb956b7662db06d43e18618e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-07-05 07:23:17 +0300
+Date: Thu Jul 5 07:23:17 2012 +0300
Include debug/translation.bash in the distribution.
Also fix the script name mentioned in README.
- README | 4 ++--
- debug/Makefile.am | 3 +++
- 2 files changed, 5 insertions(+), 2 deletions(-)
+commit cafb523adac1caf305e70a04bc37f25602bf990c
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Jul 4 22:31:58 2012 +0300
-commit 20778053a07eb90c159c1377ca8dc05a90fd530b
+ xz: Document --block-list better.
+
+ Thanks to Jonathan Nieder.
+
+commit c7ff218528bc8f7c65e7ef73c6515777346c6794
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-06-22 14:36:16 +0300
+Date: Wed Jul 4 20:01:49 2012 +0300
- xz: Update man page date to match the latest update.
+ Bump the version number to 5.1.2alpha.
- src/xz/xz.1 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+commit 8f3c1d886f93e6478ad509ff52102b2ce7faa999
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Jul 4 20:01:19 2012 +0300
-commit 2cefa84af676da37d7e9c466d55d46c67ab00c22
+ Update NEWS for 5.1.2alpha.
+
+commit 0d5fa05466e580fbc458820f87013ae7644e20e5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-06-22 10:25:43 +0300
+Date: Wed Jul 4 19:58:23 2012 +0300
- Bump version and soname for 5.0.4.
+ xz: Fix the version number printed by xz -lvv.
+
+ The decoder bug was fixed in 5.0.2 instead of 5.0.3.
- src/liblzma/Makefile.am | 2 +-
- src/liblzma/api/lzma/version.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
+commit df11317985a4165731dde12bb0f0028da0e7b77f
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Jul 4 17:11:31 2012 +0300
-commit 433fec191a17e45690809e54146ea7a773f54cff
+ Build: Add a comment to configure.ac about symbol versioning.
+
+commit bd9cc179e8be3ef515201d3ed9c7dd79ae88869d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-06-22 10:25:09 +0300
+Date: Wed Jul 4 17:06:49 2012 +0300
- Update NEWS for 5.0.4.
+ Update TODO.
- NEWS | 25 +++++++++++++++++++------
- 1 file changed, 19 insertions(+), 6 deletions(-)
+commit 4a238dd9b22f462cac5e199828bf1beb0df05884
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Jul 4 17:05:46 2012 +0300
-commit 711fa680f552a4003df73b37e6dc4d6e00b47bcd
+ Document --enable-symbol-versions in INSTALL.
+
+commit 88ccf47205d7f3aa314d358c72ef214f10f68b43
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-06-18 21:27:47 +0300
+Date: Tue Jul 3 21:16:39 2012 +0300
+ xz: Add incomplete support for --block-list.
+
+ It's broken with threads and when also --block-size is used.
+
+commit 972179cdcdf5d8949c48ee31737d87d3050b44af
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Jul 1 18:44:33 2012 +0300
+
+ xz: Update the man page about the new field in --robot -lvv.
+
+commit 1403707fc64a70976aebe66f8d9a9bd12f73a2c5
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Jun 28 10:47:49 2012 +0300
+
+ liblzma: Check that the first byte of range encoded data is 0x00.
+
+ It is just to be more pedantic and thus perhaps catch broken
+ files slightly earlier.
+
+commit eccd8017ffe2c5de473222c4963ec53c62f7fda2
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jun 22 19:00:23 2012 +0300
+
+ Update NEWS from 5.0.4.
+
+commit 2e6754eac26a431e8d340c28906f63bcd1e177e8
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Jun 22 14:34:03 2012 +0300
+
+ xz: Update man page date to match the latest update.
+
+commit b3235a0b1af45d5e1244cbe3191516966c076fa0
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Jun 18 21:27:47 2012 +0300
+
Docs: Language fix to 01_compress_easy.c.
Thanks to Jonathan Nieder.
- doc/examples/01_compress_easy.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-commit 3d7ab1dc61a75c560828be5df96598388b771456
+commit f1675f765fe228cb5a5f904f853445a03e33cfe9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-06-14 20:15:30 +0300
+Date: Thu Jun 14 20:15:30 2012 +0300
Fix the top-level Makefile.am for the new example programs.
- Makefile.am | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-commit ef8b8e5f111469b5bc005975f7abb9abbd372b25
+commit 3a0c5378abefaf86aa39a62a7c9682bdb21568a1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-06-14 10:52:33 +0300
+Date: Thu Jun 14 10:52:33 2012 +0300
Docs: Add new example programs.
@@ -1017,16 +2146,9 @@
human-readable error messages. More tutorial-like examples
are needed but these are a start.
- doc/examples/00_README.txt | 27 ++++
- doc/examples/01_compress_easy.c | 297 ++++++++++++++++++++++++++++++++++++++
- doc/examples/02_decompress.c | 287 ++++++++++++++++++++++++++++++++++++
- doc/examples/03_compress_custom.c | 193 +++++++++++++++++++++++++
- doc/examples/Makefile | 23 +++
- 5 files changed, 827 insertions(+)
-
-commit 75c149bc8045a26f8bc719cb8ed20668dab79091
+commit 1bd2c2c553e30c4a73cfb82abc6908efd6be6b8d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-06-14 10:33:27 +0300
+Date: Thu Jun 14 10:33:27 2012 +0300
Docs: Move xz_pipe_comp.c and xz_pipe_decomp.c to doc/examples_old.
@@ -1034,74 +2156,44 @@
copied the decompressor bug from xz_pipe_decomp.c he has
an example how to easily fix it.
- doc/examples/xz_pipe_comp.c | 127 --------------------------------------
- doc/examples/xz_pipe_decomp.c | 123 ------------------------------------
- doc/examples_old/xz_pipe_comp.c | 127 ++++++++++++++++++++++++++++++++++++++
- doc/examples_old/xz_pipe_decomp.c | 123 ++++++++++++++++++++++++++++++++++++
- 4 files changed, 250 insertions(+), 250 deletions(-)
-
-commit 456307ebf947a5f50bd995d617b99c1215572308
+commit 905f0ab5b5ce544d4b68a2ed6077df0f3d021292
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-06-14 10:33:01 +0300
+Date: Thu Jun 14 10:33:01 2012 +0300
Docs: Fix a bug in xz_pipe_decomp.c example program.
- doc/examples/xz_pipe_decomp.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-commit 4c310b8a29bc257e6ccbd2310f12f258678f3fef
+commit 4bd1a3bd5fdf4870b2f96dd0b8a21657c8a58ad8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-31 15:53:25 +0300
+Date: Wed May 30 23:14:33 2012 +0300
- Translations: Update the Italian translation.
+ Translations: Update the French translation.
- Thanks to Milo Casagrande.
+ Thanks to Adrien Nader.
- po/it.po | 311 ++++++++++++++++++++++++++++++---------------------------------
- 1 file changed, 146 insertions(+), 165 deletions(-)
-
-commit ec32b79366dc47a55ea877589df9e8509ba113a7
+commit d2e836f2f3a87df6fe6bb0589b037db51205d910
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-30 23:15:07 +0300
+Date: Tue May 29 23:42:37 2012 +0300
- Translations: Update the French translation.
+ Translations: Update the German translation.
- Thanks to Adrien Nader.
+ The previous only included the new strings in v5.0.
- po/fr.po | 237 +++++++++++++++++++++++++++++++--------------------------------
- 1 file changed, 118 insertions(+), 119 deletions(-)
-
-commit dd06f40e4dd7649525e4f28d890dc238a3aa37e5
+commit c9a16151577ba459afd6e3528df23bc0ddb95171
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-29 22:26:27 +0300
+Date: Tue May 29 22:26:27 2012 +0300
Translations: Update the German translation.
- po/de.po | 169 ++++++++++++++++++++++++++++++++++-----------------------------
- 1 file changed, 91 insertions(+), 78 deletions(-)
-
-commit c66808d1f55d0149ed57c536cc9b52e9c8b583bc
+commit 1530a74fd48f8493372edad137a24541efe24713
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-29 22:12:57 +0300
+Date: Tue May 29 22:14:21 2012 +0300
Translations: Update Polish translation.
- po/pl.po | 150 ++++++++++++++++++++++++++++++++++-----------------------------
- 1 file changed, 82 insertions(+), 68 deletions(-)
-
-commit 556c22dfed195c1466b298183b850d6c28544900
+commit d8db706acb8316f9861abd432cfbe001dd6d0c5c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-29 13:10:36 +0300
+Date: Mon May 28 20:42:11 2012 +0300
- Preliminary NEWS for 5.0.4.
-
- NEWS | 24 ++++++++++++++++++++++++
- 1 file changed, 24 insertions(+)
-
-commit dd13b66bf582f49d3aec36e3410ff8541b7506da
-Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-28 20:42:11 +0300
-
liblzma: Fix possibility of incorrect LZMA_BUF_ERROR.
lzma_code() could incorrectly return LZMA_BUF_ERROR if
@@ -1128,32 +2220,21 @@
A similar bug was fixed in XZ Embedded on 2011-09-19.
- src/liblzma/simple/simple_coder.c | 2 +-
- tests/Makefile.am | 4 +-
- tests/test_bcj_exact_size.c | 112 ++++++++++++++++++++++++++++++++++++++
- 3 files changed, 116 insertions(+), 2 deletions(-)
-
-commit a0223bf796fdaad51a11ad02c4195c694849cc78
+commit 3f94b6d87f1b8f1c421ba548f8ebb83dca9c8cda
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-28 15:38:32 +0300
+Date: Mon May 28 15:38:32 2012 +0300
Update THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
-commit 86e57e4bfefe3fd8e13615c41604165bb2359501
+commit 7769ea051d739a38a1640fd448cf5eb83cb119c6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-28 15:37:43 +0300
+Date: Mon May 28 15:37:43 2012 +0300
xz: Don't show a huge number in -vv when memory limit is disabled.
- src/xz/message.c | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
-commit 13e44a94da19d1ef14832ff12d3877a6fd2c54c0
+commit ec921105725e4d3ef0a683dd83eee6f24ab60ccd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-27 22:30:17 +0300
+Date: Sun May 27 22:30:17 2012 +0300
xz: Document the "summary" lines of --robot -lvv.
@@ -1161,12 +2242,9 @@
The new columns added in the master branch aren't
necessarily stable yet.
- src/xz/xz.1 | 19 +++++++++++++++++++
- 1 file changed, 19 insertions(+)
-
-commit 2f90345e13ab8fea4de45a4f1caa73ebc63a62e7
+commit 27d24eb0a9f6eed96d6a4594c2b0bf7a91d29f9a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-27 21:53:20 +0300
+Date: Sun May 27 21:53:20 2012 +0300
xz: Fix output of verbose --robot --list modes.
@@ -1173,31 +2251,27 @@
It printed the filename in "filename (x/y)" format
which it obviously shouldn't do in robot mode.
- src/xz/message.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+commit ab25b82a91754d9388c89abddf806424671d9431
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu May 24 18:33:54 2012 +0300
-commit 8d4864f53ffae5d862c691a0b334a6b69bc5366e
+ Build: Upgrade m4/acx_pthread.m4 to the latest version.
+
+commit d05d6d65c41a4bc83f162fa3d67c5d84e8751634
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-10 21:15:17 +0300
+Date: Thu May 10 21:15:17 2012 +0300
Update THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
-commit 35e9c58abb0ce3993da844aaeaa3e7231cd2be8f
+commit e077391982f9f28dbfe542bba8800e7c5b916666
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-10 21:14:16 +0300
+Date: Thu May 10 21:14:16 2012 +0300
Docs: Cleanup line wrapping a bit.
- README | 12 ++++++------
- doc/history.txt | 49 +++++++++++++++++++++++++------------------------
- 2 files changed, 31 insertions(+), 30 deletions(-)
-
-commit 532b3e4c568a228309b56f95c13435fd078dbe02
+commit fc39849c350225c6a1cd7f6e6adff1020521eabc
Author: Benno Schulenberg <bensberg at justemail.net>
-Date: 2012-03-13 22:04:04 +0100
+Date: Tue Mar 13 22:04:04 2012 +0100
Fix a few typos and add some missing articles in some documents.
@@ -1205,34 +2279,21 @@
Signed-off-by: Benno Schulenberg <bensberg at justemail.net>
- AUTHORS | 6 +++---
- README | 42 ++++++++++++++++++++---------------------
- doc/faq.txt | 24 ++++++++++++------------
- doc/history.txt | 58 ++++++++++++++++++++++++++++-----------------------------
- 4 files changed, 65 insertions(+), 65 deletions(-)
-
-commit afb6ce8c82ffef8f2505a3759da72a733c7b0b8f
+commit 29fa0566d5df199cb9acb2d17bf7eea61acc7fa1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-04-29 11:51:25 +0300
+Date: Sun Apr 29 11:51:25 2012 +0300
Windows: Update notes about static linking with MSVC.
- windows/README-Windows.txt | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
-
-commit 7c3ba2ed5c3c878d4a14ca549b46dbff60c6d565
+commit aac1b31ea4e66cf5a7a8c116bdaa15aa45e6c56e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-04-19 15:25:26 +0300
+Date: Thu Apr 19 15:25:26 2012 +0300
liblzma: Remove outdated comments.
- src/liblzma/simple/simple_coder.c | 3 ---
- src/liblzma/simple/simple_private.h | 3 +--
- 2 files changed, 1 insertion(+), 5 deletions(-)
-
-commit f55db9c187651094f43881c49db2b2d9ffee6b80
+commit df14a46013bea70c0bd35be7821b0b9108f97de7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-04-19 14:17:52 +0300
+Date: Thu Apr 19 14:17:52 2012 +0300
DOS: Link against DJGPP's libemu to support FPU emulation.
@@ -1239,30 +2300,27 @@
This way xz should work on 386SX and 486SX. Floating point
only is needed for verbose output in xz.
- dos/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+commit 03ed742a3a4931bb5c821357832083b26f577b13
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Apr 19 14:02:25 2012 +0300
-commit 203edff4c761dbd7cac76ea66e4eed501c23e7a3
+ liblzma: Fix Libs.private in liblzma.pc to include -lrt when needed.
+
+commit 8c5b13ad59df70f49429bfdfd6ac120b8f892fda
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-04-19 13:58:55 +0300
+Date: Thu Apr 19 13:58:55 2012 +0300
Docs: Update MINIX 3 information in INSTALL.
- INSTALL | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-commit f0a8f95c215628967b7cf9bd9b0a9e4172f50bb4
+commit c7376fc415a1566f38b2de4b516a17013d516a8b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-02-22 14:23:13 +0200
+Date: Wed Feb 22 14:23:13 2012 +0200
Update THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
-commit b7ad23fa78646036c0290cd91eada939c9a31526
+commit cff070aba6281ba743d29a62b8c0c66e5da4b2a6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-02-22 14:02:34 +0200
+Date: Wed Feb 22 14:02:34 2012 +0200
Fix exit status of xzgrep when grepping binary files.
@@ -1278,124 +2336,110 @@
Thanks to James Buren for the bug report.
- src/scripts/xzgrep.in | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-commit 4e19fbb04a0035030406482319e264426459eb24
+commit 41cafb2bf9beea915710ee68f05fe929cd17759c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-02-22 12:08:43 +0200
+Date: Wed Feb 22 12:08:43 2012 +0200
Update THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
-commit c6fa03a427e3d1320794102cee3ff4f5ae00eb36
+commit 2dcea03712fa881930d69ec9eff70855c3d126d9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-24 18:47:52 +0300
+Date: Wed Feb 22 12:00:16 2012 +0200
Fix compiling with IBM XL C on AIX.
- INSTALL | 36 ++++++++++++++++++++++--------------
- configure.ac | 6 +++++-
- 2 files changed, 27 insertions(+), 15 deletions(-)
-
-commit 7b6ffc98645e1b3b302b6680be0a901d1ebf7358
+commit 7db6bdf4abcf524115be2cf5659ed540cef074c5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-05-24 18:37:08 +0300
+Date: Tue Jan 10 17:13:03 2012 +0200
- Build: Upgrade m4/acx_pthread.m4 to the latest version.
-
- It was renamed to ax_pthread.m4 in Autoconf Archive.
-
- configure.ac | 2 +-
- m4/acx_pthread.m4 | 279 ------------------------------------------------
- m4/ax_pthread.m4 | 309 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 310 insertions(+), 280 deletions(-)
-
-commit bfac2be5023994fcc53de2844e7dd3af61910dc2
-Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2012-01-10 17:13:03 +0200
-
Tests: Fix a compiler warning with _FORTIFY_SOURCE.
Reported here:
http://sourceforge.net/projects/lzmautils/forums/forum/708858/topic/4927385
- tests/create_compress_files.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-commit df85e156716a4eecb7e2978691f03f729444d998
+commit 694952d545b6cf056547893ced69486eff9ece55
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-12-19 21:21:29 +0200
+Date: Mon Dec 19 21:21:29 2011 +0200
Docs: Explain the stable releases better in README.
- README | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
+commit 418fe668b3c53a9a20020b6cc652aaf25c734b29
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Nov 7 13:07:52 2011 +0200
-commit d06d32f108c8278c25c24b2e8666bda7b2ec23b5
+ xz: Show minimum required XZ Utils version in xz -lvv.
+
+ Man page wasn't updated yet.
+
+commit 7081d82c37326bac97184e338345fa1c327e3580
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-11-04 17:57:16 +0200
+Date: Fri Nov 4 17:57:16 2011 +0200
xz: Fix a typo in a comment.
Thanks to Bela Lubkin.
- src/xz/args.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-commit 636fdcfbf542f1e84db2c4736004d84be4b12c84
+commit 232fe7cd70ad258d6a37f17e860e0f1b1891eeb5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-11-03 17:08:02 +0200
+Date: Thu Nov 3 17:08:02 2011 +0200
Update THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
-commit 55fd02f83ecd6cbd6925a3e8a3d43b8d4ef2a17c
+commit 74d2bae4d3449c68453b0473dd3430ce91fd90c1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-11-03 17:07:22 +0200
+Date: Thu Nov 3 17:07:22 2011 +0200
xz: Fix xz on EBCDIC systems.
Thanks to Chris Donawa.
- src/xz/coder.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
+commit 4ac4923f47cc0ef97dd9ca5cfcc44fc53eeab34a
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Oct 23 17:09:10 2011 +0300
-commit 4052f36053b931bad847a36aabf1a07d0034e297
+ Update THANKS.
+
+commit ab50ae3ef40c81e5bf613905ca3fd636548b75e7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-09-06 12:03:41 +0300
+Date: Sun Oct 23 17:08:14 2011 +0300
- Build: Fix "make check" on Windows.
+ liblzma: Fix invalid free() in the threaded encoder.
+
+ It was triggered if initialization failed e.g. due to
+ running out of memory.
+
+ Thanks to Arkadiusz Miskiewicz.
- tests/Makefile.am | 7 +++++--
- windows/build.bash | 2 ++
- 2 files changed, 7 insertions(+), 2 deletions(-)
+commit 6b620a0f0813d28c3c544b4ff8cb595b38a6e908
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Oct 23 17:05:55 2011 +0300
-commit 0f25758459c74c366a73f35d47ee12b75890bb79
+ liblzma: Fix a deadlock in the threaded encoder.
+
+ It was triggered when reinitializing the encoder,
+ e.g. when encoding two files.
+
+commit bd52cf150ecd51e3ab63a9cc1a3cff6a77500178
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-08-09 21:19:13 +0300
+Date: Tue Sep 6 12:03:41 2011 +0300
+ Build: Fix "make check" on Windows.
+
+commit 5c5b2256969ac473001b7d67615ed3bd0a54cc82
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Aug 9 21:19:13 2011 +0300
+
Update THANKS.
- THANKS | 2 ++
- 1 file changed, 2 insertions(+)
-
-commit 70f03b51ffcb783646b20de8d97b6986c4280eec
+commit 5b1e1f10741af9e4bbe4cfc3261fb7c7b04f7809
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-08-09 21:16:44 +0300
+Date: Tue Aug 9 21:16:44 2011 +0300
Workaround unusual SIZE_MAX on SCO OpenServer.
- src/common/sysdefs.h | 9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-commit f138bdf76a70029e8360062a0b227936b83b24c9
+commit e9ed88126eee86e2511fa42681a5c7104820cf0a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-08-06 20:37:28 +0300
+Date: Sat Aug 6 20:37:28 2011 +0300
Run the scripts with the correct shell in test_scripts.sh.
@@ -1407,13 +2451,9 @@
Thanks to Jonathan Nieder for the patch.
- configure.ac | 8 ++++----
- tests/test_scripts.sh | 8 ++++----
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
-commit 2c144a0365c84dbf1b6722466746d42f2563a319
+commit 1c673e5681720491a74fc4b2992e075f47302c22
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-07-31 11:01:47 +0300
+Date: Sun Jul 31 11:01:47 2011 +0300
Fix exit status of "xzdiff foo.xz bar.xz".
@@ -1428,64 +2468,65 @@
Thanks to Jonathan Nieder for the patch and
to Peter Pallinger for reporting the bug.
- src/scripts/xzdiff.in | 2 ++
- tests/Makefile.am | 4 +++-
- tests/test_scripts.sh | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 59 insertions(+), 1 deletion(-)
+commit 324cde7a864f4506c32ae7846d688c359a83fe65
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Jun 16 12:15:29 2011 +0300
-commit edf339227a966f24aebe1845fcca9429b8f6e318
-Author: Anders F Bjorklund <afb at users.sourceforge.net>
-Date: 2010-11-05 12:56:11 +0100
+ liblzma: Remove unneeded semicolon.
- add build script for macosx universal
-
- macosx/build.sh | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 92 insertions(+)
-
-commit 7fcc6334ea8923550ba6b5347ff99dc8432234b0
+commit 492c86345551a51a29bf18e55fe55a5e86f169ce
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-06-16 12:15:29 +0300
+Date: Sat May 28 19:24:56 2011 +0300
- liblzma: Remove unneeded semicolon.
+ Build: Make configure print if symbol versioning is enabled or not.
- src/liblzma/lz/lz_encoder_hash.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-commit 631f4d3ae6adfda84d1a110781d9402c12e16cfc
+commit fc4d4436969bd4d71b704d400a165875e596034a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-28 16:43:26 +0300
+Date: Sat May 28 16:43:26 2011 +0300
Don't call close(-1) in tuklib_open_stdxxx() on error.
Thanks to Jim Meyering.
- src/common/tuklib_open_stdxxx.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
+commit bd35d903a04c4d388adb4065b0fa271302380895
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat May 28 15:55:39 2011 +0300
-commit c89faf4c9e5970e7f7f8a25521ed9aa62d1a2d9a
+ liblzma: Use symbol versioning.
+
+ Symbol versioning is enabled by default on GNU/Linux,
+ other GNU-based systems, and FreeBSD.
+
+ I'm not sure how stable this is, so it may need
+ backward-incompatible changes before the next release.
+
+ The idea is that alpha and beta symbols are considered
+ unstable and require recompiling the applications that
+ use those symbols. Once a symbol is stable, it may get
+ extended with new features in ways that don't break
+ compatibility with older ABI & API.
+
+ The mydist target runs validate_map.sh which should
+ catch some probable problems in liblzma.map. Otherwise
+ I would forget to update the map file for new releases.
+
+commit afbb244362c9426a37ce4eb9d54aab768da3adad
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-28 09:47:56 +0300
+Date: Sat May 28 09:46:46 2011 +0300
- Translations: Update Italian translation.
+ Translations: Update the Italian translation.
Thanks to Milo Casagrande.
- po/it.po | 333 +++++++++++++++++++++++++++++++++++----------------------------
- 1 file changed, 184 insertions(+), 149 deletions(-)
-
-commit 6fe2fc9b6ab5bf6848140823e9536370834f42fb
+commit 79bef85e0543c0c3723281c3c817616c6cec343b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-28 08:46:04 +0300
+Date: Sat May 28 08:46:04 2011 +0300
Tests: Add a test file for the bug in the previous commit.
- tests/files/README | 4 ++++
- tests/files/bad-1-block_header-6.xz | Bin 0 -> 72 bytes
- 2 files changed, 4 insertions(+)
-
-commit 6c4d4db2bc8d8b682bd927144d37daa2ab21a6d6
+commit c0297445064951807803457dca1611b3c47e7f0f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-27 22:25:44 +0300
+Date: Fri May 27 22:25:44 2011 +0300
xz: Fix error handling in xz -lvv.
@@ -1492,51 +2533,35 @@
It could do an invalid free() and read past the end
of the uninitialized filters array.
- src/xz/list.c | 21 ++++++---------------
- 1 file changed, 6 insertions(+), 15 deletions(-)
-
-commit 844f84fcad9670c543550edf7c7e42630c8f7715
+commit 8bd91918ac50731f00b1a2a48072980572eb2ff9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-27 22:09:49 +0300
+Date: Fri May 27 22:09:49 2011 +0300
liblzma: Handle allocation failures correctly in lzma_index_init().
Thanks to Jim Meyering.
- src/liblzma/common/index.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-commit 240e8b9791df597063a3b68d04ffcb3aa4f2de6a
+commit fe00f95828ef5627721b57e054f7eb2d42a2c961
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-23 18:30:30 +0300
+Date: Tue May 24 00:23:46 2011 +0300
- Build: Set GZIP_ENV=-9n in top-level Makefile.am.
+ Build: Fix checking for system-provided SHA-256.
- Makefile.am | 3 +++
- 1 file changed, 3 insertions(+)
-
-commit e32cb264ea72a4459810f30abad70dae5a4fa17d
+commit 21b45b9bab541f419712cbfd473ccc31802e0397
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-21 16:59:22 +0300
+Date: Mon May 23 18:30:30 2011 +0300
- Bump version and soname for 5.0.3.
+ Build: Set GZIP_ENV=-9n in top-level Makefile.am.
- src/liblzma/Makefile.am | 2 +-
- src/liblzma/api/lzma/version.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-commit 65cff45f8fd1c250491557157cce0f5f38481082
+commit 48053e8a4550233af46359024538bff90c870ab1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-21 16:56:53 +0300
+Date: Sun May 22 16:42:11 2011 +0300
Update NEWS for 5.0.3.
- NEWS | 36 ++++++++++++++++++++++++++++++++++--
- 1 file changed, 34 insertions(+), 2 deletions(-)
-
-commit 316c67ffdae1f811ac95e838d5290a013bff4ca7
+commit bba37df2c9e54ad773e15ff00a09d2d6989fb3b2
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-21 16:28:44 +0300
+Date: Sat May 21 16:28:44 2011 +0300
Add French translation.
@@ -1543,42 +2568,56 @@
It is known that the BCJ filter --help text is only
partially translated.
- po/LINGUAS | 1 +
- po/fr.po | 864 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 865 insertions(+)
-
-commit 1931175eea6d09c0845d6e8e334a7333647f11c0
+commit 4161d7634965a7a287bf208dcd79f6185f448fe8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-21 15:12:10 +0300
+Date: Sat May 21 15:12:10 2011 +0300
xz: Translate also the string used to print the program name.
French needs a space before a colon, e.g. "xz : foo error".
- src/xz/message.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
+commit b94aa0c8380cdb18cddb33440d625474c16643cf
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat May 21 15:08:44 2011 +0300
-commit 841dc1f891b48b23f84c0f0e0c86c7c4e4bdcdf5
+ liblzma: Try to use SHA-256 from the operating system.
+
+ If the operating system libc or other base libraries
+ provide SHA-256, use that instead of our own copy.
+ Note that this doesn't use OpenSSL or libgcrypt or
+ such libraries to avoid creating dependencies to
+ other packages.
+
+ This supports at least FreeBSD, NetBSD, OpenBSD, Solaris,
+ MINIX, and Darwin. They all provide similar but not
+ identical SHA-256 APIs; everyone is a little different.
+
+ Thanks to Wim Lewis for the original patch, improvements,
+ and testing.
+
+commit f004128678d43ea10b4a6401aa184cf83252d6ec
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-17 12:26:28 +0300
+Date: Tue May 17 12:52:18 2011 +0300
+ Don't use clockid_t in mythread.h when clock_gettime() isn't available.
+
+ Thanks to Wim Lewis for the patch.
+
+commit f779516f42ebd2db47a5b7d6143459bf7737cf2f
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue May 17 12:26:28 2011 +0300
+
Update THANKS.
- THANKS | 3 +++
- 1 file changed, 3 insertions(+)
-
-commit 0f7e2d36240ebf1159d5fb85d8cd7422337a0d3f
+commit 830ba587775bb562f6eaf05cad61bf669d1f8892
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-17 12:21:33 +0300
+Date: Tue May 17 12:21:33 2011 +0300
Update INSTALL with a note about linker problem on OpenSolaris x86.
- INSTALL | 23 +++++++++++++++++------
- 1 file changed, 17 insertions(+), 6 deletions(-)
-
-commit 793d857e01e1725f16fc0c8af8172c91a9e38617
+commit ec7106309c8060e9c646dba20c4f15689a0bbb04
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-17 12:01:37 +0300
+Date: Tue May 17 12:01:37 2011 +0300
Build: Fix initialization of enable_check_* variables in configure.ac.
@@ -1587,54 +2626,75 @@
Thanks to Wim Lewis.
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-commit afcff45cee04c5c7d9c333504046ffb63d1418b5
+commit 4c6e146df99696920f12410fb17754412797ef36
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-05-17 11:54:38 +0300
+Date: Tue May 17 11:54:38 2011 +0300
Add underscores to attributes (__attribute((__foo__))).
- src/liblzma/common/alone_decoder.c | 2 +-
- src/liblzma/common/alone_encoder.c | 2 +-
- src/liblzma/common/block_encoder.c | 2 +-
- src/liblzma/common/common.c | 2 +-
- src/liblzma/common/common.h | 2 +-
- src/liblzma/common/index_decoder.c | 9 +++++----
- src/liblzma/common/index_encoder.c | 11 ++++++-----
- src/liblzma/delta/delta_encoder.c | 2 +-
- src/liblzma/lz/lz_decoder.c | 2 +-
- src/liblzma/lz/lz_encoder.c | 2 +-
- src/liblzma/simple/arm.c | 2 +-
- src/liblzma/simple/armthumb.c | 2 +-
- src/liblzma/simple/ia64.c | 2 +-
- src/liblzma/simple/powerpc.c | 2 +-
- src/liblzma/simple/simple_coder.c | 2 +-
- src/liblzma/simple/sparc.c | 2 +-
- src/lzmainfo/lzmainfo.c | 4 ++--
- src/xz/coder.c | 2 +-
- src/xz/hardware.h | 2 +-
- src/xz/message.c | 2 +-
- src/xz/message.h | 18 +++++++++---------
- src/xz/options.c | 6 +++---
- src/xz/signals.c | 2 +-
- src/xz/util.h | 6 +++---
- src/xzdec/xzdec.c | 6 +++---
- 25 files changed, 49 insertions(+), 47 deletions(-)
+commit 7a480e485938884ef3021b48c3b0b9f9699dc9b6
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun May 1 12:24:23 2011 +0300
-commit 22159c6ba2300a006f2e46ce85ae132e2d2f7d57
+ xz: Fix input file position when --single-stream is used.
+
+ Now the following works as you would expect:
+
+ echo foo | xz > foo.xz
+ echo bar | xz >> foo.xz
+ ( xz -dc --single-stream ; xz -dc --single-stream ) < foo.xz
+
+ Note that it doesn't work if the input is not seekable
+ or if there is Stream Padding between the concatenated
+ .xz Streams.
+
+commit c29e6630c1450c630c4e7b783bdd76515db9004c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-18 19:35:49 +0300
+Date: Sun May 1 12:15:51 2011 +0300
+ xz: Print the maximum number of worker threads in xz -vv.
+
+commit 0b77c4a75158ccc416b07d6e81df8ee0abaea720
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Apr 19 10:44:48 2011 +0300
+
+ Build: Warn if no supported method to detect the number of CPU cores.
+
+commit e4622df9ab4982f8faa53d85b17be66216175a58
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Apr 19 09:55:06 2011 +0300
+
Update THANKS.
- THANKS | 2 ++
- 1 file changed, 2 insertions(+)
+commit 9c1b05828a88eff54409760b92162c7cc2c7cff6
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Apr 19 09:20:44 2011 +0300
-commit 5e3499059515033d1ce44b6fb0fa49183c7ac633
+ Fix portability problems in mythread.h.
+
+ Use gettimeofday() if clock_gettime() isn't available
+ (e.g. Darwin).
+
+ The test for availability of pthread_condattr_setclock()
+ and CLOCK_MONOTONIC was incorrect. Instead of fixing the
+ #ifdefs, use an Autoconf test. That way if there exists a
+ system that supports them but doesn't specify the matching
+ POSIX #defines, the features will still get detected.
+
+ Don't try to use pthread_sigmask() on OpenVMS. It doesn't
+ have that function.
+
+ Guard mythread.h against being #included multiple times.
+
+commit 3de00cc75da7b0e7b65e84c62b5351e231f501e9
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Apr 18 19:35:49 2011 +0300
+
+ Update THANKS.
+
+commit bd5002f5821e3d1b04f2f56989e4a19318e73633
Author: Martin Väth <vaeth at mathematik.uni-wuerzburg.de>
-Date: 2011-04-15 04:54:49 -0400
+Date: Fri Apr 15 04:54:49 2011 -0400
xzgrep: fix typo in $0 parsing
@@ -1642,13 +2702,25 @@
Signed-off-by: Martin Väth <vaeth at mathematik.uni-wuerzburg.de>
Signed-off-by: Mike Frysinger <vapier at gentoo.org>
- src/scripts/xzgrep.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+commit 6ef4eabc0acc49e1bb9dc68064706e19fa9fcf48
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Apr 12 12:48:31 2011 +0300
-commit 1125611b9b8d4a209b6a73d2c76e1b39c065972a
+ Bump the version number to 5.1.1alpha and liblzma soname to 5.0.99.
+
+commit 9a4377be0d21e597c66bad6c7452873aebfb3c1c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-12 11:59:49 +0300
+Date: Tue Apr 12 12:42:37 2011 +0300
+ Put the unstable APIs behind #ifdef LZMA_UNSTABLE.
+
+ This way people hopefully won't complain if these APIs
+ change and break code that used an older API.
+
+commit 3e321a3acd50002cf6fdfd259e910f56d3389bc3
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Apr 12 11:59:49 2011 +0300
+
Remove doubled words from documentation and comments.
Spot candidates by running these commands:
@@ -1658,39 +2730,93 @@
Thanks to Jim Meyering for the original patch.
- doc/lzma-file-format.txt | 4 ++--
- src/liblzma/common/alone_encoder.c | 2 +-
- src/liblzma/lzma/lzma2_encoder.c | 2 +-
- src/xz/file_io.c | 2 +-
- src/xz/xz.1 | 2 +-
- windows/INSTALL-Windows.txt | 2 +-
- 6 files changed, 7 insertions(+), 7 deletions(-)
+commit d91a84b534b012d19474f2fda1fbcaef873e1ba4
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Apr 12 11:46:01 2011 +0300
-commit 3f8fa53837bae8b44f3addf19923e26401336c3d
+ Update NEWS.
+
+commit 14e6ad8cfe0165c1a8beeb5b2a1536558b29b0a1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-11 21:04:13 +0300
+Date: Tue Apr 12 11:45:40 2011 +0300
- liblzma: Document lzma_easy_(enc|dec)oder_memusage() better too.
+ Update TODO.
- src/liblzma/api/lzma/container.h | 9 +++++++++
- 1 file changed, 9 insertions(+)
+commit 70e750f59793f9b5cd306a5adce9b8e427739e04
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Apr 12 11:08:55 2011 +0300
-commit 320d734c20d0776e3eb80f6b5984ddeb494715b5
+ xz: Update the man page about threading.
+
+commit 24e0406c0fb7494d2037dec033686faf1bf67068
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-11 20:59:07 +0300
+Date: Mon Apr 11 22:06:03 2011 +0300
+ xz: Add support for threaded compression.
+
+commit de678e0c924aa79a19293a8a6ed82e8cb6572a42
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Apr 11 22:03:30 2011 +0300
+
+ liblzma: Add lzma_stream_encoder_mt() for threaded compression.
+
+ This is the simplest method to do threading, which splits
+ the uncompressed data into blocks and compresses them
+ independently from each other. There's room for improvement
+ especially to reduce the memory usage, but nevertheless,
+ this is a good start.
+
+commit 25fe729532cdf4b8fed56a4519b73cf31efaec50
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Apr 11 21:15:07 2011 +0300
+
+ liblzma: Add the forgotten lzma_lzma2_block_size().
+
+ This should have been in 5eefc0086d24a65e136352f8c1d19cefb0cbac7a.
+
+commit 91afb785a1dee34862078d9bf844ef12b8cc3e35
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Apr 11 21:04:13 2011 +0300
+
+ liblzma: Document lzma_easy_(enc|dec)oder_memusage() better too.
+
+commit 4a9905302a9e4a1601ae09d650d3f08ce98ae9ee
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Apr 11 20:59:07 2011 +0300
+
liblzma: Document lzma_raw_(enc|dec)oder_memusage() better.
It didn't mention the return value that is used if
an error occurs.
- src/liblzma/api/lzma/filter.h | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
+commit 0badb0b1bd649163322783b0bd9e590b4bc7a93d
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Apr 11 19:28:18 2011 +0300
-commit 2ee4edeffc8d9734bf68230df31b20ac6a94c9b5
+ liblzma: Use memzero() to initialize supported_actions[].
+
+ This is cleaner and makes it simpler to add new members
+ to lzma_action enumeration.
+
+commit a7934c446a58e20268689899d2a39f50e571f251
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-11 13:59:50 +0300
+Date: Mon Apr 11 19:26:27 2011 +0300
+ liblzma: API comment about lzma_allocator with threaded coding.
+
+commit 5eefc0086d24a65e136352f8c1d19cefb0cbac7a
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Apr 11 19:16:30 2011 +0300
+
+ liblzma: Add an internal function lzma_mt_block_size().
+
+ This is based lzma_chunk_size() that was included in some
+ development version of liblzma.
+
+commit d1199274758049fc523d98c5b860ff814a799eec
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Apr 11 13:59:50 2011 +0300
+
liblzma: Don't create an empty Block in lzma_stream_buffer_encode().
Empty Block was created if the input buffer was empty.
@@ -1700,12 +2826,9 @@
files to be corrupt. I thought that no encoder creates empty
Blocks when releasing 5.0.2 but I was wrong.
- src/liblzma/common/stream_buffer_encoder.c | 20 +++++++++++++-------
- 1 file changed, 13 insertions(+), 7 deletions(-)
-
-commit 73f56fb87d54091d0c4fd22d70e6f042902e3b63
+commit 3b22fc2c87ec85fcdd385c163b68fc49c97aa848
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-11 13:28:40 +0300
+Date: Mon Apr 11 13:28:40 2011 +0300
liblzma: Fix API docs to mention LZMA_UNSUPPORTED_CHECK.
@@ -1712,13 +2835,9 @@
This return value was missing from the API comments of
four functions.
- src/liblzma/api/lzma/block.h | 1 +
- src/liblzma/api/lzma/container.h | 3 +++
- 2 files changed, 4 insertions(+)
-
-commit 4ce1cf97a88ae1640a380dd19cbc255d729f966b
+commit 71b9380145dccf001f22e66a06b9d508905c25ce
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-11 13:21:28 +0300
+Date: Mon Apr 11 13:21:28 2011 +0300
liblzma: Validate encoder arguments better.
@@ -1729,24 +2848,111 @@
an unsupport Check ID, so this bug is unlikely to cause
many real-world problems.
- src/liblzma/common/block_buffer_encoder.c | 18 ++++++++++++------
- src/liblzma/common/block_encoder.c | 5 +++++
- src/liblzma/common/stream_buffer_encoder.c | 3 +++
- 3 files changed, 20 insertions(+), 6 deletions(-)
+commit ec7e3dbad704268825fc48f0bdd4577bc46b4f13
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Apr 11 09:57:30 2011 +0300
-commit 972f05d7a4268dbe42573701f83faa45d03249eb
+ xz: Move the description of --block-size in --long-help.
+
+commit cd3086ff443bb282bdf556919c28b3e3cbed8169
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-09 18:29:30 +0300
+Date: Mon Apr 11 09:55:35 2011 +0300
- Update THANKS.
+ Docs: Document --single-stream and --block-size.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
+commit fb64a4924334e3c440865710990fe08090f2fed0
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Apr 11 09:27:57 2011 +0300
-commit 28154eeaf6e3442cd1e174f4e81266d60c4dac60
+ liblzma: Make lzma_stream_encoder_init() static (second try).
+
+ It's an internal function and it's not needed by
+ anything outside stream_encoder.c.
+
+commit a34730cf6af4d33a4057914e57227b6dfde6567e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-09 18:28:58 +0300
+Date: Mon Apr 11 08:31:42 2011 +0300
+ Revert "liblzma: Make lzma_stream_encoder_init() static."
+
+ This reverts commit 352ac82db5d3f64585c07b39e4759388dec0e4d7.
+ I don't know what I was thinking.
+
+commit 9f0a806aef7ea79718e3f1f2baf3564295229a27
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Apr 10 21:23:21 2011 +0300
+
+ Revise mythread.h.
+
+ This adds:
+
+ - mythread_sync() macro to create synchronized blocks
+
+ - mythread_cond structure and related functions
+ and macros for condition variables with timed
+ waiting using a relative timeout
+
+ - mythread_create() to create a thread with all
+ signals blocked
+
+ Some of these wouldn't need to be inline functions,
+ but I'll keep them this way for now for simplicity.
+
+ For timed waiting on a condition variable, librt is
+ now required on some systems to use clock_gettime().
+ configure.ac was updated to handle this.
+
+commit 352ac82db5d3f64585c07b39e4759388dec0e4d7
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Apr 10 20:37:36 2011 +0300
+
+ liblzma: Make lzma_stream_encoder_init() static.
+
+ It's an internal function and it's not needed by
+ anything outside stream_encoder.c.
+
+commit 9e807fe3fe79618ac48f58207cf7082ea20a6928
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Apr 10 14:58:10 2011 +0300
+
+ DOS: Update the docs and include notes about 8.3 filenames.
+
+commit ebd54dbd6e481d31e80757f900ac8109ad1423c6
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Apr 10 13:09:42 2011 +0300
+
+ xz/DOS: Add experimental 8.3 filename support.
+
+ This is incompatible with the 8.3 support patch made by
+ Juan Manuel Guerrero. I think this one is nicer, but
+ I need to get feedback from DOS users before saying
+ that this is the final version of 8.3 filename support.
+
+commit cd4fe97852bcaeffe674ee51b4613709292a0972
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Apr 10 12:47:47 2011 +0300
+
+ xz/DOS: Be more careful with the destination file.
+
+ Try to avoid overwriting the source file if --force is
+ used and the generated destination filename refers to
+ the source file. This can happen with 8.3 filenames where
+ extra characters are ignored.
+
+ If the generated output file refers to a special file
+ like "con" or "prn", refuse to write to it even if --force
+ is used.
+
+commit 607f9f98ae5ef6d49f4c21c806d462bf6b3d6796
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Apr 9 18:29:30 2011 +0300
+
+ Update THANKS.
+
+commit fca396b37410d272b754843a5dc13847be443a3a
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Apr 9 18:28:58 2011 +0300
+
liblzma: Add missing #ifdefs to filter_common.c.
Passing --disable-decoders to configure broke a few
@@ -1754,64 +2960,92 @@
Thanks to Jason Gorski for the patch.
- src/liblzma/common/filter_common.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
+commit b03f6cd3ebadd675f2cc9d518cb26fa860269447
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Apr 9 15:24:59 2011 +0300
-commit aa95516d3d509c6b7895ee519004afcf500a0759
+ xz: Avoid unneeded fstat() on DOS-like systems.
+
+commit 335fe260a81f61ec99ff5940df733b4c50aedb7c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-02 14:49:56 +0300
+Date: Sat Apr 9 15:11:13 2011 +0300
- liblzma: Fix a memory leak in stream_encoder.c.
+ xz: Minor internal changes to handling of --threads.
- It leaks old filter options structures (hundred bytes or so)
- every time the lzma_stream is reinitialized. With the xz tool,
- this happens when compressing multiple files.
+ Now it always defaults to one thread. Maybe this
+ will change again if a threading method is added
+ that doesn't affect memory usage.
- src/liblzma/common/stream_encoder.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+commit 9edd6ee895fbe71d245a173f48e511f154a99875
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Apr 8 17:53:05 2011 +0300
-commit 58f52c72f49562a08042da9a2f4bbdf4dd162d0c
+ xz: Change size_t to uint32_t in a few places.
+
+commit 411013ea4506a6df24d35a060fcbd73a57b73eb3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-01 08:47:46 +0300
+Date: Fri Apr 8 17:48:41 2011 +0300
- Bumped version and liblzma soname to 5.0.2.
+ xz: Fix a typo in a comment.
- src/liblzma/Makefile.am | 2 +-
- src/liblzma/api/lzma/version.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
+commit b34c5ce4b22e8d7b81f9895d15054af41d17f805
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Apr 5 22:41:33 2011 +0300
-commit 162779682e01d15f0ce386ef7f40d1be05ad0053
+ liblzma: Use TUKLIB_GNUC_REQ to check GCC version in sha256.c.
+
+commit db33117cc85c17e0b897b5312bd5eb43aac41c03
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-04-01 08:47:20 +0300
+Date: Tue Apr 5 17:12:20 2011 +0300
- Updated NEWS for 5.0.2.
+ Build: Upgrade m4/acx_pthread.m4 to the latest version.
+
+ It was renamed to ax_pthread.m4 in Autoconf Archive.
- NEWS | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
+commit 1039bfcfc098b69d56ecb39d198a092552eacf6d
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Apr 5 15:27:26 2011 +0300
-commit 45553f9b4b0175c292023010dc41520347004852
+ xz: Use posix_fadvise() if it is available.
+
+commit 1ef3cf44a8eb9512480af4482a5232ea08363b14
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-03-31 15:06:58 +0300
+Date: Tue Apr 5 15:13:29 2011 +0300
- Update INSTALL with another note about IRIX.
+ xz: Call lzma_end(&strm) before exiting if debugging is enabled.
- INSTALL | 4 ++++
- 1 file changed, 4 insertions(+)
+commit bd432015d33dcade611d297bc01eb0700088ef6c
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Apr 2 14:49:56 2011 +0300
-commit af9d48d5515eadef689b1ce9ffb91e4dbcbc7f35
+ liblzma: Fix a memory leak in stream_encoder.c.
+
+ It leaks old filter options structures (hundred bytes or so)
+ every time the lzma_stream is reinitialized. With the xz tool,
+ this happens when compressing multiple files.
+
+commit 16889013214e7620d204b6e6c1bf9f3103a13655
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-03-31 12:22:55 +0300
+Date: Fri Apr 1 08:47:20 2011 +0300
- Tests: Add a new file to test empty LZMA2 streams.
+ Updated NEWS for 5.0.2.
- tests/files/README | 4 ++++
- tests/files/good-1-lzma2-5.xz | Bin 0 -> 52 bytes
- 2 files changed, 4 insertions(+)
+commit 85cdf7dd4e97b078e7b929e47f55a7f1da36010f
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Mar 31 15:06:58 2011 +0300
-commit d099ef9f517b59ab8e3b6f6aa0543c3643983470
+ Update INSTALL with another note about IRIX.
+
+commit c3f4995586873d6a4fb7e451010a128571a9a370
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-03-31 11:54:48 +0300
+Date: Thu Mar 31 12:22:55 2011 +0300
+ Tests: Add a new file to test empty LZMA2 streams.
+
+commit 0d21f49a809dc2088da6cc0da7f948404df7ecfa
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Mar 31 11:54:48 2011 +0300
+
liblzma: Fix decoding of LZMA2 streams having no uncompressed data.
The decoder considered empty LZMA2 streams to be corrupt.
@@ -1819,12 +3053,9 @@
creates empty LZMA2 streams in .xz. This bug is more likely
to cause problems in applications that use raw LZMA2 streams.
- src/liblzma/lzma/lzma2_decoder.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-commit df87249b26e79a75fd91041e85512944fc247b57
+commit 40277998cb9bad564ce4827aff152e6e1c904dfa
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-03-24 01:42:49 +0200
+Date: Thu Mar 24 01:42:49 2011 +0200
Scripts: Better fix for xzgrep.
@@ -1832,21 +3063,15 @@
Thanks to Gregory Margo.
- src/scripts/xzgrep.in | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-commit 68c453e1c7b09dc9c7d2ef9d994c46f5b367f5d3
+commit 2118733045ad0ca183a3f181a0399baf876983a6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-03-24 01:22:18 +0200
+Date: Thu Mar 24 01:22:18 2011 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
-commit b441d39855516ae618faffd5156261b8b413394f
+commit c7210d9a3fca6f31a57208bfddfc9ab20a2e097a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-03-24 01:21:32 +0200
+Date: Thu Mar 24 01:21:32 2011 +0200
Scripts: Fix xzgrep -l.
@@ -1858,24 +3083,45 @@
Thanks to Gregory Margo.
- src/scripts/xzgrep.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+commit 4eb83e32046a6d670862bc91c3d82530963b455e
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sat Mar 19 13:08:22 2011 +0200
-commit 82d5164839517f55daeadd9ee88c76425db30224
+ Scripts: Add lzop (.lzo) support to xzdiff and xzgrep.
+
+commit 923b22483bd9356f3219b2b784d96f455f4dc499
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-02-04 22:49:31 +0200
+Date: Fri Mar 18 19:10:30 2011 +0200
+ xz: Add --block-size=SIZE.
+
+ This uses LZMA_FULL_FLUSH every SIZE bytes of input.
+
+ Man page wasn't updated yet.
+
+commit 57597d42ca1740ad506437be168d800a50f1a0ad
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Mar 18 18:19:19 2011 +0200
+
+ xz: Add --single-stream.
+
+ This can be useful when there is garbage after the
+ compressed stream (.xz, .lzma, or raw stream).
+
+ Man page wasn't updated yet.
+
+commit 96f94bc925d579a700147fa5d7793b64d69cfc18
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Fri Feb 4 22:49:31 2011 +0200
+
xz: Clean up suffix.c.
struct suffix_pair isn't needed in compresed_name()
so get rid of it there.
- src/xz/suffix.c | 44 ++++++++++++++++++++------------------------
- 1 file changed, 20 insertions(+), 24 deletions(-)
-
-commit 6decc8b41882c2250f0450eb87b83c9fbf495e95
+commit 8930c7ae3f82bdae15aa129f01de08be23d7e8d7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-02-04 11:29:47 +0200
+Date: Fri Feb 4 11:29:47 2011 +0200
xz: Check if the file already has custom suffix when compressing.
@@ -1883,61 +3129,42 @@
file because it already has the suffix .test. The man
page had it documented this way already.
- src/xz/suffix.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-commit ecda90061df8d39399e707e5c76c2ec0a0f400e5
+commit 940d5852c6cf08abccc6befd9d1b5411c9076a58
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-02-02 23:01:51 +0200
+Date: Wed Feb 2 23:01:51 2011 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
-commit 0fda1ae5b1aa0a5c629a09e5228db8ba1cd0dd5f
+commit 4ebe65f839613f27f127bab7b8c347d982330ee3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-02-02 23:00:33 +0200
+Date: Wed Feb 2 23:00:33 2011 +0200
Translations: Add Polish translation.
Thanks to Jakub Bogusz.
- po/LINGUAS | 1 +
- po/pl.po | 825 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 826 insertions(+)
-
-commit 00be32978fedc5038748438bf685ac1713d1db83
+commit fc1d292dca1925dfd17174f443f91a696ecd5bf8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-02-02 22:24:00 +0200
+Date: Wed Feb 2 22:24:00 2011 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
-commit 7232fcf96bf4bd5f9cd4fc6c93ca2912c665e004
+commit 6dd061adfd2775428b079eb03d6fd47d7c0f1ffe
+Merge: 9d542ce 5fbce0b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-01-28 20:26:38 +0200
+Date: Sun Feb 6 20:13:01 2011 +0200
- Bump package version and liblzma soname to 5.0.1.
+ Merge commit '5fbce0b8d96dc96775aa0215e3581addc830e23d'
- src/liblzma/Makefile.am | 2 +-
- src/liblzma/api/lzma/version.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit 5fbce0b8d96dc96775aa0215e3581addc830e23d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-01-28 20:16:57 +0200
+Date: Fri Jan 28 20:16:57 2011 +0200
Update NEWS for 5.0.1.
- NEWS | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
commit 03ebd1bbb314f9f204940219a835c883bf442475
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-01-26 12:19:08 +0200
+Date: Wed Jan 26 12:19:08 2011 +0200
xz: Fix --force on setuid/setgid/sticky and multi-hardlink files.
@@ -1947,61 +3174,55 @@
Thanks to Charles Wilson.
- src/xz/file_io.c | 15 +++++++--------
- 1 file changed, 7 insertions(+), 8 deletions(-)
+commit 9d542ceebcbe40b174169c132ccfcdc720ca7089
+Merge: 4f2c69a 7bd0a5e
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Wed Jan 19 11:45:35 2011 +0200
+ Merge branch 'v5.0'
+
commit 7bd0a5e7ccc354f7c2e95c8bc27569c820f6a136
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-01-18 21:25:24 +0200
+Date: Tue Jan 18 21:25:24 2011 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit f71c4e16e913f660977526f0ef8d2acdf458d7c9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2011-01-18 21:23:50 +0200
+Date: Tue Jan 18 21:23:50 2011 +0200
Add alloc_size and malloc attributes to a few functions.
Thanks to Cristian Rodríguez for the original patch.
- src/common/sysdefs.h | 6 ++++++
- src/liblzma/common/common.h | 2 +-
- src/xz/util.h | 5 +++--
- 3 files changed, 10 insertions(+), 3 deletions(-)
-
commit 316cbe24465143edde8f6ffb7532834b7b2ea93f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-12-13 16:36:33 +0200
+Date: Mon Dec 13 16:36:33 2010 +0200
Scripts: Fix gzip and bzip2 support in xzdiff.
- src/scripts/xzdiff.in | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
+commit 4f2c69a4e3e0aee2e37b0b1671d34086e20c8ac6
+Merge: adb89e6 9311774
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Sun Dec 12 23:13:22 2010 +0200
+ Merge branch 'v5.0'
+
commit 9311774c493c19deab51ded919dcd2e9c4aa2829
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-12-12 21:23:55 +0200
+Date: Sun Dec 12 21:23:55 2010 +0200
Build: Enable ASM on DJGPP by default.
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 4a42aaee282fc73b482581684d65110506d5efdd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-12-12 16:09:42 +0200
+Date: Sun Dec 12 16:09:42 2010 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit ce56f63c41ee210e6308090eb6d49221fdf67d6c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-12-12 16:07:11 +0200
+Date: Sun Dec 12 16:07:11 2010 +0200
Add missing PRIx32 and PRIx64 compatibility definitions.
@@ -2009,12 +3230,9 @@
Thanks to Juan Manuel Guerrero.
- src/common/sysdefs.h | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
commit e6baedddcf54e7da049ebc49183565b99facd4c7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-12-12 14:50:04 +0200
+Date: Sun Dec 12 14:50:04 2010 +0200
DOS-like: Treat \ and : as directory separators in addition to /.
@@ -2021,32 +3239,37 @@
Juan Manuel Guerrero had fixed this in his XZ Utils port
to DOS/DJGPP. The bug affects also Windows and OS/2.
- src/xz/suffix.c | 33 +++++++++++++++++++++++++++++----
- 1 file changed, 29 insertions(+), 4 deletions(-)
+commit adb89e68d43a4cadb0c215b45ef7a75737c9c3ec
+Merge: 7c24e0d b7afd3e
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Dec 7 18:53:04 2010 +0200
+ Merge branch 'v5.0'
+
commit b7afd3e22a8fac115b75c738d40d3eb1de7e286f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-12-07 18:52:04 +0200
+Date: Tue Dec 7 18:52:04 2010 +0200
Translations: Fix Czech translation of "sparse file".
Thanks to Petr Hubený and Marek Černocký.
- po/cs.po | 88 ++++++++++++++++++++++++++++++++--------------------------------
- 1 file changed, 44 insertions(+), 44 deletions(-)
+commit 7c24e0d1b8a2e86e9263b0d56d39621e01aed7af
+Merge: b4d42f1 3e56470
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Nov 15 14:33:01 2010 +0200
+ Merge branch 'v5.0'
+
commit 3e564704bc6f463cb2db11e3f3f0dbd71d85992e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-11-15 14:28:26 +0200
+Date: Mon Nov 15 14:28:26 2010 +0200
liblzma: Document the return value of lzma_lzma_preset().
- src/liblzma/api/lzma/lzma.h | 3 +++
- 1 file changed, 3 insertions(+)
-
commit 2964d8d691ed92abdcf214888d79ad6d79774735
Author: Jonathan Nieder <jrnieder at gmail.com>
-Date: 2010-11-12 15:22:13 -0600
+Date: Fri Nov 12 15:22:13 2010 -0600
Simplify paths in generated API docs
@@ -2056,10 +3279,10 @@
Builds from a separate build directory with
- mkdir build
- cd build
- ../configure
- doxygen Doxyfile
+ mkdir build
+ cd build
+ ../configure
+ doxygen Doxyfile
include an even longer prefix /home/someone/src/xz/src; this
patch has the nice side-effect of eliminating that prefix, too.
@@ -2066,12 +3289,30 @@
Fixes: http://bugs.debian.org/572273
- Doxyfile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+commit b4d42f1a7120e2cefeb2f14425efe2ca6db85416
+Author: Anders F Bjorklund <afb at users.sourceforge.net>
+Date: Fri Nov 5 12:56:11 2010 +0100
+ add build script for macosx universal
+
+commit 15ee6935abe4a2fc76639ee342ca2e69af3e0ad6
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Thu Nov 4 18:31:40 2010 +0200
+
+ Update the copies of GPLv2 and LGPLv2.1 from gnu.org.
+
+ There are only a few white space changes.
+
+commit 8e355f7fdbeee6fe394eb02a28f267ce99a882a2
+Merge: 974ebe6 37c2565
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Oct 26 15:53:06 2010 +0300
+
+ Merge branch 'v5.0'
+
commit 37c25658efd25b034266daf87cd381d20d1df776
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-26 15:48:48 +0300
+Date: Tue Oct 26 15:48:48 2010 +0300
Build: Copy the example programs to $docdir/examples.
@@ -2080,41 +3321,45 @@
Makefile.am. Thus, they didn't get included in the source
package at all by "make dist".
- Makefile.am | 5 +++++
- windows/build.bash | 3 ++-
- 2 files changed, 7 insertions(+), 1 deletion(-)
+commit 974ebe63497bdf0d262e06474f0dd5a70b1dd000
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Tue Oct 26 10:36:41 2010 +0300
+ liblzma: Rename a few variables and constants.
+
+ This has no semantic changes. I find the new names slightly
+ more logical and they match the names that are already used
+ in XZ Embedded.
+
+ The name fastpos wasn't changed (not worth the hassle).
+
+commit 7c427ec38d016c0070a42315d752857e33792fc4
+Author: Lasse Collin <lasse.collin at tukaani.org>
+Date: Mon Oct 25 12:59:25 2010 +0300
+
+ Bump version 5.1.0alpha.
+
commit e45929260cd902036efd40c5610a8d0a50d5712b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-23 17:25:52 +0300
+Date: Sat Oct 23 17:25:52 2010 +0300
Build: Fix mydist rule when .git doesn't exist.
- Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
commit 6e1326fcdf6b6209949be57cfe3ad4b781b65168
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-23 14:15:35 +0300
+Date: Sat Oct 23 14:15:35 2010 +0300
Add NEWS for 5.0.0.
- NEWS | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 62 insertions(+)
-
commit b667a3ef6338a2c1db7b7706b1f6c99ea392221c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-23 14:02:53 +0300
+Date: Sat Oct 23 14:02:53 2010 +0300
Bump version to 5.0.0 and liblzma version-info to 5:0:0.
- src/liblzma/Makefile.am | 2 +-
- src/liblzma/api/lzma/version.h | 8 ++++----
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
commit 8c947e9291691629714dafb4536c718b6cc24fbd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-23 12:30:54 +0300
+Date: Sat Oct 23 12:30:54 2010 +0300
liblzma: Make lzma_code() check the reserved members in lzma_stream.
@@ -2124,12 +3369,9 @@
a reserved member to some other value, so the old liblzma
version need to catch it as an unsupported feature.
- src/liblzma/common/common.c | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
commit e61d85e082743ebd2dd0ff28fc0a82482ede0538
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-23 12:26:33 +0300
+Date: Sat Oct 23 12:26:33 2010 +0300
Windows: Use MinGW's stdio functions.
@@ -2139,43 +3381,29 @@
good to use the better replacements provided by
MinGW(-w64) runtime.
- src/common/sysdefs.h | 5 +++++
- 1 file changed, 5 insertions(+)
-
commit 23e23f1dc029146714c9a98313ab3ea93d71a2fc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-23 12:21:32 +0300
+Date: Sat Oct 23 12:21:32 2010 +0300
liblzma: Use 512 as INDEX_GROUP_SIZE.
This lets compiler use shifting instead of 64-bit division.
- src/liblzma/common/index.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 613939fc82603b75b59eee840871a05bc8dd08e0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-23 12:20:11 +0300
+Date: Sat Oct 23 12:20:11 2010 +0300
liblzma: A few ABI tweaks to reserve space in structures.
- src/liblzma/api/lzma/base.h | 7 ++++++-
- src/liblzma/api/lzma/lzma.h | 4 ++--
- src/liblzma/api/lzma/stream_flags.h | 4 ----
- 3 files changed, 8 insertions(+), 7 deletions(-)
-
commit 68b83f252df3d27480a9f6f03445d16f6506fef1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-21 23:16:11 +0300
+Date: Thu Oct 21 23:16:11 2010 +0300
xz: Make sure that message_strm() can never return NULL.
- src/xz/message.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
commit d09c5753e33ff96ee57edb6d1e98e34041203695
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-21 23:06:31 +0300
+Date: Thu Oct 21 23:06:31 2010 +0300
liblzma: Update the comments in the API headers.
@@ -2182,34 +3410,15 @@
Adding support for LZMA_FINISH for Index encoding and
decoding needed tiny additions to the relevant .c files too.
- src/liblzma/api/lzma.h | 4 +--
- src/liblzma/api/lzma/base.h | 38 +++++++++++++--------------
- src/liblzma/api/lzma/bcj.h | 4 +--
- src/liblzma/api/lzma/block.h | 4 +--
- src/liblzma/api/lzma/container.h | 26 ++++++++++++-------
- src/liblzma/api/lzma/filter.h | 51 ++++++++++++++++++-------------------
- src/liblzma/api/lzma/hardware.h | 3 +--
- src/liblzma/api/lzma/index.h | 28 ++++++++++++--------
- src/liblzma/api/lzma/index_hash.h | 2 +-
- src/liblzma/api/lzma/lzma.h | 46 ++++++++++++++++++++++-----------
- src/liblzma/api/lzma/stream_flags.h | 4 +--
- src/liblzma/api/lzma/vli.h | 31 +++++++++++-----------
- src/liblzma/common/index_decoder.c | 1 +
- src/liblzma/common/index_encoder.c | 1 +
- 14 files changed, 136 insertions(+), 107 deletions(-)
-
commit 33c1c0e102eb529588503b8beea0903a45488fad
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-19 12:08:30 +0300
+Date: Tue Oct 19 12:08:30 2010 +0300
Update INSTALL.generic.
- INSTALL.generic | 99 ++++++++++++++++++++++++++++++++++++++++++++++-----------
- 1 file changed, 81 insertions(+), 18 deletions(-)
-
commit 0076e03641f201c4b77dddd5a6db5880be19a78c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-19 11:44:37 +0300
+Date: Tue Oct 19 11:44:37 2010 +0300
Clean up a few FIXMEs and TODOs.
@@ -2216,29 +3425,15 @@
lzma_chunk_size() was commented out because it is
currently useless.
- src/liblzma/common/filter_encoder.c | 2 ++
- src/liblzma/common/filter_encoder.h | 4 ++--
- src/liblzma/lzma/lzma2_decoder.c | 1 -
- src/liblzma/lzma/lzma_decoder.c | 4 ++--
- src/liblzma/lzma/lzma_encoder.c | 2 +-
- src/xz/message.h | 2 +-
- 6 files changed, 8 insertions(+), 7 deletions(-)
-
commit ce34ec4f54ff8b753da236f371ad8dd23c8135c9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-19 10:21:08 +0300
+Date: Tue Oct 19 10:21:08 2010 +0300
Update docs.
- INSTALL | 192 +++++++++++++++++++++++++++++++++++++++++--------------------
- PACKAGERS | 104 +++++++++------------------------
- TODO | 17 ++++--
- dos/README | 2 +-
- 4 files changed, 172 insertions(+), 143 deletions(-)
-
commit f0fa880d247e73264d2c04fe31fb3412318a0026
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-12 15:13:30 +0300
+Date: Tue Oct 12 15:13:30 2010 +0300
xz: Avoid raise() also on OpenVMS.
@@ -2245,12 +3440,9 @@
This is similar to DOS/DJGPP that killing the program
with a signal will print a backtrace or a similar message.
- src/xz/signals.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit ac462b1c47c451f5c62e428306314c4bdad8ae7f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-11 21:26:19 +0300
+Date: Mon Oct 11 21:26:19 2010 +0300
xz: Avoid SA_RESTART for portability reasons.
@@ -2258,23 +3450,15 @@
at least from OpenVMS, QNX, and DJGPP). Luckily we can do
fine without SA_RESTART.
- src/xz/message.c | 38 +++++++++++++++-----------------------
- src/xz/message.h | 4 ++++
- src/xz/signals.c | 6 ++++++
- 3 files changed, 25 insertions(+), 23 deletions(-)
-
commit d52b411716a614c202e89ba732492efb9916cd3f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-10 17:58:58 +0300
+Date: Sun Oct 10 17:58:58 2010 +0300
xz: Use "%"PRIu32 instead of "%d" in a format string.
- src/xz/message.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit ae74d1bdeb075c3beefe76e1136c5741804e7e91
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-10 17:43:26 +0300
+Date: Sun Oct 10 17:43:26 2010 +0300
test_files.sh: Fix the first line.
@@ -2283,39 +3467,27 @@
Thanks to Elbert Pol.
- tests/test_files.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit d492b80ddd6f9a13419de6d102df7374d8f448e8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-10 16:49:01 +0300
+Date: Sun Oct 10 16:49:01 2010 +0300
lzmainfo: Use "%"PRIu32 instead of "%u" for uint32_t.
- src/lzmainfo/lzmainfo.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 825e859a9054bd91202e5723c41a17e72f63040a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-10 16:47:01 +0300
+Date: Sun Oct 10 16:47:01 2010 +0300
lzmainfo: Use fileno(stdin) instead of STDIN_FILENO.
- src/lzmainfo/lzmainfo.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit acbc4cdecbeec2a4dfaac04f185ece49b2ff17c8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-09 23:20:51 +0300
+Date: Sat Oct 9 23:20:51 2010 +0300
lzmainfo: Use setmode() on DOS-like systems.
- src/lzmainfo/lzmainfo.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
commit ef364d3abc5647111c5424ea0d83a567e184a23b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-09 21:51:03 +0300
+Date: Sat Oct 9 21:51:03 2010 +0300
OS/2 and DOS: Be less verbose on signals.
@@ -2323,71 +3495,47 @@
is a bit verbose on OS/2 and DOS/DJGPP. Instead of
calling raise(), set only the exit status to 1.
- src/xz/signals.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
commit 5629c4be07b6c67e79842b2569da1cedc9c0d69a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-09 19:28:49 +0300
+Date: Sat Oct 9 19:28:49 2010 +0300
DOS: Update the Makefile, config.h and README.
This is now simpler and builds only xz.exe.
- dos/Makefile | 211 +++++++++++++++--------------------------------------------
- dos/README | 73 +++++++--------------
- dos/config.h | 45 ++++---------
- 3 files changed, 86 insertions(+), 243 deletions(-)
-
commit f25a77e6b9bc48a243ddfbbd755b7960eec7e0ac
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-09 18:57:55 +0300
+Date: Sat Oct 9 18:57:55 2010 +0300
Windows: Put some license info into README-Windows.txt.
- windows/README-Windows.txt | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
commit e75100f549f85d231df25c07aa94d63e78e2d668
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-09 18:57:04 +0300
+Date: Sat Oct 9 18:57:04 2010 +0300
Windows: Fix a diagnostics bug in build.bash.
- windows/build.bash | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit efeb998a2b1025df1c1d202cc7d21d866cd1c336
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-09 13:02:15 +0300
+Date: Sat Oct 9 13:02:15 2010 +0300
lzmainfo: Add Windows resource file.
- src/lzmainfo/Makefile.am | 9 +++++++++
- src/lzmainfo/lzmainfo_w32res.rc | 12 ++++++++++++
- 2 files changed, 21 insertions(+)
-
commit 389d418445f1623593dfdbba55d52fbb6d1205f5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-09 12:57:25 +0300
+Date: Sat Oct 9 12:57:25 2010 +0300
Add missing public domain notice to lzmadec_w32res.rc.
- src/xzdec/lzmadec_w32res.rc | 7 +++++++
- 1 file changed, 7 insertions(+)
-
commit 6389c773a4912dd9f111256d74ba1605230a7957
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-09 12:52:12 +0300
+Date: Sat Oct 9 12:52:12 2010 +0300
Windows: Update common_w32res.rc.
- src/common/common_w32res.rc | 9 +++------
- 1 file changed, 3 insertions(+), 6 deletions(-)
-
commit 71275457ca24c9b01721f5cfc3638cf094daf454
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-09 12:27:08 +0300
+Date: Sat Oct 9 12:27:08 2010 +0300
Windows: Make build.bash prefer MinGW-w32 over MinGW.
@@ -2401,12 +3549,9 @@
though MinGW's home page claims that it is public domain.
See <http://marc.info/?l=mingw-users&m=126489506214078>.
- windows/build.bash | 18 +++++++++---------
- 1 file changed, 9 insertions(+), 9 deletions(-)
-
commit 3ac35719d8433af937af6491383d4a50e343099b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-09 11:33:21 +0300
+Date: Sat Oct 9 11:33:21 2010 +0300
Windows: Copy COPYING-Windows.txt (if it exists) to the package.
@@ -2413,23 +3558,17 @@
Also, put README-Windows.txt to the doc directory like
the other documentation files.
- windows/build.bash | 14 ++++++++++++--
- 1 file changed, 12 insertions(+), 2 deletions(-)
-
commit 7b5db576fd7a4a67813b8437a9ccd4dbc94bbaae
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-08 21:42:37 +0300
+Date: Fri Oct 8 21:42:37 2010 +0300
Windows: Fix build.bash again.
630a8beda34af0ac153c8051b1bf01230558e422 wasn't good.
- windows/build.bash | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
commit d3cd7abe85ec7c2f46cf198b15c00d5d119df3dd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-08 16:53:20 +0300
+Date: Fri Oct 8 16:53:20 2010 +0300
Use LZMA_VERSION_STRING instead of PACKAGE_VERSION.
@@ -2441,53 +3580,33 @@
This change affects only lzmainfo. Other tools were already
using LZMA_VERSION_STRING.
- src/lzmainfo/lzmainfo.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 084c60d318f2dbaef4078d9b100b4a373d0c3a7f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-08 15:59:25 +0300
+Date: Fri Oct 8 15:59:25 2010 +0300
configure.ac: Remove two unused defines.
- configure.ac | 4 ----
- 1 file changed, 4 deletions(-)
-
commit 11f51b6714357cb67ec7e56ed9575c199b5581fe
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-08 15:32:29 +0300
+Date: Fri Oct 8 15:32:29 2010 +0300
Make tests accommodate missing xz or xzdec.
- tests/test_compress.sh | 47 ++++++++++++++++++++++++++++++-----------------
- tests/test_files.sh | 28 ++++++++++++++++++++++++++--
- 2 files changed, 56 insertions(+), 19 deletions(-)
-
commit b1c7368f95e93ccdefdd0748e04398c26766f47f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-08 15:25:45 +0300
+Date: Fri Oct 8 15:25:45 2010 +0300
Build: Add options to disable individual command line tools.
- configure.ac | 38 ++++++++++++++++++++++++++++++
- src/Makefile.am | 15 +++++++++++-
- src/scripts/Makefile.am | 62 +++++++++++++++++++++----------------------------
- src/xz/Makefile.am | 6 ++++-
- src/xzdec/Makefile.am | 12 ++++++++--
- 5 files changed, 93 insertions(+), 40 deletions(-)
-
commit 630a8beda34af0ac153c8051b1bf01230558e422
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-07 00:44:53 +0300
+Date: Thu Oct 7 00:44:53 2010 +0300
Windows: Make build.bash work without --enable-dynamic=no.
- windows/build.bash | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit f9907503f882a745dce9d84c2968f6c175ba966a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-05 14:13:16 +0300
+Date: Tue Oct 5 14:13:16 2010 +0300
Build: Remove the static/dynamic tricks.
@@ -2503,96 +3622,59 @@
needs to support some other toolchain on Windows in the future,
this may need some rethinking.
- configure.ac | 74 ------------------------------------------------
- debug/Makefile.am | 5 +---
- src/lzmainfo/Makefile.am | 4 +--
- src/xz/Makefile.am | 4 +--
- src/xzdec/Makefile.am | 4 +--
- tests/Makefile.am | 5 +---
- 6 files changed, 5 insertions(+), 91 deletions(-)
-
commit fda4724d8114fccfa31c1839c15479f350c2fb4c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-05 12:18:58 +0300
+Date: Tue Oct 5 12:18:58 2010 +0300
configure.ac: Silence a warning from Autoconf 2.68.
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 80b5675fa62c87426fe86f8fcd20feeabc4361b9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-04 19:43:01 +0300
+Date: Mon Oct 4 19:43:01 2010 +0300
A few more languages files to the xz man page.
Thanks to Jonathan Nieder.
- src/xz/xz.1 | 45 ++++++++++++++++++++++++---------------------
- 1 file changed, 24 insertions(+), 21 deletions(-)
-
commit f9722dbeca4dc4c43cfd15d122dafaac50b0a0bb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-02 12:07:33 +0300
+Date: Sat Oct 2 12:07:33 2010 +0300
Update the FAQ.
- doc/faq.txt | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
- 1 file changed, 100 insertions(+), 4 deletions(-)
-
commit 61ae593661e8dc402394e84d567ca2044a51572b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-10-02 11:38:20 +0300
+Date: Sat Oct 2 11:38:20 2010 +0300
liblzma: Small fixes to comments in the API headers.
- src/liblzma/api/lzma/lzma.h | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
commit 9166682dc601fd42c1b9510572e3f917d18de504
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-28 11:40:12 +0300
+Date: Tue Sep 28 11:40:12 2010 +0300
Create the PDF versions of the man pages better.
- Makefile.am | 14 +++++++------
- build-aux/manconv.sh | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 66 insertions(+), 6 deletions(-)
-
commit 17d3c61edd35de8fa884944fc70d1db86daa5dd8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-28 10:59:53 +0300
+Date: Tue Sep 28 10:59:53 2010 +0300
Move version.sh to build-aux.
- Makefile.am | 4 ++--
- build-aux/version.sh | 24 ++++++++++++++++++++++++
- configure.ac | 2 +-
- version.sh | 24 ------------------------
- windows/build.bash | 2 +-
- 5 files changed, 28 insertions(+), 28 deletions(-)
-
commit 84af9d8770451339a692e9b70f96cf56156a6069
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-28 10:53:02 +0300
+Date: Tue Sep 28 10:53:02 2010 +0300
Update .gitignore.
- .gitignore | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
commit 31575a449ac64c523da3bab8d0c0b522cdc7c780
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-28 01:17:14 +0300
+Date: Tue Sep 28 01:17:14 2010 +0300
Fix accomodate -> accommodate on the xz man page.
- src/xz/xz.1 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit cec0ddc8ec4ce81685a51998b978e22167e461f9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-27 23:29:34 +0300
+Date: Mon Sep 27 23:29:34 2010 +0300
Major man page updates.
@@ -2606,29 +3688,17 @@
Thanks to Jonathan Nieder for some language fixes.
- src/lzmainfo/lzmainfo.1 | 25 +-
- src/scripts/xzdiff.1 | 15 +-
- src/scripts/xzgrep.1 | 11 +-
- src/scripts/xzless.1 | 13 +-
- src/scripts/xzmore.1 | 9 +-
- src/xz/xz.1 | 1964 ++++++++++++++++++++++++++++++++---------------
- src/xzdec/xzdec.1 | 39 +-
- 7 files changed, 1435 insertions(+), 641 deletions(-)
-
commit 075257ab0416a0603be930082e31a5703e4ba345
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-26 18:10:31 +0300
+Date: Sun Sep 26 18:10:31 2010 +0300
Fix the preset -3e.
depth=0 was missing.
- src/liblzma/lzma/lzma_encoder_presets.c | 1 +
- 1 file changed, 1 insertion(+)
-
commit 2577da9ebdba13fbe99ae5ee8bde35f7ed60f6d1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-23 14:03:10 +0300
+Date: Thu Sep 23 14:03:10 2010 +0300
Add translations.bash and translation notes to README.
@@ -2635,95 +3705,63 @@
translations.bash prints some messages from xz, which
hopefully makes it a bit easier to test translations.
- README | 96 +++++++++++++++++++++++++++++++++++++++++++++--
- debug/translation.bash | 100 +++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 192 insertions(+), 4 deletions(-)
-
commit a3c5997c57e5b1a20aae6d1071b584b4f17d0b23
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-17 22:14:30 +0300
+Date: Fri Sep 17 22:14:30 2010 +0300
xz: Update the Czech translation.
Thanks to Marek Černocký.
- po/cs.po | 202 +++++++++++++++++++++++++++++++++++++++++----------------------
- 1 file changed, 131 insertions(+), 71 deletions(-)
-
commit a1766af582dc23fddd9da1eeb4b9d61e3eb4c2e6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-16 23:40:41 +0300
+Date: Thu Sep 16 23:40:41 2010 +0300
xz: Add Italian translation.
Thanks to Milo Casagrande and Lorenzo De Liso.
- THANKS | 2 +
- po/LINGUAS | 1 +
- po/it.po | 902 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 905 insertions(+)
-
commit 21088018554e2b0e02914205377ceb6e34a090bd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-15 00:34:13 +0300
+Date: Wed Sep 15 00:34:13 2010 +0300
xz: Edit a translators comment.
- src/xz/list.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit be16e28ece1b492b8f93382b7fa1cc4da23c6ff6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-14 22:47:14 +0300
+Date: Tue Sep 14 22:47:14 2010 +0300
xz: Add German translation.
Thanks to Andre Noll.
- THANKS | 1 +
- po/LINGUAS | 1 +
- po/de.po | 903 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 905 insertions(+)
-
commit e23ea74f3240e6b69683f9e69d1716e0f9e9092b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-10 14:30:25 +0300
+Date: Fri Sep 10 14:30:25 2010 +0300
Updated README.
- README | 2 --
- 1 file changed, 2 deletions(-)
-
commit 8dad2fd69336985adb9f774fa96dc9c0efcb5a71
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-10 14:30:07 +0300
+Date: Fri Sep 10 14:30:07 2010 +0300
Updated INSTALL.
- INSTALL | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
commit 0b5f07fe3728c27cce416ddc40f7e4803ae96ac2
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-10 14:26:20 +0300
+Date: Fri Sep 10 14:26:20 2010 +0300
Updated the git repository address in ChangeLog.
- ChangeLog | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit a8760203f93a69bc39fd14520a6e9e7b7d70be06
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-10 14:09:33 +0300
+Date: Fri Sep 10 14:09:33 2010 +0300
xz: Add a comment to translators about "literal context bits".
- src/xz/message.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
commit bb0b1004f83cdc4d309e1471c2ecaf9f95ce60c5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-10 10:30:33 +0300
+Date: Fri Sep 10 10:30:33 2010 +0300
xz: Multiple fixes.
@@ -2755,43 +3793,23 @@
Thanks to Marek Černocký for reporting the bug about
misaligned table columns in --list output.
- configure.ac | 1 +
- m4/tuklib_mbstr.m4 | 30 ++++++
- src/common/tuklib_mbstr.h | 66 +++++++++++++
- src/common/tuklib_mbstr_fw.c | 31 ++++++
- src/common/tuklib_mbstr_width.c | 64 +++++++++++++
- src/xz/Makefile.am | 4 +-
- src/xz/list.c | 205 +++++++++++++++++++++++++++-------------
- src/xz/message.c | 56 +++++++----
- src/xz/message.h | 10 +-
- src/xz/private.h | 1 +
- src/xz/util.c | 136 +++++++++-----------------
- src/xz/util.h | 7 --
- 12 files changed, 424 insertions(+), 187 deletions(-)
-
commit 639f8e2af33cf8a184d59ba56b6df7c098679d61
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-08 08:49:22 +0300
+Date: Wed Sep 8 08:49:22 2010 +0300
Update the Czech translation.
Thanks to Marek Černocký.
- po/cs.po | 655 +++++++++++++++++++++++++++++++++++++++++++--------------------
- 1 file changed, 454 insertions(+), 201 deletions(-)
-
commit 41bc9956ebfd7c86777d33676acf34c45e7ca7c7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-07 12:31:40 +0300
+Date: Tue Sep 7 12:31:40 2010 +0300
xz: Add a note to translators.
- src/xz/hardware.c | 2 ++
- 1 file changed, 2 insertions(+)
-
commit 77a7746616e555fc08028e883a56d06bf0088b81
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-07 10:42:13 +0300
+Date: Tue Sep 7 10:42:13 2010 +0300
Fix use of N_() and ngettext().
@@ -2800,81 +3818,55 @@
This also fixes a missing \n from a call to ngettext().
- src/common/tuklib_gettext.h | 4 ++--
- src/xz/list.c | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
commit e6ad39335842343e622ab51207d1d3cb9caad801
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-06 19:43:12 +0300
+Date: Mon Sep 6 19:43:12 2010 +0300
Add missing files to POTFILES.in.
- po/POTFILES.in | 3 +++
- 1 file changed, 3 insertions(+)
-
commit 58f55131820d2e08a1a6beb9ec0ee2378044eb30
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-06 10:16:24 +0300
+Date: Mon Sep 6 10:16:24 2010 +0300
xz: Improve a comment.
- src/xz/file_io.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
commit bcb1b898341f7073f51660d7052d7ed6c5461a66
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-05 21:34:29 +0300
+Date: Sun Sep 5 21:34:29 2010 +0300
xz: Update the comment about NetBSD in file_io.c.
Thanks to Joerg Sonnenberger.
- src/xz/file_io.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
commit da014d55972f5addbf6b4360d3d8ed2ef4282170
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-05 21:11:33 +0300
+Date: Sun Sep 5 21:11:33 2010 +0300
xz: Use an array instead of pointer for stdin_filename.
Thanks Joerg Sonnenberger.
- src/xz/args.c | 2 +-
- src/xz/args.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit 8c7d3d1a0781c296c6b6e2465becaffd2132f7ee
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-05 12:16:17 +0300
+Date: Sun Sep 5 12:16:17 2010 +0300
xz: Hopefully ease translating the messages in list.c.
- src/xz/list.c | 33 +++++++++++++++++++++++----------
- 1 file changed, 23 insertions(+), 10 deletions(-)
-
commit ef840950ad99cf2955c754875af0e01acf125079
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-04 23:14:44 +0300
+Date: Sat Sep 4 23:14:44 2010 +0300
xz: Fix grammar.
- src/xz/options.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
commit c46afd6edc04ea140db6c59e8486f5707c810c13
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-04 23:12:20 +0300
+Date: Sat Sep 4 23:12:20 2010 +0300
xz: Use lzma_lzma_preset() to initialize the options structure.
- src/xz/options.c | 14 ++------------
- 1 file changed, 2 insertions(+), 12 deletions(-)
-
commit 8fd3ac046d0b1416a2094fecc456d9e0f4d5d065
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-04 22:16:28 +0300
+Date: Sat Sep 4 22:16:28 2010 +0300
Don't set lc=4 with --extreme.
@@ -2882,21 +3874,15 @@
compression worse. On the other hand, some other
files may now benefit slightly less from --extreme.
- src/liblzma/lzma/lzma_encoder_presets.c | 1 -
- 1 file changed, 1 deletion(-)
-
commit 474bac0c33e94aeaca8ada17ab19972b1424bc2b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-04 22:10:32 +0300
+Date: Sat Sep 4 22:10:32 2010 +0300
xz: Minor improvements to --help and --long-help.
- src/xz/message.c | 24 ++++++++++++------------
- 1 file changed, 12 insertions(+), 12 deletions(-)
-
commit 373ee26f955617295c5c537b04a153a1969140d2
Author: Jonathan Nieder <jrnieder at gmail.com>
-Date: 2010-09-03 16:49:15 -0500
+Date: Fri Sep 3 16:49:15 2010 -0500
Adjust memory limits in test_compress.sh
@@ -2905,21 +3891,15 @@
Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
- tests/test_compress.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 2fce9312f36727ea82f3430cc5d3a7d243c5f087
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-03 15:54:40 +0300
+Date: Fri Sep 3 15:54:40 2010 +0300
xz: Make -vv show also decompressor memory usage.
- src/xz/coder.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
commit b4b1cbcb53624ab832f8b3189c74450dc7ea29b6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-03 15:13:12 +0300
+Date: Fri Sep 3 15:13:12 2010 +0300
Tweak the compression presets -0 .. -5.
@@ -2926,12 +3906,9 @@
"Extreme" mode might need some further tweaking still.
Docs were not updated yet.
- src/liblzma/lzma/lzma_encoder_presets.c | 29 +++++++++++++++++++----------
- 1 file changed, 19 insertions(+), 10 deletions(-)
-
commit 77fe5954cd3d10fb1837372684cbc133b56b6a87
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-03 12:28:41 +0300
+Date: Fri Sep 3 12:28:41 2010 +0300
liblzma: Adjust default depth calculation for HC3 and HC4.
@@ -2940,12 +3917,9 @@
even though it seems that I won't use automatic depth
calcuation with HC3 and HC4 in the presets.
- src/liblzma/lz/lz_encoder.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
commit fce69059cf901ce8075a78c7607d591f144a3b5a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-03 11:11:25 +0300
+Date: Fri Sep 3 11:11:25 2010 +0300
xz: Make --help two lines shorter.
@@ -2953,12 +3927,9 @@
options that take arguments, so "Mandatory arguments to..."
can be omitted.
- src/xz/message.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
commit a848e47ced6e5e2a564b5c454b2f5a19c2f40298
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-02 19:22:35 +0300
+Date: Thu Sep 2 19:22:35 2010 +0300
xz: Make setting a preset override a custom filter chain.
@@ -2965,21 +3936,15 @@
This is more logical behavior than ignoring preset level
options once a custom filter chain has been specified.
- src/xz/coder.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
commit b3ff7ba044eaeab3e424d7b51fe914daf681b1a3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-09-02 19:09:57 +0300
+Date: Thu Sep 2 19:09:57 2010 +0300
xz: Always warn if adjusting dictionary size due to memlimit.
- src/xz/coder.c | 28 +++++++++-------------------
- 1 file changed, 9 insertions(+), 19 deletions(-)
-
commit d5653ba8a1ea9c00de4fddc617aba3c51e18139d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-08-10 11:04:30 +0300
+Date: Tue Aug 10 11:04:30 2010 +0300
Fix test_compress.sh.
@@ -2987,12 +3952,9 @@
Thanks to Jonathan Nieder.
- tests/test_compress.sh | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
commit 792331bdee706aa852a78b171040ebf814c6f3ae
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-08-07 20:45:18 +0300
+Date: Sat Aug 7 20:45:18 2010 +0300
Disable the memory usage limiter by default.
@@ -3023,82 +3985,47 @@
xz's man page was updated to match the above changes. Various
unrelated fixes were also made to the man page.
- src/xz/args.c | 87 +++++++++-----
- src/xz/coder.c | 8 +-
- src/xz/hardware.c | 96 +++++++++------
- src/xz/hardware.h | 23 ++--
- src/xz/list.c | 2 +-
- src/xz/message.c | 39 ++-----
- src/xz/message.h | 4 -
- src/xz/xz.1 | 341 ++++++++++++++++++++++++++++++++++--------------------
- src/xzdec/xzdec.1 | 45 +------
- src/xzdec/xzdec.c | 176 +---------------------------
- 10 files changed, 373 insertions(+), 448 deletions(-)
-
commit 4a45dd4c39f75d25c7a37b6400cb24d4010ca801
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-08-06 20:22:16 +0300
+Date: Fri Aug 6 20:22:16 2010 +0300
Add missing const to a global constant in xz.
- src/xz/args.c | 2 +-
- src/xz/args.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit 01aa4869cb220b7fdad6d1acbabb2233045daa8f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-07-28 11:44:55 +0300
+Date: Wed Jul 28 11:44:55 2010 +0300
Language fixes for man pages.
Thanks to A. Costa and Jonathan Nieder.
- src/lzmainfo/lzmainfo.1 | 4 ++--
- src/xz/xz.1 | 6 +++---
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
commit ce1f0deafe8504e1492bf1b1efb3e3ec950b1a2b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-07-27 20:47:12 +0300
+Date: Tue Jul 27 20:47:12 2010 +0300
Windows: Add a note about building a Git repository snapshot
- windows/INSTALL-Windows.txt | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
commit 507a4a4dea1e5462f12f7ed4b076c34e02054a38
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-07-27 20:45:03 +0300
+Date: Tue Jul 27 20:45:03 2010 +0300
Windows: build.sh is a bash script so name it correctly.
- INSTALL | 2 +-
- windows/INSTALL-Windows.txt | 6 +-
- windows/build.bash | 189 ++++++++++++++++++++++++++++++++++++++++++++
- windows/build.sh | 189 --------------------------------------------
- 4 files changed, 193 insertions(+), 193 deletions(-)
-
commit b1cbfd40f049a646a639eb78a3e41e9e3ef73339
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-07-27 20:27:32 +0300
+Date: Tue Jul 27 20:27:32 2010 +0300
Windows: Don't strip liblzma.a too much.
- windows/build.sh | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
commit a540198ffb25fad36380c5e92ac20c2d28eec46a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-07-13 20:07:26 +0300
+Date: Tue Jul 13 20:07:26 2010 +0300
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit bab0f01ed931f606b4675aa9f9331a17cec09bad
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-07-13 19:55:50 +0300
+Date: Tue Jul 13 19:55:50 2010 +0300
Add two simple example programs.
@@ -3109,76 +4036,49 @@
The examples were written by Daniel Mealha Cabrita. Thanks.
- doc/examples/xz_pipe_comp.c | 127 ++++++++++++++++++++++++++++++++++++++++++
- doc/examples/xz_pipe_decomp.c | 115 ++++++++++++++++++++++++++++++++++++++
- 2 files changed, 242 insertions(+)
-
commit c15c42abb3c8c6e77c778ef06c97a4a10b8b5d00
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-15 14:06:29 +0300
+Date: Tue Jun 15 14:06:29 2010 +0300
Add --no-adjust.
- src/xz/args.c | 6 ++++++
- src/xz/coder.c | 8 ++------
- src/xz/coder.h | 4 ++++
- src/xz/message.c | 6 +++++-
- src/xz/xz.1 | 13 +++++++++++--
- 5 files changed, 28 insertions(+), 9 deletions(-)
-
commit 2130926dd1c839280358172dfadd8d3054bde2b4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-11 21:51:32 +0300
+Date: Fri Jun 11 21:51:32 2010 +0300
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit bc612d0e0c9e4504c59d49168e87a7ae3e458443
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-11 21:48:32 +0300
+Date: Fri Jun 11 21:48:32 2010 +0300
Clarify the description of the default memlimit in the man page.
Thanks to Denis Excoffier.
- src/xz/xz.1 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit e1b6935d60a00405e6b5b455a3426d2248cc926c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-11 21:43:28 +0300
+Date: Fri Jun 11 21:43:28 2010 +0300
Fix string to uint64_t conversion.
Thanks to Denis Excoffier for the bug report.
- src/xz/util.c | 10 ++++++++--
- src/xzdec/xzdec.c | 13 +++++++++++--
- 2 files changed, 19 insertions(+), 4 deletions(-)
-
commit 3e49c8acb0f5312948eddb2342dbb5802d4571d0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-11 10:40:28 +0300
+Date: Fri Jun 11 10:40:28 2010 +0300
Put the git commit to the filename in mydist rule.
- Makefile.am | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
commit d8b41eedce486d400f701b757b7b5e4e32276618
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-02 23:13:55 +0300
+Date: Wed Jun 2 23:13:55 2010 +0300
Fix compiling with -Werror.
- src/xz/message.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit b5fbab6123a39c9a55cd5d7af410e9aae067d5f8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-02 23:09:22 +0300
+Date: Wed Jun 2 23:09:22 2010 +0300
Silence a bogus Valgrind warning.
@@ -3190,23 +4090,15 @@
uninitialized variable. A few people find this annoying
so do things a bit differently to avoid the warning.
- src/liblzma/lz/lz_encoder.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
commit 29a7b250e685852f2f97615493ec49acaf528623
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-02 21:32:12 +0300
+Date: Wed Jun 2 21:32:12 2010 +0300
Fix a Windows-specific FIXME in signal handling code.
- src/xz/main.c | 40 +++++++++++++++++++++++++++++++++++-----
- src/xz/private.h | 5 +++++
- src/xz/signals.c | 16 ++++++++--------
- 3 files changed, 48 insertions(+), 13 deletions(-)
-
commit e89d987056cee7d4e279be3ef3a6cc690bfc0e6d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-02 17:46:58 +0300
+Date: Wed Jun 2 17:46:58 2010 +0300
Adjust SA_RESTART workaround.
@@ -3213,12 +4105,9 @@
I want to get a bug report if something else than
DJGPP lacks SA_RESTART.
- src/xz/message.c | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
commit e243145c84ab5c3be8259fd486ead0de5235b3f0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-01 16:02:30 +0300
+Date: Tue Jun 1 16:02:30 2010 +0300
xz man page updates.
@@ -3227,49 +4116,33 @@
- Robot mode
- A few examples (but many more are needed)
- src/xz/xz.1 | 385 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
- 1 file changed, 366 insertions(+), 19 deletions(-)
-
commit ce6dc3c0a891f23a862f80ec08d3b6f0beb2a562
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-01 15:51:44 +0300
+Date: Tue Jun 1 15:51:44 2010 +0300
Major update to xz --list.
- src/xz/list.c | 652 ++++++++++++++++++++++++++++++++++++++++++----------------
- 1 file changed, 471 insertions(+), 181 deletions(-)
-
commit 905e54804a899e4ad526d38fdba7e803ab9b71bd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-01 14:13:03 +0300
+Date: Tue Jun 1 14:13:03 2010 +0300
Rename message_filters_get() to message_filters_to_str().
- src/xz/message.c | 4 ++--
- src/xz/message.h | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
commit 4b346ae8af20045027ae5efb068c6d69da3324d2
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-06-01 14:09:12 +0300
+Date: Tue Jun 1 14:09:12 2010 +0300
Fix a comment.
- src/liblzma/api/lzma/index.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 07dc34f6da45c9ab757dad7fd5eef522ad27d296
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-27 16:17:42 +0300
+Date: Thu May 27 16:17:42 2010 +0300
Fix lzma_block_compressed_size().
- src/liblzma/common/block_util.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
commit 44d70cb154225e47eebf15a3cfbdf3794cbb4593
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-27 14:32:51 +0300
+Date: Thu May 27 14:32:51 2010 +0300
Take Cygwin into account in some #if lines.
@@ -3276,36 +4149,25 @@
This change is no-op, but good to have just in case
for the future.
- src/xz/signals.c | 2 +-
- src/xz/signals.h | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
commit a334348dc02803241cf4e0a539eecdc0e7ad2cc7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-27 13:42:44 +0300
+Date: Thu May 27 13:42:44 2010 +0300
Remove references to the Subblock filter in xz and tests.
Thanks to Jonathan Nieder.
- src/xz/message.c | 9 ---------
- tests/test_filter_flags.c | 23 -----------------------
- 2 files changed, 32 deletions(-)
-
commit 70e5e2f6a7084e6af909deee88ceac2f6efa7893
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-27 13:35:36 +0300
+Date: Thu May 27 13:35:36 2010 +0300
Remove unused chunk_size.c.
Thanks to Jonathan Nieder for the reminder.
- src/liblzma/common/chunk_size.c | 67 -----------------------------------------
- 1 file changed, 67 deletions(-)
-
commit 01a414eaf4be6352c06b48001b041b47e8202faa
Author: Jonathan Nieder <jrnieder at gmail.com>
-Date: 2010-05-27 02:31:33 -0500
+Date: Thu May 27 02:31:33 2010 -0500
Use my_min() instead of MIN() in src/xz/list.c
@@ -3312,65 +4174,35 @@
This should have been done in
920a69a8d8e4203c5edddd829d932130eac188ea.
- src/xz/list.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 920a69a8d8e4203c5edddd829d932130eac188ea
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-26 10:36:46 +0300
+Date: Wed May 26 10:36:46 2010 +0300
Rename MIN() and MAX() to my_min() and my_max().
This should avoid some minor portability issues.
- debug/full_flush.c | 2 +-
- debug/sync_flush.c | 2 +-
- src/common/sysdefs.h | 12 +++++-------
- src/liblzma/common/block_buffer_encoder.c | 2 +-
- src/liblzma/common/common.c | 2 +-
- src/liblzma/common/stream_buffer_encoder.c | 2 +-
- src/liblzma/delta/delta_encoder.c | 2 +-
- src/liblzma/lz/lz_decoder.c | 7 ++++---
- src/liblzma/lz/lz_decoder.h | 2 +-
- src/liblzma/lz/lz_encoder.c | 2 +-
- src/liblzma/lz/lz_encoder.h | 2 +-
- src/liblzma/lz/lz_encoder_mf.c | 4 ++--
- src/liblzma/lzma/lzma2_encoder.c | 2 +-
- src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 +-
- src/liblzma/lzma/lzma_encoder_optimum_normal.c | 14 +++++++-------
- src/xz/args.c | 3 ++-
- 16 files changed, 31 insertions(+), 31 deletions(-)
-
commit 019ae27c24d0c694545a6a46f8b9fb552198b015
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-26 10:30:20 +0300
+Date: Wed May 26 10:30:20 2010 +0300
Fix compilation of debug/known_sizes.c.
- debug/known_sizes.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 98a4856a6ea84f79c790057a6eb89a25bc45b074
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-26 10:28:54 +0300
+Date: Wed May 26 10:28:54 2010 +0300
Remove references to Subblock filter in debug/sync_flush.c.
- debug/sync_flush.c | 13 -------------
- 1 file changed, 13 deletions(-)
-
commit 703d2c33c095c41ae0693ee8c27c45e3847e4535
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-26 10:16:57 +0300
+Date: Wed May 26 10:16:57 2010 +0300
Better #error message.
- src/common/sysdefs.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit d8a55c48b39703dd83f11089ad01e1ff2ac102e0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-26 09:55:47 +0300
+Date: Wed May 26 09:55:47 2010 +0300
Remove the Subblock filter code for now.
@@ -3378,30 +4210,9 @@
It won't be included in XZ Utils 5.0.0. It's easy to get it
back once the spec is done.
- configure.ac | 6 +-
- src/liblzma/Makefile.am | 5 -
- src/liblzma/api/Makefile.am | 1 -
- src/liblzma/api/lzma.h | 1 -
- src/liblzma/api/lzma/subblock.h | 200 -----
- src/liblzma/common/common.h | 6 -
- src/liblzma/common/filter_common.c | 9 -
- src/liblzma/common/filter_decoder.c | 16 -
- src/liblzma/common/filter_encoder.c | 12 -
- src/liblzma/subblock/Makefile.inc | 20 -
- src/liblzma/subblock/subblock_decoder.c | 630 ----------------
- src/liblzma/subblock/subblock_decoder.h | 22 -
- src/liblzma/subblock/subblock_decoder_helper.c | 70 --
- src/liblzma/subblock/subblock_decoder_helper.h | 29 -
- src/liblzma/subblock/subblock_encoder.c | 984 -------------------------
- src/liblzma/subblock/subblock_encoder.h | 21 -
- src/xz/args.c | 9 +-
- src/xz/options.c | 61 --
- src/xz/options.h | 7 -
- 19 files changed, 4 insertions(+), 2105 deletions(-)
-
commit b6377fc990f9b8651149cae0fecb8b9c5904e26d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-16 18:42:22 +0300
+Date: Sun May 16 18:42:22 2010 +0300
Split message_filters().
@@ -3412,14 +4223,9 @@
uint32_to_optstr() was also added to show the dictionary
size in nicer format when possible.
- src/xz/coder.c | 2 +-
- src/xz/message.c | 187 +++++++++++++++++++++++++++++++++++--------------------
- src/xz/message.h | 14 ++++-
- 3 files changed, 134 insertions(+), 69 deletions(-)
-
commit d9986db782d6cf0f314342127280519339378fa0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-14 23:17:20 +0300
+Date: Fri May 14 23:17:20 2010 +0300
Omit lzma_restrict from the API headers.
@@ -3426,32 +4232,21 @@
It isn't really useful so omitting it makes things
shorter and slightly more readable.
- src/liblzma/api/lzma.h | 12 ------------
- src/liblzma/api/lzma/index.h | 5 ++---
- src/liblzma/api/lzma/vli.h | 11 +++++------
- 3 files changed, 7 insertions(+), 21 deletions(-)
-
commit 0d3489efca0a723dca0394809fa3e6170843af4b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-10 19:57:24 +0300
+Date: Mon May 10 19:57:24 2010 +0300
Updated INSTALL.
- INSTALL | 5 -----
- 1 file changed, 5 deletions(-)
-
commit 3fb3d594a2b53886adee161b6261e92277f05f7c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-10 19:54:52 +0300
+Date: Mon May 10 19:54:52 2010 +0300
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 6548e304657e77d3a972053db3c41c5daf591113
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-05-10 19:54:15 +0300
+Date: Mon May 10 19:54:15 2010 +0300
Updates to tuklib_physmem and tuklib_cpucores.
@@ -3469,15 +4264,9 @@
Thanks a lot to Peter O'Gorman for initial patches,
testing, and debugging these fixes.
- m4/tuklib_cpucores.m4 | 33 ++++++++++++++++----
- m4/tuklib_physmem.m4 | 72 ++++++++++++++++++++++++++++++++++++++++++--
- src/common/tuklib_cpucores.c | 14 +++++++--
- src/common/tuklib_physmem.c | 33 +++++++++++++++++++-
- 4 files changed, 141 insertions(+), 11 deletions(-)
-
commit a290cfee3e23f046889c022aa96b4eca2016fdda
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-04-12 21:55:56 +0300
+Date: Mon Apr 12 21:55:56 2010 +0300
Show both elapsed time and estimated remaining time in xz -v.
@@ -3490,45 +4279,31 @@
Thanks to Trent W. Buck for <http://bugs.debian.org/574583>
and Jonathan Nieder for suggestions how to fix it.
- THANKS | 1 +
- src/xz/message.c | 86 +++++++++++++++++++++++++-------------------------------
- 2 files changed, 39 insertions(+), 48 deletions(-)
-
commit a1f7a986b8d708f9290da9799ca1b8d7082fad3e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-03-31 16:47:25 +0300
+Date: Wed Mar 31 16:47:25 2010 +0300
Add a simple tip to faq.txt about tar and xz.
Thanks to Gilles Espinasse.
- THANKS | 1 +
- doc/faq.txt | 6 ++++++
- 2 files changed, 7 insertions(+)
-
commit c737eec91d200d730aa82662affd6b06ebb0bff0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-03-22 21:03:03 +0200
+Date: Mon Mar 22 21:03:03 2010 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit f4b2b52624b802c786e4e2a8eb6895794dd93b24
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-03-07 19:52:25 +0200
+Date: Sun Mar 7 19:52:25 2010 +0200
Fix xzgrep to not break if filenames have spaces or quotes.
Thanks to someone who reported the bug on IRC.
- src/scripts/xzgrep.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit cf38da00a140bd3bd65b192390ae5553380fd774
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-03-07 13:59:32 +0200
+Date: Sun Mar 7 13:59:32 2010 +0200
Treat all integer multiplier suffixes as base-2.
@@ -3539,14 +4314,9 @@
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.
- src/xz/util.c | 53 +++++++++++++++++++++++------------------------------
- src/xz/xz.1 | 48 ++++++++++++++++++++++++++++--------------------
- src/xzdec/xzdec.c | 42 ++++++++++++++++--------------------------
- 3 files changed, 67 insertions(+), 76 deletions(-)
-
commit 00fc1211ae7b687ac912098f4479112059deccbd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-03-07 13:50:23 +0200
+Date: Sun Mar 7 13:50:23 2010 +0200
Consistently round up the memory usage limit in messages.
@@ -3554,13 +4324,9 @@
at least it is now done consistently so that the same
byte value is always rounded the same way to MiB.
- src/xz/message.c | 5 +++--
- src/xzdec/xzdec.c | 7 +++++--
- 2 files changed, 8 insertions(+), 4 deletions(-)
-
commit 9886d436ff5615fc70eef32ff757b1e934069621
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-03-07 13:34:34 +0200
+Date: Sun Mar 7 13:34:34 2010 +0200
Change the default of --enable-assume-ram from 32 to 128 MiB.
@@ -3567,13 +4333,9 @@
This is to allow files created with "xz -9" to be decompressed
if the amount of RAM cannot be determined.
- INSTALL | 5 ++---
- configure.ac | 11 ++++++-----
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
commit 2672bcc9f85ba28ff648e092e9eb4cd9e69ce418
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-03-07 13:29:28 +0200
+Date: Sun Mar 7 13:29:28 2010 +0200
Increase the default memory usage limit on "low-memory" systems.
@@ -3603,24 +4365,15 @@
very slowly and thus it's good that user has to override the limit
in that case.
- src/xz/hardware.c | 43 +++++++++++++++++++++++++++++++------------
- src/xz/xz.1 | 21 +++++++++++++++------
- src/xzdec/xzdec.1 | 8 ++++----
- src/xzdec/xzdec.c | 42 ++++++++++++++++++++++++++++++------------
- 4 files changed, 80 insertions(+), 34 deletions(-)
-
commit 5527b7269a997e7f335d60f237a64bbf225d9dc7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-03-06 21:36:19 +0200
+Date: Sat Mar 6 21:36:19 2010 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit d0d1c51aea4351288a7e533cce28cb7f852f6b05
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-03-06 21:17:20 +0200
+Date: Sat Mar 6 21:17:20 2010 +0200
Fix missing initialization in lzma_strm_init().
@@ -3636,79 +4389,23 @@
This fixes <http://bugs.gentoo.org/show_bug.cgi?id=305591>.
Thanks to Rafał Mużyło for helping to debug it on IRC.
- src/liblzma/common/common.c | 1 +
- 1 file changed, 1 insertion(+)
-
commit eb7d51a3faf9298c0c7aa9aaeae1023dcf9e37ea
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-02-12 13:16:15 +0200
+Date: Fri Feb 12 13:16:15 2010 +0200
Collection of language fixes to comments and docs.
Thanks to Jonathan Nieder.
- README | 2 +-
- configure.ac | 2 +-
- doc/faq.txt | 2 +-
- extra/7z2lzma/7z2lzma.bash | 2 +-
- src/common/tuklib_progname.c | 2 +-
- src/common/tuklib_progname.h | 2 +-
- src/liblzma/api/lzma/base.h | 8 ++++----
- src/liblzma/api/lzma/bcj.h | 2 +-
- src/liblzma/api/lzma/block.h | 2 +-
- src/liblzma/api/lzma/check.h | 2 +-
- src/liblzma/api/lzma/filter.h | 4 ++--
- src/liblzma/api/lzma/index.h | 6 +++---
- src/liblzma/api/lzma/lzma.h | 2 +-
- src/liblzma/api/lzma/version.h | 2 +-
- src/liblzma/api/lzma/vli.h | 2 +-
- src/liblzma/common/block_header_encoder.c | 2 +-
- src/liblzma/common/chunk_size.c | 4 ++--
- src/liblzma/common/common.h | 4 ++--
- src/liblzma/common/filter_buffer_decoder.c | 2 +-
- src/liblzma/common/filter_encoder.c | 4 ++--
- src/liblzma/common/index.c | 6 +++---
- src/liblzma/common/index_encoder.c | 2 +-
- src/liblzma/common/stream_encoder.c | 2 +-
- src/liblzma/common/vli_decoder.c | 2 +-
- src/liblzma/lz/lz_encoder.c | 2 +-
- src/liblzma/lz/lz_encoder.h | 2 +-
- src/liblzma/lzma/lzma2_encoder.c | 2 +-
- src/liblzma/lzma/lzma_decoder.c | 4 ++--
- src/liblzma/lzma/lzma_decoder.h | 2 +-
- src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 +-
- src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 +-
- src/liblzma/lzma/lzma_encoder_private.h | 2 +-
- src/liblzma/simple/simple_coder.c | 2 +-
- src/liblzma/subblock/subblock_encoder.c | 2 +-
- src/scripts/xzdiff.1 | 2 +-
- src/scripts/xzless.1 | 10 +++++-----
- src/xz/coder.c | 2 +-
- src/xz/file_io.c | 2 +-
- src/xz/main.c | 6 +++---
- src/xz/main.h | 2 +-
- src/xz/message.c | 10 +++++-----
- src/xz/message.h | 2 +-
- src/xz/xz.1 | 16 ++++++++--------
- src/xzdec/lzmadec_w32res.rc | 2 +-
- src/xzdec/xzdec_w32res.rc | 2 +-
- tests/test_index.c | 2 +-
- windows/build.sh | 4 ++--
- 47 files changed, 77 insertions(+), 77 deletions(-)
-
commit 4785f2021aa6a23f1caf724fcc823e562584f225
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-02-12 12:41:20 +0200
+Date: Fri Feb 12 12:41:20 2010 +0200
Fix jl -> jb in ASM files.
- src/liblzma/check/crc32_x86.S | 2 +-
- src/liblzma/check/crc64_x86.S | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
commit 6b50c9429bf85521d355adc61745d06ee017f8c8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-02-12 12:31:22 +0200
+Date: Fri Feb 12 12:31:22 2010 +0200
Use __APPLE__ instead of __MACH__ in ASM files.
@@ -3716,13 +4413,9 @@
Thanks to Jonathan Nieder.
- src/liblzma/check/crc32_x86.S | 8 ++++----
- src/liblzma/check/crc64_x86.S | 8 ++++----
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
commit 6503fde658a5cdbdd907a788865470dd64771601
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-02-07 19:48:06 +0200
+Date: Sun Feb 7 19:48:06 2010 +0200
Subtle change to liblzma Block handling API.
@@ -3739,52 +4432,35 @@
break in the future if a new version of the Block options
is ever needed.
- src/liblzma/api/lzma/block.h | 39 ++++++++++++++++---------------------
- src/liblzma/common/stream_decoder.c | 3 +++
- 2 files changed, 20 insertions(+), 22 deletions(-)
-
commit dd7c3841ff78cb94ce02b0220c6e4748460970f7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-02-02 11:50:11 +0200
+Date: Tue Feb 2 11:50:11 2010 +0200
Fix wrong assertion.
This was added in 455e68c030fde8a8c2f5e254c3b3ab9489bf3735.
- src/xz/main.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
commit 9d67588c1597849504a3e5ac8bf6f06e7d2ee8be
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-02-01 22:48:42 +0200
+Date: Mon Feb 1 22:48:42 2010 +0200
Updated TODO.
- TODO | 4 ----
- 1 file changed, 4 deletions(-)
-
commit fef6333f52c8801308c3b78acb7942988541d137
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-02-01 22:47:54 +0200
+Date: Mon Feb 1 22:47:54 2010 +0200
Fix typos in comments.
- src/xz/list.c | 2 +-
- windows/build.sh | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit 455e68c030fde8a8c2f5e254c3b3ab9489bf3735
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-02-01 22:46:56 +0200
+Date: Mon Feb 1 22:46:56 2010 +0200
Fix signal handling for --list.
- src/xz/main.c | 19 ++++++++++++++-----
- 1 file changed, 14 insertions(+), 5 deletions(-)
-
commit 82220a149015616f75641ee8bbea415137535b9b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-02-01 11:44:45 +0200
+Date: Mon Feb 1 11:44:45 2010 +0200
Fix compression of symlinks with --force.
@@ -3792,57 +4468,39 @@
them after successful compression. Instead, an error
message was displayed.
- src/xz/file_io.c | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
commit d4da177d5ba3d2ef7323a6f1e06ca16e0478810e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-02-01 10:20:57 +0200
+Date: Mon Feb 1 10:20:57 2010 +0200
Fix a comment.
- windows/build.sh | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
commit f9dd797a423a148903cf345b4146cb1fe1eab11d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-31 23:43:54 +0200
+Date: Sun Jan 31 23:43:54 2010 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit ee5ddb8b28419fe4923ded5c18a50570a762dcab
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-31 23:41:29 +0200
+Date: Sun Jan 31 23:41:29 2010 +0200
Updated TODO.
- TODO | 17 +++++++++++------
- 1 file changed, 11 insertions(+), 6 deletions(-)
-
commit 11936ad3f5a2e97bda3463c7a56a2f4bb9265ea6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-31 23:35:04 +0200
+Date: Sun Jan 31 23:35:04 2010 +0200
Mention TODO in README.
- README | 1 +
- 1 file changed, 1 insertion(+)
-
commit 2901a8e7e82af05675b8cd8758a8ceddb111359f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-31 23:31:14 +0200
+Date: Sun Jan 31 23:31:14 2010 +0200
Updated INSTALL.
- INSTALL | 52 ++++++++++++++++++++++++++--------------------------
- 1 file changed, 26 insertions(+), 26 deletions(-)
-
commit 8884e16864ba53fb4b58623d7537d7ef30c28e11
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-31 23:28:51 +0200
+Date: Sun Jan 31 23:28:51 2010 +0200
Revise the Windows build files.
@@ -3865,17 +4523,9 @@
"autoreconf -fi && ./configure && make mydist" on a UN*X
box and then copy the resulting .tar.gz to a Windows.
- windows/INSTALL-Windows.txt | 131 ++++++++++++++++++
- windows/Makefile | 320 --------------------------------------------
- windows/README | 155 ---------------------
- windows/README-Windows.txt | 115 ++++++++++++++++
- windows/build.sh | 189 ++++++++++++++++++++++++++
- windows/config.h | 170 -----------------------
- 6 files changed, 435 insertions(+), 645 deletions(-)
-
commit 34eb5e201d62f7f46bbe6fe97cfe08cb31b3b88c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-31 19:52:38 +0200
+Date: Sun Jan 31 19:52:38 2010 +0200
Select the default integrity check type at runtime.
@@ -3882,24 +4532,15 @@
Previously it was set statically to CRC64 or CRC32
depending on options passed to the configure script.
- src/xz/coder.c | 19 ++++++++++++++-----
- 1 file changed, 14 insertions(+), 5 deletions(-)
-
commit 96a4f840e3b9ca5c81e5711ff9c267b194f93ef1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-31 18:17:50 +0200
+Date: Sun Jan 31 18:17:50 2010 +0200
Improve displaying of the memory usage limit.
- src/xz/coder.c | 8 +++-----
- src/xz/message.c | 37 +++++++++++++++++++++++++++++--------
- src/xz/util.c | 7 +++++++
- src/xz/util.h | 6 ++++++
- 4 files changed, 45 insertions(+), 13 deletions(-)
-
commit b3cc4d8edd68a0250cc69680c99b9f7343f99cf2
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-31 12:53:56 +0200
+Date: Sun Jan 31 12:53:56 2010 +0200
Don't use uninitialized sigset_t.
@@ -3907,12 +4548,9 @@
useless to try to block them, especially since the sigset_t
used for blocking hasn't been initialized yet.
- src/xz/signals.c | 34 ++++++++++++++++++++++++----------
- 1 file changed, 24 insertions(+), 10 deletions(-)
-
commit 231c3c7098f1099a56abb8afece76fc9b8699f05
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-31 12:01:54 +0200
+Date: Sun Jan 31 12:01:54 2010 +0200
Delay opening the destionation file and other fixes.
@@ -3932,17 +4570,9 @@
A useless check for user_abort was removed from file_io.c.
- src/xz/coder.c | 64 ++++++++++++++++++++++-----------
- src/xz/file_io.c | 107 +++++++++++++++++++++++++++----------------------------
- src/xz/file_io.h | 8 +++--
- src/xz/list.c | 28 +++++----------
- src/xz/message.c | 46 +++++++++++++-----------
- src/xz/message.h | 29 ++++++++++-----
- 6 files changed, 157 insertions(+), 125 deletions(-)
-
commit 0dbd0641db99d5e73d51d04ce7a71e52dc6b4105
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-29 22:48:04 +0200
+Date: Fri Jan 29 22:48:04 2010 +0200
Add list.h to src/xz/Makefile.am.
@@ -3949,55 +4579,35 @@
This should have been already in
0bc9eab243dee3be764b3530433a7fcdc3f7c6a1.
- src/xz/Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
commit b4b1a56e0cbd597157858264f5c7189201ac9018
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-29 13:24:27 +0200
+Date: Fri Jan 29 13:24:27 2010 +0200
Add lzmainfo.1 to manfiles list to convert to .txt and .pdf.
- Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
commit 5574d64e03ad3a3d6e00e4b0d3e81c7b5529ec95
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-27 16:42:11 +0200
+Date: Wed Jan 27 16:42:11 2010 +0200
Silence two compiler warnings on DOS-like systems.
- src/common/tuklib_open_stdxxx.c | 6 +++++-
- src/xz/file_io.c | 3 +++
- 2 files changed, 8 insertions(+), 1 deletion(-)
-
commit b063cc34a30a4edf109343ff373b2b62b8ca72d3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-27 13:31:03 +0200
+Date: Wed Jan 27 13:31:03 2010 +0200
Use PACKAGE_URL instead of custom PACKAGE_HOMEPAGE.
- configure.ac | 9 ++-------
- src/liblzma/liblzma.pc.in | 2 +-
- src/lzmainfo/lzmainfo.c | 2 +-
- src/xz/message.c | 2 +-
- src/xzdec/xzdec.c | 2 +-
- 5 files changed, 6 insertions(+), 11 deletions(-)
-
commit 38b8035b5cb5f56457c5fa5a891d6900fcf5984f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-26 23:37:46 +0200
+Date: Tue Jan 26 23:37:46 2010 +0200
Add a missing space to an error message.
Thanks to Robert Readman.
- src/xz/args.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit e5496f9628ff5979392a80421d0b63a4de8015b4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-26 22:53:37 +0200
+Date: Tue Jan 26 22:53:37 2010 +0200
Use past tense in error message in io_unlink().
@@ -4005,13 +4615,9 @@
Thanks to Robert Readman.
- THANKS | 1 +
- src/xz/file_io.c | 14 ++++++++++++--
- 2 files changed, 13 insertions(+), 2 deletions(-)
-
commit d9a9800597ea540090e434132c3b511217df0a2b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-26 15:42:24 +0200
+Date: Tue Jan 26 15:42:24 2010 +0200
Fix too small static buffer in util.c.
@@ -4018,21 +4624,15 @@
This was introduced in
0dd6d007669b946543ca939a44243833c79e08f4 two days ago.
- src/xz/util.c | 9 ++++-----
- 1 file changed, 4 insertions(+), 5 deletions(-)
-
commit d0b4bbf5da068503c099cd456e294d7673548cc0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-26 14:46:43 +0200
+Date: Tue Jan 26 14:46:43 2010 +0200
Minor comment fix.
- src/xz/main.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit 0bc9eab243dee3be764b3530433a7fcdc3f7c6a1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-24 23:50:54 +0200
+Date: Sun Jan 24 23:50:54 2010 +0200
Add initial version of xz --list.
@@ -4045,28 +4645,17 @@
The man page hasn't been updated yet.
- src/xz/Makefile.am | 1 +
- src/xz/list.c | 988 ++++++++++++++++++++++++++++++++++-------------------
- src/xz/list.h | 18 +
- src/xz/main.c | 19 +-
- src/xz/private.h | 1 +
- 5 files changed, 668 insertions(+), 359 deletions(-)
-
commit df254ce03be016e217b511e7acd5d493f9929ca5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-24 22:46:11 +0200
+Date: Sun Jan 24 22:46:11 2010 +0200
Add io_pread().
It will be used by --list.
- src/xz/file_io.c | 25 +++++++++++++++++++++++++
- src/xz/file_io.h | 17 +++++++++++++++++
- 2 files changed, 42 insertions(+)
-
commit ef68dd4a92976276304de2aedfbe34ae91a86abb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-24 22:45:14 +0200
+Date: Sun Jan 24 22:45:14 2010 +0200
Set LC_NUMERIC=C when --robot is used.
@@ -4073,36 +4662,23 @@
It is to ensure that floating point numbers
will always have a dot as the decimal separator.
- src/xz/args.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
commit 0dd6d007669b946543ca939a44243833c79e08f4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-24 16:57:40 +0200
+Date: Sun Jan 24 16:57:40 2010 +0200
Some improvements to printing sizes in xz.
- src/xz/coder.c | 56 +++++++++++++++------------------------
- src/xz/message.c | 80 ++++++++++++++++++--------------------------------------
- src/xz/message.h | 4 +++
- src/xz/util.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++
- src/xz/util.h | 44 +++++++++++++++++++++++++++++++
- 5 files changed, 166 insertions(+), 90 deletions(-)
-
commit 2a98fdffd68c66371279c211c29153c808ad5c1d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-20 22:02:35 +0200
+Date: Wed Jan 20 22:02:35 2010 +0200
Fix a typo in README.
Thanks to R. Bijker.
- README | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 07a11dad44e041b01dcfc73e8d4e00731158c06d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-17 11:59:54 +0200
+Date: Sun Jan 17 11:59:54 2010 +0200
Updated windows/Makefile.
@@ -4113,22 +4689,15 @@
works well with both 32-bit and 64-bit MinGW (I
just need to update the docs).
- windows/Makefile | 38 +++++++++++++++++++++++++-------------
- windows/config.h | 2 ++
- 2 files changed, 27 insertions(+), 13 deletions(-)
-
commit 37f31ead9d2b4e467df11450cf29ed7d7e3e25f3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-15 11:05:11 +0200
+Date: Fri Jan 15 11:05:11 2010 +0200
Update the xz man page to match the previous two commits.
- src/xz/xz.1 | 9 +++------
- 1 file changed, 3 insertions(+), 6 deletions(-)
-
commit 3ffd5d81a43210c8da56da5c5b3637d3f8bc63c7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-13 19:10:25 +0200
+Date: Wed Jan 13 19:10:25 2010 +0200
Don't read compressed data from a terminal or write it
to a terminal even if --force is specified.
@@ -4137,13 +4706,9 @@
The new behavior matches bzip2. The old one matched gzip.
- src/xz/main.c | 20 +++++++++-----------
- src/xz/util.c | 8 ++++----
- 2 files changed, 13 insertions(+), 15 deletions(-)
-
commit 23ac2c44c3ac76994825adb7f9a8f719f78b5ee4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-13 18:12:40 +0200
+Date: Wed Jan 13 18:12:40 2010 +0200
Don't compress or decompress special files unless writing
to stdout even if --force is used.
@@ -4154,21 +4719,15 @@
The new way simply seems more reasonable. It matches gzip's
behavior while the old one matched bzip2's behavior.
- src/xz/file_io.c | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
commit cee12aa852ec0902983dc1f153346ef750157fb9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-12 16:30:33 +0200
+Date: Tue Jan 12 16:30:33 2010 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 153c7740c54b3c90129dbd3d6153ac1303c4d605
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-12 16:18:14 +0200
+Date: Tue Jan 12 16:18:14 2010 +0200
Add IRIX-specific code to tuklib_physmem and tuklib_cpucores.
@@ -4177,29 +4736,17 @@
Thanks to Stuart Shelton.
- m4/tuklib_cpucores.m4 | 11 +++++++++--
- m4/tuklib_physmem.m4 | 22 +++++++++++++++++++++-
- src/common/tuklib_cpucores.c | 6 ++++++
- src/common/tuklib_physmem.c | 19 +++++++++++++++++++
- 4 files changed, 55 insertions(+), 3 deletions(-)
-
commit 8ea8dc754a7a5bc2d60db1eac201839cabdab6a1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2010-01-01 00:29:10 +0200
+Date: Fri Jan 1 00:29:10 2010 +0200
Fix _memconfig() functions.
This affects lzma_memusage() and lzma_memlimit_get().
- src/liblzma/api/lzma/index.h | 7 -------
- src/liblzma/common/alone_decoder.c | 11 +++++++----
- src/liblzma/common/index_decoder.c | 10 ++++++----
- src/liblzma/common/stream_decoder.c | 11 +++++++----
- 4 files changed, 20 insertions(+), 19 deletions(-)
-
commit 1a7ec87c8ee61dfc2e496d2e1fb7ab0939804691
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-12-31 22:45:53 +0200
+Date: Thu Dec 31 22:45:53 2009 +0200
Revised the Index handling code.
@@ -4226,49 +4773,29 @@
function in the first place other than test_index.c,
which now has its own code to compare lzma_indexes.
- src/liblzma/api/lzma/index.h | 572 +++++++---
- src/liblzma/common/index.c | 1553 ++++++++++++++++++----------
- src/liblzma/common/index.h | 6 +
- src/liblzma/common/index_decoder.c | 12 +-
- src/liblzma/common/index_encoder.c | 36 +-
- src/liblzma/common/index_encoder.h | 2 +-
- src/liblzma/common/stream_buffer_encoder.c | 6 +-
- src/liblzma/common/stream_encoder.c | 3 +-
- tests/test_index.c | 371 ++++---
- 9 files changed, 1703 insertions(+), 858 deletions(-)
-
commit f29997a846e673cb3b8cbd57de47ed313b3978bb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-12-31 21:13:25 +0200
+Date: Thu Dec 31 21:13:25 2009 +0200
Remove c-format tag in cs.po.
It was fixed in the C code earlier.
- po/cs.po | 1 -
- 1 file changed, 1 deletion(-)
-
commit 097bad000363e0bf29f8274ad2d7ab59f7dbf644
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-12-31 21:11:05 +0200
+Date: Thu Dec 31 21:11:05 2009 +0200
Add missing lzma_nothrow in filter.h.
- src/liblzma/api/lzma/filter.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit b56cb1fc31fa2381f92eefc040df85667048d626
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-12-09 18:13:44 +0200
+Date: Wed Dec 9 18:13:44 2009 +0200
Remove redefinition of _(msgid) macro from lzmainfo.c.
- src/lzmainfo/lzmainfo.c | 7 -------
- 1 file changed, 7 deletions(-)
-
commit 171b03febfe09d9fae6ac8be6aa4518bcaf427d2
Author: Jonathan Nieder <jrnieder at gmail.com>
-Date: 2009-12-08 19:41:57 -0600
+Date: Tue Dec 8 19:41:57 2009 -0600
update po/.gitignore
@@ -4286,12 +4813,9 @@
Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
- po/.gitignore | 28 ++++++++++++++++++++++------
- 1 file changed, 22 insertions(+), 6 deletions(-)
-
commit f7e44c6c11f630519072971b8b07a5729c096c36
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-12-09 00:38:55 +0200
+Date: Wed Dec 9 00:38:55 2009 +0200
Always rely on GCC's auto-import on Windows.
@@ -4300,12 +4824,9 @@
Thanks to Charles Wilson and Keith Marshall.
- src/liblzma/api/lzma.h | 16 +++++++++-------
- 1 file changed, 9 insertions(+), 7 deletions(-)
-
commit 7b76a3e2336f25088957cba92b0dbd854d9caa3c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-12-07 21:46:53 +0200
+Date: Mon Dec 7 21:46:53 2009 +0200
Fix file_io.c on DOS-like systems.
@@ -4314,12 +4835,9 @@
Thanks to Charles Wilson.
- src/xz/file_io.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
commit 0696f5d268362221380e039bad48a86e29067c6a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-12-07 20:54:21 +0200
+Date: Mon Dec 7 20:54:21 2009 +0200
Add Czech translation.
@@ -4330,57 +4848,40 @@
are still welcome, just be prepared to some extra work
in case there are changes.
- THANKS | 1 +
- po/LINGUAS | 1 +
- po/cs.po | 637 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 639 insertions(+)
-
commit 5e817a50d276f0a3607638c1c1d449d50b9aa4e5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-12-07 20:32:08 +0200
+Date: Mon Dec 7 20:32:08 2009 +0200
Add a note for translators to add a bug reporting address
for translation bugs.
- src/xz/message.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
commit 6db1c35be9e1e364cdacff6878910e1b7aac2a37
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-12-07 20:07:02 +0200
+Date: Mon Dec 7 20:07:02 2009 +0200
Prevent xgettext from taking one regular string as a C format string.
Thanks to Marek Černocký.
- src/xz/message.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit e0c2776b6ffbd2b1900fde353aceac734edc93d7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-28 17:45:22 +0200
+Date: Sat Nov 28 17:45:22 2009 +0200
Remove duplicate code in io_open_dest().
Fix a missing _() in the error message too.
- src/xz/file_io.c | 9 +--------
- 1 file changed, 1 insertion(+), 8 deletions(-)
-
commit f057a33c6f7c5992389479f2d4feabf2900ba7ee
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-26 10:11:23 +0200
+Date: Thu Nov 26 10:11:23 2009 +0200
Typo fix to sysdefs.h.
Thanks to Jonathan Nieder.
- src/common/sysdefs.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 8767b41534eafdf5e742e12190646bf5740b0cdb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-26 10:10:36 +0200
+Date: Thu Nov 26 10:10:36 2009 +0200
Fix a memory leak in test_index.c.
@@ -4389,12 +4890,9 @@
Thanks to Jim Meyering for noticing it.
- tests/test_index.c | 2 ++
- 1 file changed, 2 insertions(+)
-
commit 919fbaff860acdaa4bcd216500a0b1c960a6db92
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-25 14:22:19 +0200
+Date: Wed Nov 25 14:22:19 2009 +0200
Add missing error check to coder.c.
@@ -4401,12 +4899,9 @@
With bad luck this could cause a segfault due to
reading (but not writing) past the end of the buffer.
- src/xz/coder.c | 20 +++++++++++---------
- 1 file changed, 11 insertions(+), 9 deletions(-)
-
commit bd13b04e202b6f495a68eb0766f97085b7c50a06
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-25 13:04:10 +0200
+Date: Wed Nov 25 13:04:10 2009 +0200
Fix bugs in lzma_index_read() and lzma_index_cat().
@@ -4420,13 +4915,9 @@
These bugs didn't affect the xz command line tool or
most users of liblzma in any way.
- src/liblzma/common/index.c | 30 +++++++++++++++++++-----------
- tests/test_index.c | 28 +++++++++++++++++++++++++---
- 2 files changed, 44 insertions(+), 14 deletions(-)
-
commit 1f196909143b888e062bd9a0c4ba8c34d3019bfa
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-25 12:52:56 +0200
+Date: Wed Nov 25 12:52:56 2009 +0200
Index decoder fixes.
@@ -4440,13 +4931,9 @@
This simplifies applications too, since it avoids dangling
pointers.
- src/liblzma/api/lzma/index.h | 23 ++++++++++++-----------
- src/liblzma/common/index_decoder.c | 26 ++++++++++++++++++++------
- 2 files changed, 32 insertions(+), 17 deletions(-)
-
commit 465d1b0d6518c5d980f2db4c2d769f9905bdd902
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-25 11:19:20 +0200
+Date: Wed Nov 25 11:19:20 2009 +0200
Create sparse files by default when decompressing into
a regular file.
@@ -4458,36 +4945,21 @@
is not good enough, and a more flexible command line
option is needed to configure sparse file handling.
- src/xz/args.c | 6 ++
- src/xz/coder.c | 33 ++++----
- src/xz/file_io.c | 243 +++++++++++++++++++++++++++++++++++++++++++++++--------
- src/xz/file_io.h | 34 ++++++--
- src/xz/message.c | 1 +
- src/xz/xz.1 | 11 +++
- 6 files changed, 272 insertions(+), 56 deletions(-)
-
commit 37de544414fc2dc5039471d1002ebd015eb3e627
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-22 12:43:06 +0200
+Date: Sun Nov 22 12:43:06 2009 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit f1a28b96c900c658fe016852ff62f6c24d1f50fa
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-22 12:05:33 +0200
+Date: Sun Nov 22 12:05:33 2009 +0200
Add missing consts to pointer casts.
- src/liblzma/check/crc32_fast.c | 4 ++--
- src/liblzma/check/crc64_fast.c | 5 +++--
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
commit b9b5c54cd438b3ae47b44cc211b71f3bc53e35ef
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-22 12:00:30 +0200
+Date: Sun Nov 22 12:00:30 2009 +0200
Enable assembler code only if it is known to work
on that operating system.
@@ -4499,35 +4971,24 @@
Inline assembler (if any) is used if a macro like
__i386__ or __x86_64__ is defined.
- configure.ac | 26 ++++++++++++--------------
- 1 file changed, 12 insertions(+), 14 deletions(-)
-
commit 0733f4c9994db696420a405810d5f02c79ebc404
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-22 11:55:03 +0200
+Date: Sun Nov 22 11:55:03 2009 +0200
Make fastpos.h use tuklib_integer.h instead of bsr.h
when --enable-small has been specified.
- src/liblzma/common/Makefile.inc | 1 -
- src/liblzma/common/bsr.h | 60 -----------------------------------------
- src/liblzma/lzma/fastpos.h | 5 +---
- 3 files changed, 1 insertion(+), 65 deletions(-)
-
commit 7ac3985d891dcc5773543f84cc5bce6c14841b12
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-22 11:52:30 +0200
+Date: Sun Nov 22 11:52:30 2009 +0200
Update tuklib_integer.h with bit scan functions.
Thanks to Joachim Henke for the original patch.
- src/common/tuklib_integer.h | 189 ++++++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 181 insertions(+), 8 deletions(-)
-
commit c74c132f7f79a842c073c66575a4fdb985e4c2e3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-20 12:51:19 +0200
+Date: Fri Nov 20 12:51:19 2009 +0200
Update tuklib_cpucores.m4 and tuklib_physmem.m4 from tuklib,
which now use AC_CACHE_CHECK. Using the cache variable,
@@ -4534,14 +4995,9 @@
configure now warns if there is no method to detect the amount
of RAM and recommends using --enable-assume-ram.
- configure.ac | 16 ++++++++++++++++
- m4/tuklib_cpucores.m4 | 31 ++++++++++++++++++-------------
- m4/tuklib_physmem.m4 | 50 +++++++++++++++++++++++++++-----------------------
- 3 files changed, 61 insertions(+), 36 deletions(-)
-
commit d315ca4930ff96e1428c6021c96f209e1abdd83e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-16 18:16:45 +0200
+Date: Mon Nov 16 18:16:45 2009 +0200
Add support for --info-memory and --robot to xz.
@@ -4551,29 +5007,16 @@
Thanks to Jonathan Nieder for the original patches.
- src/xz/args.c | 85 +++++++++++++++++++++++++++++++++-----------------------
- src/xz/args.h | 1 +
- src/xz/main.c | 11 +++++---
- src/xz/message.c | 47 +++++++++++++++++++++++--------
- src/xz/message.h | 4 +++
- src/xz/xz.1 | 40 +++++++++++++++++++++++---
- 6 files changed, 133 insertions(+), 55 deletions(-)
-
commit e330fb7e6b8162894280c8a3dc22fdc05cd2d85e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-15 12:54:45 +0200
+Date: Sun Nov 15 12:54:45 2009 +0200
Fix wrong indentation caused by incorrect settings
in the text editor.
- src/liblzma/lz/lz_decoder.c | 18 +++++++++---------
- src/liblzma/lzma/lzma2_encoder.c | 6 +++---
- src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 +-
- 3 files changed, 13 insertions(+), 13 deletions(-)
-
commit 93e418562cf127a9171e87bcd4e9af8e1bfcdae4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-15 12:40:17 +0200
+Date: Sun Nov 15 12:40:17 2009 +0200
Add lzma_physmem().
@@ -4586,59 +5029,33 @@
Thanks to Jonathan Nieder for the original patch.
- src/liblzma/Makefile.am | 5 ++--
- src/liblzma/api/Makefile.am | 1 +
- src/liblzma/api/lzma.h | 3 +++
- src/liblzma/api/lzma/hardware.h | 51 +++++++++++++++++++++++++++++++++++
- src/liblzma/common/Makefile.inc | 1 +
- src/liblzma/common/hardware_physmem.c | 25 +++++++++++++++++
- src/xz/Makefile.am | 1 -
- src/xz/hardware.c | 3 +--
- src/xzdec/Makefile.am | 6 ++---
- src/xzdec/xzdec.c | 3 +--
- 10 files changed, 88 insertions(+), 11 deletions(-)
-
commit cf39faca59083d38422058c6c97aa757ea7797d0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-14 20:21:19 +0200
+Date: Sat Nov 14 20:21:19 2009 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 2ddcae247c284cc2f396b6cfdab57790c7588b5f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-14 20:20:03 +0200
+Date: Sat Nov 14 20:20:03 2009 +0200
Some updates to xz man page.
- src/xz/xz.1 | 54 +++++++++++++++++++++++++++++++++++++++++++++++++-----
- 1 file changed, 49 insertions(+), 5 deletions(-)
-
commit 19b2674f07f8b588dfaf6638396b4b42866d7e23
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-14 19:51:03 +0200
+Date: Sat Nov 14 19:51:03 2009 +0200
Fix description of --memory in --long-help.
- src/xz/message.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
commit 2291346f0cccf88e605d84b75c9c5aaaaddb5df8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-14 19:45:39 +0200
+Date: Sat Nov 14 19:45:39 2009 +0200
Update the debug programs so that they compile again.
- debug/crc32.c | 1 +
- debug/memusage.c | 6 ++++--
- debug/sync_flush.c | 14 +++++++++-----
- 3 files changed, 14 insertions(+), 7 deletions(-)
-
commit 418d64a32e8144210f98a810738fed5a897e8367
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-11-14 18:59:19 +0200
+Date: Sat Nov 14 18:59:19 2009 +0200
Fix a design error in liblzma API.
@@ -4663,43 +5080,17 @@
that Stream encoder used to require keeping the filter
chain allocated.
- src/liblzma/api/lzma/filter.h | 30 +++++++++++++
- src/liblzma/api/lzma/lzma.h | 13 ------
- src/liblzma/common/block_encoder.c | 14 ++++++
- src/liblzma/common/common.c | 20 ++++++++-
- src/liblzma/common/common.h | 22 ++++++++++
- src/liblzma/common/easy_encoder.c | 63 ++-------------------------
- src/liblzma/common/filter_common.c | 3 ++
- src/liblzma/common/filter_encoder.c | 27 ++++++++++++
- src/liblzma/common/filter_encoder.h | 2 +-
- src/liblzma/common/stream_encoder.c | 76 ++++++++++++++++++++++++++++-----
- src/liblzma/delta/delta_common.c | 5 +--
- src/liblzma/delta/delta_decoder.c | 3 +-
- src/liblzma/delta/delta_encoder.c | 17 +++++++-
- src/liblzma/delta/delta_private.h | 2 +-
- src/liblzma/lz/lz_encoder.c | 17 ++++++++
- src/liblzma/lz/lz_encoder.h | 4 ++
- src/liblzma/lzma/lzma2_encoder.c | 59 ++++++++++++++-----------
- src/liblzma/lzma/lzma_encoder_presets.c | 1 -
- src/liblzma/simple/simple_coder.c | 12 ++++++
- src/xz/options.c | 1 -
- 20 files changed, 273 insertions(+), 118 deletions(-)
-
commit f0bf7634b77263a4dd02b20c71861ab67995da68
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-10-17 11:11:58 +0300
+Date: Sat Oct 17 11:11:58 2009 +0300
Fix wrong function name in the previous commit.
It was meant to be lzma_filters_copy(), not lzma_filters_dup().
- src/liblzma/api/lzma/filter.h | 2 +-
- src/liblzma/common/filter_common.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit 6d118a0b9def82e96afba7386ec8d7da0b59649f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-10-17 01:47:07 +0300
+Date: Sat Oct 17 01:47:07 2009 +0300
Add lzma_filters_copy().
@@ -4707,13 +5098,9 @@
a design mistake in the encoder API. This function may
be useful to applications too so it's good to export it.
- src/liblzma/api/lzma/filter.h | 31 ++++++++++++++
- src/liblzma/common/filter_common.c | 82 ++++++++++++++++++++++++++++++++++++++
- 2 files changed, 113 insertions(+)
-
commit 78e92c18470483e161388e679c1ee556adb3a691
Author: Jonathan Nieder <jrnieder at gmail.com>
-Date: 2009-10-15 20:44:13 -0500
+Date: Thu Oct 15 20:44:13 2009 -0500
Escape dashes in xzmore.1
@@ -4724,12 +5111,9 @@
easier to search for. So use minus signs instead of hyphens to
render sample terminal output.
- src/scripts/xzmore.1 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit 7b7fe902d98da28e5769e2aa1e0c08c92384f7ee
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-10-16 20:35:39 +0300
+Date: Fri Oct 16 20:35:39 2009 +0300
Mention --check=none in --long-help. It was already in
the man page though.
@@ -4736,12 +5120,9 @@
Thanks to Jim Meyering for noticing this.
- src/xz/message.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit ebfb2c5e1f344e5c6e549b9dedaa49b0749a4a24
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-10-04 22:57:12 +0300
+Date: Sun Oct 4 22:57:12 2009 +0300
Use a tuklib module for integer handling.
@@ -4752,61 +5133,22 @@
on Solaris, which may contain optimized code
like inline assembly.
- configure.ac | 54 +----
- m4/tuklib_integer.m4 | 74 +++++++
- src/common/bswap.h | 52 -----
- src/common/integer.h | 170 ---------------
- src/common/tuklib_config.h | 8 +-
- src/common/tuklib_integer.h | 350 ++++++++++++++++++++++++++++++
- src/liblzma/check/check.c | 4 +-
- src/liblzma/check/crc32_fast.c | 4 +-
- src/liblzma/check/crc32_tablegen.c | 8 +-
- src/liblzma/check/crc64_fast.c | 4 +-
- src/liblzma/check/crc64_tablegen.c | 8 +-
- src/liblzma/check/crc_macros.h | 2 -
- src/liblzma/check/sha256.c | 18 +-
- src/liblzma/common/alone_encoder.c | 2 +-
- src/liblzma/common/block_header_decoder.c | 2 +-
- src/liblzma/common/block_header_encoder.c | 2 +-
- src/liblzma/common/common.h | 2 +-
- src/liblzma/common/stream_flags_decoder.c | 6 +-
- src/liblzma/common/stream_flags_encoder.c | 6 +-
- src/liblzma/lz/lz_encoder_hash.h | 2 +-
- src/liblzma/lzma/lzma_decoder.c | 2 +-
- src/liblzma/lzma/lzma_encoder.c | 2 +-
- src/liblzma/lzma/lzma_encoder_private.h | 2 +-
- src/liblzma/simple/simple_decoder.c | 2 +-
- src/liblzma/simple/simple_encoder.c | 2 +-
- tests/test_block_header.c | 4 +-
- tests/test_stream_flags.c | 6 +-
- tests/tests.h | 2 +-
- 28 files changed, 467 insertions(+), 333 deletions(-)
-
commit 29fd321033276261b87da7be5223db33d879a4c7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-10-02 14:35:56 +0300
+Date: Fri Oct 2 14:35:56 2009 +0300
Add support for --enable-assume-ram=SIZE.
- INSTALL | 16 ++++++++++++++++
- configure.ac | 24 ++++++++++++++++++++++++
- src/xz/hardware.c | 7 +++----
- src/xzdec/xzdec.c | 5 +++--
- 4 files changed, 46 insertions(+), 6 deletions(-)
-
commit 3782b3fee4812b0dd4ffdfa6563ed49f73060f25
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-10-02 11:28:17 +0300
+Date: Fri Oct 2 11:28:17 2009 +0300
Use unaligned access (if possible) on both endiannesses
in lz_encoder_hash.h.
- src/liblzma/lz/lz_encoder_hash.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit c5f68b5cc79085a87f950fea53843e27f328068e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-10-02 11:03:26 +0300
+Date: Fri Oct 2 11:03:26 2009 +0300
Make liblzma produce the same output on both endiannesses.
@@ -4819,101 +5161,69 @@
This commit bloatens the code on big endian systems by 1 KiB,
which should be OK since liblzma is bloated already. ;-)
- src/liblzma/check/crc32_tablegen.c | 30 +++++++++++++++
- src/liblzma/lz/Makefile.inc | 1 +
- src/liblzma/lz/lz_encoder.c | 7 +++-
- src/liblzma/lz/lz_encoder_hash.h | 35 +++++++++++------
- src/liblzma/lz/lz_encoder_hash_table.h | 68 ++++++++++++++++++++++++++++++++++
- src/liblzma/lz/lz_encoder_mf.c | 1 -
- 6 files changed, 128 insertions(+), 14 deletions(-)
-
commit 4a84d1adfda35e4fb4d41ecf0feb8223b100517a
Author: Mike Frysinger <vapier at gentoo.org>
-Date: 2009-09-26 12:51:50 -0400
+Date: Sat Sep 26 12:51:50 2009 -0400
add lzmainfo to gitignore
Signed-off-by: Mike Frysinger <vapier at gentoo.org>
- .gitignore | 2 ++
- 1 file changed, 2 insertions(+)
-
commit 188a1dcd0cc7867810ed3a55c598d0680922c63b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-27 11:53:36 +0300
+Date: Sun Sep 27 11:53:36 2009 +0300
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit db9119b9181b307e7ac5d2bae82444d04b902b59
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-27 11:48:54 +0300
+Date: Sun Sep 27 11:48:54 2009 +0300
Work around a bug in Interix header files.
Thanks to Markus Duft for the patch.
- src/common/sysdefs.h | 6 ++++++
- 1 file changed, 6 insertions(+)
-
commit b3d105e69786a45963176fd2193abe75e05ba738
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-24 17:50:17 +0300
+Date: Thu Sep 24 17:50:17 2009 +0300
Fix an error in OpenVMS-specific code.
Thanks to Jouk Jansen.
- src/xz/file_io.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 5e000ff00d4d01e559397b49eb648ad3f159d496
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-22 18:59:56 +0300
+Date: Tue Sep 22 18:59:56 2009 +0300
Added OpenVMS-specific information to INSTALL.
- INSTALL | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
commit 932b2e204463d70f3eee5b8a1ea5a23bf9d001a4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-22 14:03:02 +0300
+Date: Tue Sep 22 14:03:02 2009 +0300
Better fixes for OpenVMS support.
Thanks to Jouk Jansen.
- src/xz/file_io.c | 19 ++++++++++++++++---
- 1 file changed, 16 insertions(+), 3 deletions(-)
-
commit 4c3630ec4179fe9265407a35c4db1374ffc82372
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-22 13:40:19 +0300
+Date: Tue Sep 22 13:40:19 2009 +0300
Avoid non-standard preprocessor construct.
Thanks to Jouk Jansen.
- src/common/tuklib_common.h | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
commit 0deb1bb60addd1306b525e0ac0ad2a84eb0390d9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-21 19:50:09 +0300
+Date: Mon Sep 21 19:50:09 2009 +0300
Make sure that TUKLIB_DOSLIKE doesn't get defined on Cygwin.
Thanks to Charles Wilson.
- src/common/tuklib_common.h | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
commit e599bba4216c0edb8cc8f40adad3a6dba88685f4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-19 09:47:30 +0300
+Date: Sat Sep 19 09:47:30 2009 +0300
Various changes.
@@ -4930,117 +5240,47 @@
building XZ Utils on OpenVMS. Thanks to Jouk Jansen for the
original patch.
- THANKS | 1 +
- configure.ac | 12 ++--
- m4/lc_cpucores.m4 | 57 ----------------
- m4/lc_physmem.m4 | 84 -----------------------
- m4/tuklib_common.m4 | 22 ++++++
- m4/tuklib_cpucores.m4 | 72 ++++++++++++++++++++
- m4/tuklib_physmem.m4 | 119 ++++++++++++++++++++++++++++++++
- m4/tuklib_progname.m4 | 25 +++++++
- src/common/cpucores.h | 51 --------------
- src/common/open_stdxxx.h | 49 --------------
- src/common/physmem.h | 144 ---------------------------------------
- src/common/sysdefs.h | 4 --
- src/common/tuklib_common.h | 67 ++++++++++++++++++
- src/common/tuklib_config.h | 1 +
- src/common/tuklib_cpucores.c | 46 +++++++++++++
- src/common/tuklib_cpucores.h | 23 +++++++
- src/common/tuklib_exit.c | 57 ++++++++++++++++
- src/common/tuklib_exit.h | 25 +++++++
- src/common/tuklib_gettext.h | 44 ++++++++++++
- src/common/tuklib_open_stdxxx.c | 51 ++++++++++++++
- src/common/tuklib_open_stdxxx.h | 23 +++++++
- src/common/tuklib_physmem.c | 146 ++++++++++++++++++++++++++++++++++++++++
- src/common/tuklib_physmem.h | 28 ++++++++
- src/common/tuklib_progname.c | 50 ++++++++++++++
- src/common/tuklib_progname.h | 32 +++++++++
- src/lzmainfo/Makefile.am | 5 +-
- src/lzmainfo/lzmainfo.c | 65 ++++++------------
- src/xz/Makefile.am | 7 +-
- src/xz/args.c | 8 +--
- src/xz/file_io.c | 43 ++++++------
- src/xz/hardware.c | 8 +--
- src/xz/main.c | 100 ++++++---------------------
- src/xz/main.h | 7 --
- src/xz/message.c | 30 +++++----
- src/xz/message.h | 8 +--
- src/xz/private.h | 11 +--
- src/xz/signals.c | 2 +
- src/xz/signals.h | 17 +++--
- src/xz/suffix.c | 2 +-
- src/xzdec/Makefile.am | 13 +++-
- src/xzdec/xzdec.c | 55 +++++----------
- 41 files changed, 974 insertions(+), 640 deletions(-)
-
commit 49cfc8d392cf535f8dd10233225b1fc726fec9ef
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-15 21:07:23 +0300
+Date: Tue Sep 15 21:07:23 2009 +0300
Fix incorrect use of "restrict".
- src/liblzma/api/lzma/vli.h | 4 ++--
- src/liblzma/common/vli_decoder.c | 2 +-
- src/liblzma/common/vli_encoder.c | 2 +-
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
commit 15ffd675ab7af84592eb1c23b0e9f4699aa0fd8c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-12 14:09:17 +0300
+Date: Sat Sep 12 14:09:17 2009 +0300
Fix GCC version check for nothrow attribute.
- src/liblzma/api/lzma.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 6bfdd3a88a819f04c8f202e7d3c6f88a01c7d224
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-12 14:08:15 +0300
+Date: Sat Sep 12 14:08:15 2009 +0300
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 4ab7b16b9573bdfa32279e4adadff684d5cd58ac
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-12 14:07:36 +0300
+Date: Sat Sep 12 14:07:36 2009 +0300
A few grammar fixes.
Thanks to Christian Weisgerber for pointing out some of these.
- src/liblzma/api/lzma.h | 4 ++--
- src/liblzma/api/lzma/vli.h | 4 ++--
- src/liblzma/common/block_header_encoder.c | 2 +-
- src/liblzma/common/filter_common.c | 2 +-
- src/liblzma/lz/lz_encoder.h | 10 +++++-----
- src/xz/message.c | 22 +++++++++++-----------
- src/xzdec/xzdec.c | 2 +-
- 7 files changed, 23 insertions(+), 23 deletions(-)
-
commit 8905a33daadcd2d6557c83c81c490b827d566c94
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-11 17:08:15 +0300
+Date: Fri Sep 11 17:08:15 2009 +0300
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 68059334ff435300ab1ce2c616b0eee1b0d88dd9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-11 17:06:32 +0300
+Date: Fri Sep 11 17:06:32 2009 +0300
Add PACKAGE_HOMEPAGE to {windows,dos}/config.h to fix build errors.
- dos/config.h | 3 +++
- windows/config.h | 3 +++
- 2 files changed, 6 insertions(+)
-
commit 221be761f467da76875247bc02d7a1716682075d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-11 10:24:09 +0300
+Date: Fri Sep 11 10:24:09 2009 +0300
Use $(LN_EXEEXT) in symlinks to executables.
@@ -5051,26 +5291,15 @@
.exe suffix even though the executables themselves have.
Thanks to Charles Wilson.
- configure.ac | 9 +++++++++
- src/xz/Makefile.am | 4 ++--
- 2 files changed, 11 insertions(+), 2 deletions(-)
-
commit 18a4233a53d9b82abac7db7d7804684c5fea9c2c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-11 09:25:09 +0300
+Date: Fri Sep 11 09:25:09 2009 +0300
Fix a couple of warnings.
- src/liblzma/common/stream_decoder.c | 2 +-
- src/liblzma/lz/lz_encoder.c | 5 +----
- src/liblzma/lzma/lzma_encoder.c | 2 +-
- src/liblzma/lzma/lzma_encoder_optimum_normal.c | 8 ++++----
- tests/tests.h | 2 +-
- 5 files changed, 8 insertions(+), 11 deletions(-)
-
commit 429910b2ba67611d8df60d1a9da9641bdb5f82b4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-05 18:39:21 +0300
+Date: Sat Sep 5 18:39:21 2009 +0300
Add OS/2-specific code to physmem.h.
@@ -5077,21 +5306,15 @@
Also move DJGPP-specific code near the code meant
for other DOS-like systems.
- src/common/physmem.h | 32 +++++++++++++++++++++-----------
- 1 file changed, 21 insertions(+), 11 deletions(-)
-
commit 7aca7b3174bcbba4a4915682ff0cd405d63f5740
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-05 01:21:15 +0300
+Date: Sat Sep 5 01:21:15 2009 +0300
Updated THANKS.
- THANKS | 2 ++
- 1 file changed, 2 insertions(+)
-
commit 60ccb80c9c4a0d771acc5b7d9d6f32b17fed1071
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-05 01:20:29 +0300
+Date: Sat Sep 5 01:20:29 2009 +0300
Use sysctl() != -1 instead of !sysctl() to check if
the function call succeeded.
@@ -5103,31 +5326,21 @@
Thanks to Robert Elz and Thomas Klausner.
- src/common/cpucores.h | 2 +-
- src/common/physmem.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit 173368911cf09ab0b03fc4db8f3d4b81d86dce32
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-02 09:43:51 +0300
+Date: Wed Sep 2 09:43:51 2009 +0300
Mention in INSTALL that --enable-small doesn't modify CFLAGS.
- INSTALL | 4 ++++
- 1 file changed, 4 insertions(+)
-
commit 319a0fd7d7e9ebbb71ca6930abfc20777cb4aacc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-01 20:40:01 +0300
+Date: Tue Sep 1 20:40:01 2009 +0300
Refactored option parsing.
- src/xz/options.c | 70 ++++++++++++++++++++++++++++----------------------------
- 1 file changed, 35 insertions(+), 35 deletions(-)
-
commit 25adaaa56e2e51a47a910a8d73452414619a2e53
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-01 20:23:30 +0300
+Date: Tue Sep 1 20:23:30 2009 +0300
Fix options parsing bug in xz.
@@ -5134,21 +5347,15 @@
xz used to reject "xz --lzma2=pb=2," while
"xz --lzma2=pb=2,," worked. Now both work.
- src/xz/options.c | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
commit 5f6dddc6c911df02ba660564e78e6de80947c947
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-09-01 20:20:19 +0300
+Date: Tue Sep 1 20:20:19 2009 +0300
Updated TODO.
- TODO | 3 +++
- 1 file changed, 3 insertions(+)
-
commit 655457b9ada5ec7db398c5392e41290f3f332ea8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-31 21:59:25 +0300
+Date: Mon Aug 31 21:59:25 2009 +0300
Revert 43f44160b1ddcbf7e5205c37db09b3bebe7226f9
and use a fix that works on all systems using
@@ -5157,31 +5364,21 @@
Maybe the assembler code is used e.g. on Solaris x86
but let's worry about it if this doesn't work on it.
- src/liblzma/check/crc32_x86.S | 7 ++-----
- src/liblzma/check/crc64_x86.S | 7 ++-----
- 2 files changed, 4 insertions(+), 10 deletions(-)
-
commit 162189c3477953805a28f96d3a75cb9ab9417928
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-30 17:29:19 +0300
+Date: Sun Aug 30 17:29:19 2009 +0300
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 2331f5f97af3e5897e23da45d9df3d664099c7f8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-30 17:28:52 +0300
+Date: Sun Aug 30 17:28:52 2009 +0300
Add more OS/2 specific info to INSTALL.
- INSTALL | 5 +++++
- 1 file changed, 5 insertions(+)
-
commit 94c66b3297b3ad307eee93cf6b160e3c43997f11
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-29 14:43:52 +0300
+Date: Sat Aug 29 14:43:52 2009 +0300
Use even more hackish way to support thousand separators.
@@ -5201,21 +5398,15 @@
recompilation in case the system libc starts to support
the thousand separator.
- src/xz/util.c | 36 +++++++++++++++++++++++++-----------
- 1 file changed, 25 insertions(+), 11 deletions(-)
-
commit 3432e9c6aab851da1227b63dce645d7f190c04d8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-29 13:42:56 +0300
+Date: Sat Aug 29 13:42:56 2009 +0300
Updated THANKS.
- THANKS | 3 +++
- 1 file changed, 3 insertions(+)
-
commit 27414daadf5727e8ab942374b5ec1c8990122878
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-29 13:39:21 +0300
+Date: Sat Aug 29 13:39:21 2009 +0300
Fix sysctl() usage.
@@ -5224,45 +5415,29 @@
Thanks to Jukka Salmi for the patches.
Richard Koch reported the problem too.
- m4/lc_cpucores.m4 | 2 +-
- m4/lc_physmem.m4 | 2 +-
- src/common/cpucores.h | 2 +-
- src/common/physmem.h | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
commit 43f44160b1ddcbf7e5205c37db09b3bebe7226f9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-29 13:35:23 +0300
+Date: Sat Aug 29 13:35:23 2009 +0300
Fix x86 assembler on GCC 3.
Thanks to Karl Berry.
- src/liblzma/check/crc32_x86.S | 7 +++++--
- src/liblzma/check/crc64_x86.S | 7 +++++--
- 2 files changed, 10 insertions(+), 4 deletions(-)
-
commit 682efdc1f9492fdd76c9ce82e7c00ca0768067e8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 18:36:59 +0300
+Date: Thu Aug 27 18:36:59 2009 +0300
"make dist" fixes
- Makefile.am | 13 ++++++-------
- 1 file changed, 6 insertions(+), 7 deletions(-)
-
commit c8c184db1c95bf70f78256ec6237845a57f342af
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 17:08:33 +0300
+Date: Thu Aug 27 17:08:33 2009 +0300
Update xz man page date.
- src/xz/xz.1 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 9756fce565e98b8fa5fe6ead296d84e7601ec254
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 17:00:22 +0300
+Date: Thu Aug 27 17:00:22 2009 +0300
Fix the debug directory.
@@ -5270,43 +5445,27 @@
71f18e8a066a01dda0c8e5508b135ef104e43e4c required
some changes that weren't applied in debug.
- debug/Makefile.am | 5 +++--
- debug/full_flush.c | 1 +
- debug/known_sizes.c | 1 +
- debug/memusage.c | 1 +
- debug/sync_flush.c | 1 +
- 5 files changed, 7 insertions(+), 2 deletions(-)
-
commit 77007a7fb20187fcf3d1dd9839c79ace2d63f2ea
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 16:36:40 +0300
+Date: Thu Aug 27 16:36:40 2009 +0300
Add missing files to EXTRA_DIST.
- Makefile.am | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
commit 04dcbfdeb921e5f361a4487134e91e23fffbe09d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 16:21:22 +0300
+Date: Thu Aug 27 16:21:22 2009 +0300
Bumped version to 4.999.9beta.
- src/liblzma/api/lzma/version.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit fd7618611a22f42a6913bc8d518c9bbc9252d6b4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 16:17:47 +0300
+Date: Thu Aug 27 16:17:47 2009 +0300
Updated THANKS.
- THANKS | 2 ++
- 1 file changed, 2 insertions(+)
-
commit c29e76c0f910fca0a90a50b78d337f6c32623e9d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 16:12:52 +0300
+Date: Thu Aug 27 16:12:52 2009 +0300
.xz file format specification 1.0.4 (probably).
@@ -5313,68 +5472,47 @@
Thanks to Christian von Roques, Peter Lawler,
and Jim Meyering for the fixes.
- doc/xz-file-format.txt | 26 +++++++++++++++-----------
- 1 file changed, 15 insertions(+), 11 deletions(-)
-
commit 696d7ee3953beaf4f0ed18e78917ccf300431966
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 15:43:54 +0300
+Date: Thu Aug 27 15:43:54 2009 +0300
Require GNU libtool 2.2.
- configure.ac | 13 +++----------
- 1 file changed, 3 insertions(+), 10 deletions(-)
-
commit 4c3558aa8305a8f8b6c43b8569eb539717ca9e8d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 15:34:45 +0300
+Date: Thu Aug 27 15:34:45 2009 +0300
Add "dos" to EXTRA_DIST.
- Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
commit 35b29e4424ced5a3ababf132283e519080c7b298
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 15:23:27 +0300
+Date: Thu Aug 27 15:23:27 2009 +0300
Updated TODO.
- TODO | 6 ++++++
- 1 file changed, 6 insertions(+)
-
commit 23414377192c21f3f34c84cdfe0ef0fbd06a1dea
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 15:17:00 +0300
+Date: Thu Aug 27 15:17:00 2009 +0300
Some xz man page improvements.
- src/xz/xz.1 | 78 ++++++++++++++++++++++++++++++++++++++++++++++++-------------
- 1 file changed, 62 insertions(+), 16 deletions(-)
-
commit 371b04e19fc9051dbaeec51ec0badec6a1f0699d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 10:41:01 +0300
+Date: Thu Aug 27 10:41:01 2009 +0300
Removed doc/bugs.txt.
- doc/bugs.txt | 46 ----------------------------------------------
- 1 file changed, 46 deletions(-)
-
commit d88c4072b36d3a76f839185799fb1d91037a1b81
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 10:40:25 +0300
+Date: Thu Aug 27 10:40:25 2009 +0300
Updated README.
It now includes bug reporting instructions/tips.
- README | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
- 1 file changed, 55 insertions(+), 10 deletions(-)
-
commit 92e536d8b8d33a6b12d0802bcd7be4437046f13e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 10:21:18 +0300
+Date: Thu Aug 27 10:21:18 2009 +0300
Fix a typo in FAQ.
@@ -5383,12 +5521,9 @@
(From now on, I try to always remember to put
the relevant thanks to commit messages.)
- doc/faq.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 3e2ba8b58585743e59251e69ad2783eb08357079
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-27 10:13:46 +0300
+Date: Thu Aug 27 10:13:46 2009 +0300
Updates to liblzma API headers.
@@ -5399,32 +5534,15 @@
Lots of comments were improved.
- src/liblzma/api/lzma.h | 20 ++++++++
- src/liblzma/api/lzma/base.h | 48 +++++++++---------
- src/liblzma/api/lzma/block.h | 38 ++++++++-------
- src/liblzma/api/lzma/check.h | 22 +++++----
- src/liblzma/api/lzma/container.h | 36 ++++++++------
- src/liblzma/api/lzma/filter.h | 81 +++++++++++++++++++------------
- src/liblzma/api/lzma/index.h | 97 ++++++++++++++++++++++---------------
- src/liblzma/api/lzma/index_hash.h | 14 ++++--
- src/liblzma/api/lzma/lzma.h | 87 +++++++++++++++++----------------
- src/liblzma/api/lzma/stream_flags.h | 12 ++---
- src/liblzma/api/lzma/version.h | 10 ++--
- src/liblzma/api/lzma/vli.h | 7 +--
- 12 files changed, 275 insertions(+), 197 deletions(-)
-
commit 8e8ebc17c535a1f8846718059b48417409c37050
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-18 00:30:09 +0300
+Date: Tue Aug 18 00:30:09 2009 +0300
Install faq.txt.
- Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
commit b198e770a146e4a41f91a93f0b233713f2515848
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-18 00:26:48 +0300
+Date: Tue Aug 18 00:26:48 2009 +0300
Updated faq.txt.
@@ -5431,61 +5549,42 @@
Some questions worth answering were removed, because I
currently don't have good up to date answers to them.
- doc/faq.txt | 239 +++++++++++++++++++-----------------------------------------
- 1 file changed, 73 insertions(+), 166 deletions(-)
-
commit fe111a25cd788d31b581996e4533910388a7f0a9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-17 22:45:50 +0300
+Date: Mon Aug 17 22:45:50 2009 +0300
Some xz man changes.
- src/xz/xz.1 | 88 ++++++++++++++++++++++++++++++-------------------------------
- 1 file changed, 43 insertions(+), 45 deletions(-)
-
commit 10242a21e9abda0c5c6a03501703cc40b8a699a5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-16 22:15:42 +0300
+Date: Sun Aug 16 22:15:42 2009 +0300
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 3ce1916c83041113b9cad9ead5c97a527cf8aa1d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-16 22:15:13 +0300
+Date: Sun Aug 16 22:15:13 2009 +0300
Fix data corruption in LZ/LZMA2 encoder.
Thanks to Jonathan Stott for the bug report.
- src/liblzma/lz/lz_encoder.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 66da129c8ec33dd66acc92f113f7c1ca740ca81a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-13 15:15:37 +0300
+Date: Thu Aug 13 15:15:37 2009 +0300
Updated INSTALL and PACKAGERS to match the changes
made in --enable-dynamic.
- INSTALL | 20 ++++++++++++++++----
- PACKAGERS | 11 ++++++-----
- 2 files changed, 22 insertions(+), 9 deletions(-)
-
commit 8238c4b2402f952c4e492e5b778aa272e57b6705
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-13 15:03:46 +0300
+Date: Thu Aug 13 15:03:46 2009 +0300
Link lzmainfo against shared liblzma by default.
- src/lzmainfo/Makefile.am | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit 71f18e8a066a01dda0c8e5508b135ef104e43e4c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-13 15:00:21 +0300
+Date: Thu Aug 13 15:00:21 2009 +0300
Make --enable-dynamic a tristate option.
@@ -5498,23 +5597,17 @@
This is quite messy compared to how simple thing it is supposed
to be. The complexity is mostly due to Windows support.
- configure.ac | 77 ++++++++++++++++++++++++++++++++++++++++++++----------------
- 1 file changed, 57 insertions(+), 20 deletions(-)
-
commit 5aa4678b2342dcfc1d2b31aa9fa4f39c539e4b61
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-13 12:56:47 +0300
+Date: Thu Aug 13 12:56:47 2009 +0300
Fix xz Makefile.am for the man page.
install-exec-hook -> install-data-hook
- src/xz/Makefile.am | 2 ++
- 1 file changed, 2 insertions(+)
-
commit e51b4e49e800bd84e6d589dca2964d3985e88139
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-13 12:55:45 +0300
+Date: Thu Aug 13 12:55:45 2009 +0300
Add lzmainfo for backward compatibility with LZMA Utils.
@@ -5523,16 +5616,9 @@
against static liblzma by default is dumb. This will be
fixed once I have fixed some related issues in configure.ac.
- configure.ac | 1 +
- src/Makefile.am | 2 +-
- src/lzmainfo/Makefile.am | 29 ++++++
- src/lzmainfo/lzmainfo.1 | 55 +++++++++++
- src/lzmainfo/lzmainfo.c | 242 +++++++++++++++++++++++++++++++++++++++++++++++
- 5 files changed, 328 insertions(+), 1 deletion(-)
-
commit a4165d0584376d948c213ec93c6065d24ff6a5e7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-13 12:42:36 +0300
+Date: Thu Aug 13 12:42:36 2009 +0300
Sync some error messages from xz to xzdec.
@@ -5539,41 +5625,27 @@
Make xz error message translation usable outside
xz (at least in upcoming lzmainfo).
- src/xz/main.c | 4 ++--
- src/xzdec/xzdec.c | 6 +++---
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
commit df636eb4e066b4e154ce8e66e82c87ba1db652a6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-13 09:37:21 +0300
+Date: Thu Aug 13 09:37:21 2009 +0300
Add xz man page to manfiles in toplevel Makefile.am.
- Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
commit 180bdf58ea5bb07941e0a99b304d9aa832198748
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-13 09:37:01 +0300
+Date: Thu Aug 13 09:37:01 2009 +0300
Fix first line of xz man page.
- src/xz/xz.1 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit e1ce2291e759b50ebfcf7cbbcc04cd098f1705a4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-10 11:22:31 +0300
+Date: Mon Aug 10 11:22:31 2009 +0300
Added a rough version of the xz man page.
- src/xz/Makefile.am | 15 +
- src/xz/xz.1 | 1206 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 1221 insertions(+)
-
commit e71903fc6101f1c039d702e335b08aad1e1b4100
Author: Jonathan Nieder <jrnieder at gmail.com>
-Date: 2009-08-09 13:41:20 -0500
+Date: Sun Aug 9 13:41:20 2009 -0500
“xzdiff a.xz b.xz” always fails
@@ -5590,22 +5662,19 @@
descriptor. (This trick is used in all similar contexts elsewhere
in xzdiff and in the analogous context in gzip’s zdiff script.)
- src/scripts/xzdiff.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 1d314b81aa5b0c4530638ffabd4e0edb52e5362c
Author: Jonathan Nieder <jrnieder at gmail.com>
-Date: 2009-08-09 13:22:12 -0500
+Date: Sun Aug 9 13:22:12 2009 -0500
xzless: Support compressed standard input
It can be somewhat confusing that
- less < some_file.txt
+ less < some_file.txt
works fine, whereas
- xzless < some_file.txt.xz
+ xzless < some_file.txt.xz
does not. Since version 429, ‘less’ allows a filter specified in
the LESSOPEN environment variable to preprocess its input even if
@@ -5615,21 +5684,15 @@
Check less’s version at runtime so xzless can continue to work
with older versions.
- src/scripts/xzless.in | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
commit a7f5d2fe4826ac68839d00059f05004fb81d5c69
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-09 20:57:46 +0300
+Date: Sun Aug 9 20:57:46 2009 +0300
GPLv2+ not GPLv2 for Doxyfile.in is probably OK.
- Doxyfile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit b735cde20cc14857136ae65a0e5d336ed7ddc862
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-02 00:27:29 +0300
+Date: Sun Aug 2 00:27:29 2009 +0300
Added a copyright notice to Doxyfile.in since it contains
lots of comments from Doxygen.
@@ -5638,95 +5701,64 @@
their copyright on generated files, but since it doesn't
matter for XZ Utils at all, better safe than sorry.
- Doxyfile.in | 3 +++
- 1 file changed, 3 insertions(+)
-
commit 0fd157cc008446adfc8f91394f5503868025a642
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-02 00:11:37 +0300
+Date: Sun Aug 2 00:11:37 2009 +0300
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit b198da96ff9ac8c89b466b4d196c5f3fe1c7904f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-08-02 00:10:22 +0300
+Date: Sun Aug 2 00:10:22 2009 +0300
Updated TODO.
- TODO | 4 ++++
- 1 file changed, 4 insertions(+)
-
commit 669413bb2db954bbfde3c4542fddbbab53891eb4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-30 12:25:55 +0300
+Date: Thu Jul 30 12:25:55 2009 +0300
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit dbbd8fb870ae789d96497911006c869d37148c15
Author: Jonathan Nieder <jrnieder at gmail.com>
-Date: 2009-07-28 17:37:24 -0500
+Date: Tue Jul 28 17:37:24 2009 -0500
xzdiff: add missing ;; to case statement
- src/scripts/xzdiff.in | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
commit adbad2d16cb5909f85d4a429011005613ea62ffe
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-24 13:15:06 +0300
+Date: Fri Jul 24 13:15:06 2009 +0300
Added history.txt to doc_DATA.
- Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
commit e0236f12569eb36f9b81ce7a1e52e0f73698ac27
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-24 12:00:40 +0300
+Date: Fri Jul 24 12:00:40 2009 +0300
Updated .gitignore files.
- .gitignore | 36 +++++++++++++++++++-----------------
- po/.gitignore | 3 +++
- 2 files changed, 22 insertions(+), 17 deletions(-)
-
commit 2f34fb269265e3aba43a2a9c734020a45268826d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-24 11:34:02 +0300
+Date: Fri Jul 24 11:34:02 2009 +0300
Minor improvements to COPYING.
- COPYING | 11 ++++++++---
- 1 file changed, 8 insertions(+), 3 deletions(-)
-
commit 0db1befcfbc120377df4b89923762f16d25f548a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-23 19:10:55 +0300
+Date: Thu Jul 23 19:10:55 2009 +0300
Fix incorrect usage of getopt_long(), which caused
invalid memory access if XZ_OPT was defined.
- src/xz/args.c | 1 -
- 1 file changed, 1 deletion(-)
-
commit 8f8ec942d6d21ada2096eaf063411bc8bc7e2d48
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-20 15:43:32 +0300
+Date: Mon Jul 20 15:43:32 2009 +0300
Avoid internal error with --format=xz --lzma1.
- src/xz/coder.c | 16 ++++++++++++----
- 1 file changed, 12 insertions(+), 4 deletions(-)
-
commit 99f9e879a6a8bb54a65da99c12e0f390216c152a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-19 13:14:20 +0300
+Date: Sun Jul 19 13:14:20 2009 +0300
Major documentation update.
@@ -5735,28 +5767,15 @@
Some of the documentation files are now installed to $docdir.
- AUTHORS | 35 +++---
- ChangeLog | 7 +-
- INSTALL | 327 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- INSTALL.generic | 302 +++++++++++++++++++++++++++++++++++++++++++++++++++
- Makefile.am | 11 ++
- PACKAGERS | 278 +++++++++++++++++++++++++++++++++++++++++++++++
- README | 263 ++++++++++++++++++++-------------------------
- THANKS | 17 +--
- 8 files changed, 1070 insertions(+), 170 deletions(-)
-
commit ef4cf1851de89022cba5674784f1a8f6343c15b0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-19 11:09:31 +0300
+Date: Sun Jul 19 11:09:31 2009 +0300
Added missing author notice to xzless.in.
- src/scripts/xzless.in | 1 +
- 1 file changed, 1 insertion(+)
-
commit 4c9c989d45b188667799a7a1d6c728ed43f7bf77
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-18 18:54:55 +0300
+Date: Sat Jul 18 18:54:55 2009 +0300
Use AC_CONFIG_AUX_DIR to clean up the toplevel directory
a little.
@@ -5765,36 +5784,21 @@
Added the build-aux directory to .gitignore.
- .gitignore | 1 +
- Makefile.am | 1 -
- configure.ac | 3 ++-
- 3 files changed, 3 insertions(+), 2 deletions(-)
-
commit 366e436090a7a87215e9bf0e3ddcd55f05b50587
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-18 14:34:08 +0300
+Date: Sat Jul 18 14:34:08 2009 +0300
Updated the totally outdated TODO file.
- TODO | 117 ++++++++++++++++---------------------------------------------------
- 1 file changed, 27 insertions(+), 90 deletions(-)
-
commit 64e498c89d8b9966e8663f43bf64d47c26c55c62
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-18 11:26:39 +0300
+Date: Sat Jul 18 11:26:39 2009 +0300
Added public domain notice into a few files.
- src/common/common_w32res.rc | 9 ++++++++-
- src/liblzma/liblzma.pc.in | 7 +++++++
- src/liblzma/liblzma_w32res.rc | 7 +++++++
- src/xz/xz_w32res.rc | 7 +++++++
- src/xzdec/xzdec_w32res.rc | 7 +++++++
- 5 files changed, 36 insertions(+), 1 deletion(-)
-
commit a35755c5de808df027675688855d1b621a4fb428
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-14 21:10:36 +0300
+Date: Tue Jul 14 21:10:36 2009 +0300
Allow extra commas in filter-specific options on xz command line.
@@ -5801,33 +5805,24 @@
This may slightly ease writing scripts that construct
filter-specific option strings dynamically.
- src/xz/options.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
commit 98f3cac1ad31191c5160a7e48398bf85141e941c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-14 18:04:31 +0300
+Date: Tue Jul 14 18:04:31 2009 +0300
Accept --lzma2=preset=6e where "e" is equivalent to --extreme
when no custom chain is in use.
- src/xz/options.c | 80 +++++++++++++++++++++++++++++++++++++++++---------------
- 1 file changed, 59 insertions(+), 21 deletions(-)
-
commit d873a09e956363e54bf58c577c8f7e487b6fb464
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-12 19:08:30 +0300
+Date: Sun Jul 12 19:08:30 2009 +0300
Add dist-hook to create ChangeLog from the commit log,
and to conver the man pages to PDF and plain text, which
may be convenient to those who cannot render man pages.
- Makefile.am | 31 +++++++++++++++++++++++++++++++
- 1 file changed, 31 insertions(+)
-
commit cd69a5a6c16c289f6f8e2823b03c72289472270f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-10 11:39:38 +0300
+Date: Fri Jul 10 11:39:38 2009 +0300
BCJ filters: Reject invalid start offsets with LZMA_OPTIONS_ERROR.
@@ -5842,19 +5837,9 @@
so one will get a bit unclear error message if trying to use
an invalid start offset.
- src/liblzma/simple/arm.c | 2 +-
- src/liblzma/simple/armthumb.c | 2 +-
- src/liblzma/simple/ia64.c | 2 +-
- src/liblzma/simple/powerpc.c | 2 +-
- src/liblzma/simple/simple_coder.c | 5 ++++-
- src/liblzma/simple/simple_private.h | 3 ++-
- src/liblzma/simple/sparc.c | 2 +-
- src/liblzma/simple/x86.c | 2 +-
- 8 files changed, 12 insertions(+), 8 deletions(-)
-
commit eed9953732b801f6c97317fb3160445a8754180b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-10 11:33:21 +0300
+Date: Fri Jul 10 11:33:21 2009 +0300
Look for full command names instead of substrings
like "un", "cat", and "lz" when determining if
@@ -5864,30 +5849,21 @@
--program-transform-name), it doesn't so easily
work in wrong mode.
- src/xz/args.c | 22 +++++++++++++---------
- 1 file changed, 13 insertions(+), 9 deletions(-)
-
commit 6f62fa88f4ff7ba78565c314c0e6e71c498fa658
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-08 23:06:46 +0300
+Date: Wed Jul 8 23:06:46 2009 +0300
Updated THANKS.
- THANKS | 2 ++
- 1 file changed, 2 insertions(+)
-
commit 1754b7e03e2aa7e2e0196807fe8b0f3f5a637b0e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-08 23:05:29 +0300
+Date: Wed Jul 8 23:05:29 2009 +0300
Portability improvement to version.sh.
- version.sh | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
commit 3bdb53792c0e3e3febe9370e56eda5b08f89410f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-08 22:50:16 +0300
+Date: Wed Jul 8 22:50:16 2009 +0300
Remove --force from xzdec.
@@ -5897,13 +5873,9 @@
be wrong. xzdec will not support copying unrecognized
data as is to stdout, so it cannot support --force.
- src/xzdec/xzdec.1 | 5 -----
- src/xzdec/xzdec.c | 5 +----
- 2 files changed, 1 insertion(+), 9 deletions(-)
-
commit 5f16ef4abf220028a9ddbcb138217597a9455f62
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-06 10:36:04 +0300
+Date: Mon Jul 6 10:36:04 2009 +0300
Use sed instead of $(SED) so that we don't need to
use AC_PROG_SED. We don't do anything fancy with sed,
@@ -5910,15 +5882,9 @@
so this should work OK. libtool 2.2 sets SED but 1.5
doesn't, so $(SED) happened to work when using libtool 2.2.
- src/liblzma/Makefile.am | 2 +-
- src/scripts/Makefile.am | 28 ++++++++++++++--------------
- src/xz/Makefile.am | 6 +++---
- src/xzdec/Makefile.am | 6 +++---
- 4 files changed, 21 insertions(+), 21 deletions(-)
-
commit 96e4b257e101d72072d43e144897d92920270669
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-05 22:25:17 +0300
+Date: Sun Jul 5 22:25:17 2009 +0300
Major update to the xzgrep and other scripts based on
the latest versions found from gzip CVS repository.
@@ -5933,34 +5899,15 @@
The name of the xz executable used in these scripts is
now correct even if --program-transform-name has been used.
- configure.ac | 14 ++++
- m4/posix-shell.m4 | 63 ++++++++++++++++
- src/scripts/Makefile.am | 24 +++---
- src/scripts/xzdiff | 67 -----------------
- src/scripts/xzdiff.1 | 58 ++++++++------
- src/scripts/xzdiff.in | 172 ++++++++++++++++++++++++++++++++++++++++++
- src/scripts/xzgrep | 123 ------------------------------
- src/scripts/xzgrep.1 | 85 ++++++++++++---------
- src/scripts/xzgrep.in | 196 ++++++++++++++++++++++++++++++++++++++++++++++++
- src/scripts/xzless.1 | 66 ++++++++++++++++
- src/scripts/xzless.in | 51 +++++++++++++
- src/scripts/xzmore | 74 ------------------
- src/scripts/xzmore.1 | 64 +++++++---------
- src/scripts/xzmore.in | 78 +++++++++++++++++++
- 14 files changed, 766 insertions(+), 369 deletions(-)
-
commit 25cc7a6e8c2506a0d80084a4c1c67d33e7439100
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-05 19:26:53 +0300
+Date: Sun Jul 5 19:26:53 2009 +0300
Use @PACKAGE_HOMEPAGE@ in liblzma.pc.in.
- src/liblzma/liblzma.pc.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 18c10c30d2833f394cd7bce0e6a821044b15832f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-04 00:40:44 +0300
+Date: Sat Jul 4 00:40:44 2009 +0300
Make "xz --decompress --stdout --force" copy unrecognized
files as is to standard output.
@@ -5971,12 +5918,9 @@
files of only a few bytes in size. xz now has its own file
type detection code and no longer uses lzma_auto_decoder().
- src/xz/coder.c | 213 +++++++++++++++++++++++++++++++++++++++++++++++----------
- 1 file changed, 178 insertions(+), 35 deletions(-)
-
commit 0a289c01ac821ea9c4250aa906b0ae3cfa953633
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-02 14:30:38 +0300
+Date: Thu Jul 2 14:30:38 2009 +0300
Define PACKAGE_HOMEPAGE in configure.ac and use it in
xz and xzdec.
@@ -5983,32 +5927,21 @@
Use also PACKAGE_NAME instead of hardcoding "XZ Utils".
- configure.ac | 5 +++++
- src/xz/message.c | 4 ++--
- src/xzdec/xzdec.c | 4 ++--
- 3 files changed, 9 insertions(+), 4 deletions(-)
-
commit 5cc99db5bae8633f85559e5cdaef4cd905a4ee9c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-07-01 12:21:24 +0300
+Date: Wed Jul 1 12:21:24 2009 +0300
Avoid visibility related compiler warnings on Windows.
- configure.ac | 20 +++++++++-----------
- 1 file changed, 9 insertions(+), 11 deletions(-)
-
commit 7653d1cf48080e63b189ed9d58dea0e82b6b1c5e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-30 17:14:39 +0300
+Date: Tue Jun 30 17:14:39 2009 +0300
Use static liblzma by default also for tests.
- tests/Makefile.am | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
commit f42ee981668b545ab6d06c6072e262c29605273c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-30 17:09:57 +0300
+Date: Tue Jun 30 17:09:57 2009 +0300
Build system fixes
@@ -6036,334 +5969,179 @@
This commit also adds support for building Windows resources
into liblzma and executables.
- configure.ac | 34 ++++++++++------
- src/liblzma/Makefile.am | 79 +++++++++++++++++++++++++++++--------
- src/liblzma/check/Makefile.am | 47 ----------------------
- src/liblzma/check/Makefile.inc | 51 ++++++++++++++++++++++++
- src/liblzma/common/Makefile.am | 78 ------------------------------------
- src/liblzma/common/Makefile.inc | 67 +++++++++++++++++++++++++++++++
- src/liblzma/common/common.h | 16 +++++---
- src/liblzma/delta/Makefile.am | 28 -------------
- src/liblzma/delta/Makefile.inc | 23 +++++++++++
- src/liblzma/lz/Makefile.am | 29 --------------
- src/liblzma/lz/Makefile.inc | 21 ++++++++++
- src/liblzma/lzma/Makefile.am | 51 ------------------------
- src/liblzma/lzma/Makefile.inc | 43 ++++++++++++++++++++
- src/liblzma/rangecoder/Makefile.am | 26 ------------
- src/liblzma/rangecoder/Makefile.inc | 21 ++++++++++
- src/liblzma/simple/Makefile.am | 51 ------------------------
- src/liblzma/simple/Makefile.inc | 47 ++++++++++++++++++++++
- src/liblzma/subblock/Makefile.am | 26 ------------
- src/liblzma/subblock/Makefile.inc | 20 ++++++++++
- src/xz/Makefile.am | 11 +++++-
- src/xzdec/Makefile.am | 20 +++++++++-
- 21 files changed, 417 insertions(+), 372 deletions(-)
-
commit 89dac1db6f168d7469cfbc4432651d4724c5c0de
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-29 22:19:51 +0300
+Date: Mon Jun 29 22:19:51 2009 +0300
Added a comment about "autoconf -fi" to autogen.sh.
- autogen.sh | 3 +++
- 1 file changed, 3 insertions(+)
-
commit 6e685aae4594bc0af1b5032e01bb37d0edaa3ebd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-28 10:04:24 +0300
+Date: Sun Jun 28 10:04:24 2009 +0300
Add -no-undefined to get shared liblzma on Windows.
- src/liblzma/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 73f560ee5fa064992b76688d9472baf139432540
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-27 22:57:15 +0300
+Date: Sat Jun 27 22:57:15 2009 +0300
Make physmem() work on Cygwin 1.5 and older.
- src/common/physmem.h | 77 +++++++++++++++++++++++++++-------------------------
- 1 file changed, 40 insertions(+), 37 deletions(-)
-
commit 7ff0004fbce24ae72eddfe392828ffd7d4639ed1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-27 17:28:01 +0300
+Date: Sat Jun 27 17:28:01 2009 +0300
Moved the Windows resource files outside the windows directory
to prepare for building them with Autotools.
- src/common/common_w32res.rc | 46 +++++++++++++++++++++++++++++++++++++++++++
- src/liblzma/liblzma_w32res.rc | 5 +++++
- src/xz/xz_w32res.rc | 5 +++++
- src/xzdec/lzmadec_w32res.rc | 5 +++++
- src/xzdec/xzdec_w32res.rc | 5 +++++
- windows/Makefile | 35 +++++++++++++++++---------------
- windows/common.rc | 46 -------------------------------------------
- windows/liblzma.rc | 5 -----
- windows/lzmadec.rc | 5 -----
- windows/xz.rc | 5 -----
- windows/xzdec.rc | 5 -----
- 11 files changed, 85 insertions(+), 82 deletions(-)
-
commit 449c634674f35336a4815d398172e447659a135e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-27 13:05:03 +0300
+Date: Sat Jun 27 13:05:03 2009 +0300
Added missing $(EXEEXT).
- src/xz/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 792db79f27ad9ab1fb977e23be65c7761f545752
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-27 12:32:40 +0300
+Date: Sat Jun 27 12:32:40 2009 +0300
Create correct symlinks even when
--program-{prefix,suffix,transform} is passed to configure.
- src/scripts/Makefile.am | 80 ++++++++++++++++++++++++++++---------------------
- src/xz/Makefile.am | 21 ++++++++-----
- src/xzdec/Makefile.am | 9 ++++--
- 3 files changed, 65 insertions(+), 45 deletions(-)
-
commit 0adc72feb84f5b903f6ad9d3f759b1c326fafc6b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-27 10:02:24 +0300
+Date: Sat Jun 27 10:02:24 2009 +0300
Silence a compiler warning on DOS-like systems.
- src/xz/file_io.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
commit ad12edc95254ede3f0cb8dec8645e8789e984c4f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-27 09:35:15 +0300
+Date: Sat Jun 27 09:35:15 2009 +0300
Updated the filenames in POTFILES.in too.
- po/POTFILES.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit b2b1f867532732fe9969131f8713bdd6b0731763
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-27 00:43:06 +0300
+Date: Sat Jun 27 00:43:06 2009 +0300
Hopefully improved portability of the assembler code in
Autotools based builds on Windows.
- src/liblzma/check/crc32_x86.S | 8 +++++++-
- src/liblzma/check/crc64_x86.S | 8 +++++++-
- 2 files changed, 14 insertions(+), 2 deletions(-)
-
commit c393055947247627a09b6a6b8f20aa0c32f9be16
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-26 21:17:29 +0300
+Date: Fri Jun 26 21:17:29 2009 +0300
Updated THANKS (most of today's commits are based on
Charles Wilson's patches).
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit da0af22e4b4139b8a10710945f8b245b3a77c97d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-26 21:00:35 +0300
+Date: Fri Jun 26 21:00:35 2009 +0300
Updated comments to match renamed files.
- src/xz/coder.c | 2 +-
- src/xz/coder.h | 2 +-
- src/xz/file_io.c | 2 +-
- src/xz/file_io.h | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
commit 65014fd211dfbd4be48685998cb5a12aaa29c8d2
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-26 20:49:54 +0300
+Date: Fri Jun 26 20:49:54 2009 +0300
Rename process.[hc] to coder.[hc] and io.[hc] to file_io.[hc]
to avoid problems on systems with system headers with those
names.
- dos/Makefile | 4 +-
- src/xz/Makefile.am | 8 +-
- src/xz/coder.c | 488 ++++++++++++++++++++++++++++++++++++
- src/xz/coder.h | 57 +++++
- src/xz/file_io.c | 716 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- src/xz/file_io.h | 86 +++++++
- src/xz/io.c | 716 -----------------------------------------------------
- src/xz/io.h | 86 -------
- src/xz/private.h | 4 +-
- src/xz/process.c | 488 ------------------------------------
- src/xz/process.h | 57 -----
- windows/Makefile | 4 +-
- 12 files changed, 1357 insertions(+), 1357 deletions(-)
-
commit 5e1257466dcb66f1d7a3f71814a5ad885cba43e8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-26 20:43:36 +0300
+Date: Fri Jun 26 20:43:36 2009 +0300
Rename process_file() to coder_run().
- src/xz/main.c | 6 +++---
- src/xz/process.c | 6 +++---
- src/xz/process.h | 5 ++---
- 3 files changed, 8 insertions(+), 9 deletions(-)
-
commit cad62551c5fa9865dbe0841a0b3bc729c4fbe8fc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-26 20:36:45 +0300
+Date: Fri Jun 26 20:36:45 2009 +0300
Ugly hack to make it possible to use the thousand separator
format character with snprintf() on POSIX systems but not
on non-POSIX systems and still keep xgettext working.
- dos/Makefile | 16 +++-------------
- src/xz/message.c | 17 +++++++++--------
- src/xz/process.c | 30 +++++++++++++++---------------
- src/xz/util.c | 34 ++++++++++++++++++++++++++++++++++
- src/xz/util.h | 20 ++++++++++++++++++++
- windows/Makefile | 13 +++----------
- 6 files changed, 84 insertions(+), 46 deletions(-)
-
commit fe378d47074b16c52b00fe184d119287c68ce2e7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-26 15:40:40 +0300
+Date: Fri Jun 26 15:40:40 2009 +0300
Added missing source files to windows/Makefile.
- windows/Makefile | 2 ++
- 1 file changed, 2 insertions(+)
-
commit 390a6408563067613b29de895cb40e4d0386d62c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-26 15:37:53 +0300
+Date: Fri Jun 26 15:37:53 2009 +0300
Basic support for building with Cygwin and MinGW using
the Autotools based build system. It's not good yet, more
fixes will follow.
- configure.ac | 7 +++++++
- src/liblzma/api/lzma.h | 7 +++++--
- src/liblzma/check/crc32_x86.S | 7 ++++---
- src/liblzma/check/crc64_x86.S | 7 ++++---
- src/liblzma/common/common.h | 2 +-
- windows/Makefile | 16 +++++++---------
- 6 files changed, 28 insertions(+), 18 deletions(-)
-
commit 1c9360b7d1197457aaad2f8888b99f1149861579
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-26 14:47:31 +0300
+Date: Fri Jun 26 14:47:31 2009 +0300
Fix @variables@ to $(variables) in Makefile.am files.
Fix the ordering of libgnu.a and LTLIBINTL on the linker
command line and added missing LTLIBINTL to tests/Makefile.am.
- debug/Makefile.am | 12 ++++++------
- src/liblzma/check/Makefile.am | 4 ++--
- src/liblzma/common/Makefile.am | 16 ++++++++--------
- src/liblzma/delta/Makefile.am | 4 ++--
- src/liblzma/lz/Makefile.am | 6 +++---
- src/liblzma/lzma/Makefile.am | 8 ++++----
- src/liblzma/rangecoder/Makefile.am | 4 ++--
- src/liblzma/simple/Makefile.am | 4 ++--
- src/liblzma/subblock/Makefile.am | 4 ++--
- src/xz/Makefile.am | 21 +++++++++++----------
- src/xzdec/Makefile.am | 19 ++++++++++---------
- tests/Makefile.am | 12 +++++++-----
- 12 files changed, 59 insertions(+), 55 deletions(-)
-
commit d45615c555e250209ebb55aa3649abe790f1eeac
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-26 14:20:02 +0300
+Date: Fri Jun 26 14:20:02 2009 +0300
Allow to explicitly specify autotool versions in autogen.sh.
- autogen.sh | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
commit eaf8367368a329afa48785380f9dca6b681f3397
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-26 14:18:32 +0300
+Date: Fri Jun 26 14:18:32 2009 +0300
Add version.sh to EXTRA_DIST.
- Makefile.am | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
commit b317b218e2d383dd27a700094c0de4510540ea18
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-24 20:14:10 +0300
+Date: Wed Jun 24 20:14:10 2009 +0300
Support HW_PHYSMEM64
- src/common/physmem.h | 30 +++++++++++++++++++-----------
- 1 file changed, 19 insertions(+), 11 deletions(-)
-
commit ae82dde5d9cc60c80cc89601b6c51cc1611d48e7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-24 13:01:59 +0300
+Date: Wed Jun 24 13:01:59 2009 +0300
Cast a char argument to isspace() to unsigned char.
- src/xz/args.c | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
commit 1735d31ea347210e914df038eeea4b2626e76e42
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-05 13:46:26 +0300
+Date: Fri Jun 5 13:46:26 2009 +0300
A few more spelling fixes. Released the .xz spec 1.0.3.
- doc/xz-file-format.txt | 12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
-
commit 8ed156ce894966103e895aa08f2a9fb912f6fad5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-04 23:42:12 +0300
+Date: Thu Jun 4 23:42:12 2009 +0300
Added xzdec man page.
- src/xzdec/Makefile.am | 11 ++++
- src/xzdec/xzdec.1 | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 184 insertions(+)
-
commit f6df39afaa84f71439507178a49b2a5dda6e824c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-04 23:26:47 +0300
+Date: Thu Jun 4 23:26:47 2009 +0300
Harmonized xzdec --memory with xz --memory and made
minor cleanups.
- src/xzdec/xzdec.c | 74 +++++++++++++++++++++++++++++++++++++++----------------
- 1 file changed, 53 insertions(+), 21 deletions(-)
-
commit 1774f27c61ce294a56712ca2f4785f90a62441bc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-04 22:59:55 +0300
+Date: Thu Jun 4 22:59:55 2009 +0300
Fix purporse -> purpose. Thanks to Andrew Dudman.
Released .xz spec 1.0.2 due to this fix too.
- THANKS | 1 +
- doc/xz-file-format.txt | 8 +++++---
- src/liblzma/liblzma.pc.in | 2 +-
- windows/Makefile | 2 +-
- 4 files changed, 8 insertions(+), 5 deletions(-)
-
commit cb613455642f48fb51059e22018615f64c59b70f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-06-01 14:53:57 +0300
+Date: Mon Jun 1 14:53:57 2009 +0300
The .xz file format version 1.0.1
- doc/xz-file-format.txt | 29 ++++++++++++++++++++++-------
- 1 file changed, 22 insertions(+), 7 deletions(-)
-
commit 083c23c680ff844846d177cfc58bb7a874e7e6b9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-26 14:48:48 +0300
+Date: Tue May 26 14:48:48 2009 +0300
Make the raw value of the Check field available to applications
via lzma_block structure.
@@ -6370,57 +6148,36 @@
This changes ABI but not doesn't break API.
- src/liblzma/api/lzma/block.h | 17 ++++++++++++++++
- src/liblzma/common/block_buffer_encoder.c | 1 +
- src/liblzma/common/block_decoder.c | 34 ++++++++++++++-----------------
- src/liblzma/common/block_encoder.c | 21 ++++++++-----------
- 4 files changed, 42 insertions(+), 31 deletions(-)
-
commit b4f5c814090dc07d4350453576305e41eb9c998d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-23 16:57:21 +0300
+Date: Sat May 23 16:57:21 2009 +0300
Remove undocumented alternative option names --bcj, --ppc,
and --itanium.
- src/xz/args.c | 3 ---
- 1 file changed, 3 deletions(-)
-
commit b1edee2cdc7ef4411b1a21c07094ec763f071281
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-23 15:12:23 +0300
+Date: Sat May 23 15:12:23 2009 +0300
Add support for specifying the BCJ filter start offset
in the xz command line tool.
- src/xz/args.c | 36 +++++++++++++++++++++---------------
- src/xz/message.c | 14 ++++++++------
- src/xz/options.c | 40 ++++++++++++++++++++++++++++++++++++++++
- src/xz/options.h | 7 +++++++
- 4 files changed, 76 insertions(+), 21 deletions(-)
-
commit 72aa0e9c5f4289f10ef5bf240a9448d3017f1ceb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-23 14:51:09 +0300
+Date: Sat May 23 14:51:09 2009 +0300
Updated THANKS.
- THANKS | 2 ++
- 1 file changed, 2 insertions(+)
-
commit dcedb6998cefeca6597dd1219328a3abf5acf66d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-22 16:40:50 +0300
+Date: Fri May 22 16:40:50 2009 +0300
Added support for --quiet and --no-warn to xzdec.
Cleaned up the --help message a little.
- src/xzdec/xzdec.c | 76 +++++++++++++++++++++++++++++++++++--------------------
- 1 file changed, 49 insertions(+), 27 deletions(-)
-
commit 5f735dae80aa629853f4831d7b84ec1c614979eb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-22 15:11:52 +0300
+Date: Fri May 22 15:11:52 2009 +0300
Use the 40 % of RAM memory usage limit in xzdec too.
@@ -6427,42 +6184,27 @@
Update the memory usage info text in --help to match
the text in xz --long-help.
- src/xzdec/xzdec.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
commit b60376249e0c586910c4121fab4f791820cc1289
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-22 14:43:00 +0300
+Date: Fri May 22 14:43:00 2009 +0300
Add --no-warn.
- src/xz/args.c | 8 +++++++-
- src/xz/main.c | 17 +++++++++++++++++
- src/xz/main.h | 6 ++++++
- src/xz/message.c | 4 ++++
- 4 files changed, 34 insertions(+), 1 deletion(-)
-
commit b4f92f522d4b854c0adb7c38be7531e1a6a7b008
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-22 14:27:40 +0300
+Date: Fri May 22 14:27:40 2009 +0300
Fix a comment.
- src/xz/main.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 4dd21d23f22569285ae706b58b0e5904b8db1839
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-22 14:21:20 +0300
+Date: Fri May 22 14:21:20 2009 +0300
Remove the --info option, which was an alias for --list.
- src/xz/args.c | 1 -
- 1 file changed, 1 deletion(-)
-
commit 8836139b63ce774bdd62abf17ab69b290e08229e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-22 12:27:43 +0300
+Date: Fri May 22 12:27:43 2009 +0300
If xz is run as lzma, unlzma, or lzcat, simply imply
--format=lzma. This means that xz emulating lzma
@@ -6470,12 +6212,9 @@
commit it did. The new way is slightly simpler in
code and especially in upcoming documentation.
- src/xz/args.c | 17 ++++++-----------
- 1 file changed, 6 insertions(+), 11 deletions(-)
-
commit b0063023f8adb06ea735ec4af5c6f5b7bdb8e84d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-22 11:29:50 +0300
+Date: Fri May 22 11:29:50 2009 +0300
Make the default memory usage limit 40 % of RAM for both
compressing and decompressing. This should be OK now that
@@ -6494,16 +6233,9 @@
Cleaned up the output of --help and --long-help.
- src/xz/args.c | 28 +++++++++++++-----
- src/xz/hardware.c | 86 +++++++++++++++++++++++--------------------------------
- src/xz/hardware.h | 10 +++----
- src/xz/message.c | 28 +++++++++---------
- src/xz/process.c | 18 +++++-------
- 5 files changed, 82 insertions(+), 88 deletions(-)
-
commit 071b825b23911a69dd1cd2f8cda004ef8a781fae
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-21 17:22:01 +0300
+Date: Thu May 21 17:22:01 2009 +0300
Support special value "max" where xz and xzdec accept an integer.
Don't round the memory usage limit in xzdec --help to avoid
@@ -6510,13 +6242,9 @@
an integer overflow and to not give wrong impression that
the limit is high enough when it may not actually be.
- src/xz/util.c | 4 ++++
- src/xzdec/xzdec.c | 6 +++++-
- 2 files changed, 9 insertions(+), 1 deletion(-)
-
commit 03ca67fd37dd43fa7f590de340899cd497c10802
Author: ABCD <en.abcd at gmail.com>
-Date: 2009-05-20 17:31:18 -0400
+Date: Wed May 20 17:31:18 2009 -0400
Install lzdiff, lzgrep, and lzmore as symlinks
@@ -6524,69 +6252,44 @@
It also installs symlinks for the manual pages and removes the new
symlinks on uninstall.
- src/scripts/Makefile.am | 16 ++++++++++++++--
- 1 file changed, 14 insertions(+), 2 deletions(-)
-
commit a6f43e64128a6da5cd641de1e1e527433b3e5638
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-02 16:10:14 +0300
+Date: Sat May 2 16:10:14 2009 +0300
Use a GCC-specific #pragma instead of GCC-specific
-Wno-uninitialized to silence a bogus warning.
- configure.ac | 13 -------------
- src/liblzma/check/Makefile.am | 5 -----
- src/liblzma/check/sha256.c | 5 +++++
- 3 files changed, 5 insertions(+), 18 deletions(-)
-
commit f6ce63ebdb45a857c8949960c83c9580ae888951
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-02 14:46:50 +0300
+Date: Sat May 2 14:46:50 2009 +0300
Removed --disable-encoder and --disable-decoder. Use the values
given to --enable-encoders and --enable-decoders to determine
if any encoder or decoder support is wanted.
- configure.ac | 48 ++++++++----------------------------------------
- 1 file changed, 8 insertions(+), 40 deletions(-)
-
commit be06858d5cf8ba46557395035d821dc332f3f830
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-01 11:28:52 +0300
+Date: Fri May 1 11:28:52 2009 +0300
Remove docs that are too outdated to be updated
(rewrite will be better).
- doc/liblzma-advanced.txt | 324 -----------------------------------------------
- doc/liblzma-hacking.txt | 112 ----------------
- doc/liblzma-intro.txt | 194 ----------------------------
- doc/liblzma-security.txt | 219 --------------------------------
- doc/lzma-intro.txt | 107 ----------------
- 5 files changed, 956 deletions(-)
-
commit 0255401e57c96af87c6b159eca28974e79430a82
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-01 11:21:46 +0300
+Date: Fri May 1 11:21:46 2009 +0300
Added documentation about the legacy .lzma file format.
- doc/lzma-file-format.txt | 166 +++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 166 insertions(+)
-
commit 1496ff437c46f38303e0e94c511ca604b3a11f85
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-05-01 11:20:23 +0300
+Date: Fri May 1 11:20:23 2009 +0300
Renamed the file format specification to xz-file-format.txt
which is the filename used on the WWW.
- doc/file-format.txt | 1127 ------------------------------------------------
- doc/xz-file-format.txt | 1127 ++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 1127 insertions(+), 1127 deletions(-)
-
commit 21c6b94373d239d7e86bd480fcd558e30391712f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-04-28 23:08:32 +0300
+Date: Tue Apr 28 23:08:32 2009 +0300
Fixed a crash in liblzma.
@@ -6601,22 +6304,9 @@
a single xz command. The first file should have e.g. x86+LZMA2
as the filter chain, and the second file just LZMA2.
- src/liblzma/common/alone_decoder.c | 2 +-
- src/liblzma/common/alone_encoder.c | 4 ++--
- src/liblzma/common/auto_decoder.c | 2 +-
- src/liblzma/common/block_decoder.c | 2 +-
- src/liblzma/common/block_encoder.c | 2 +-
- src/liblzma/common/common.h | 4 ++--
- src/liblzma/common/easy_encoder.c | 2 +-
- src/liblzma/common/index_decoder.c | 2 +-
- src/liblzma/common/index_encoder.c | 2 +-
- src/liblzma/common/stream_decoder.c | 2 +-
- src/liblzma/common/stream_encoder.c | 2 +-
- 11 files changed, 13 insertions(+), 13 deletions(-)
-
commit e518d167aa5958e469982f4fb3a24b9b6a2b5d1c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-04-15 14:13:38 +0300
+Date: Wed Apr 15 14:13:38 2009 +0300
Fix uint32_t -> size_t in ARM and ARM-Thumb filters.
@@ -6623,267 +6313,34 @@
On 64-bit system it would have gone into infinite
loop if a single input buffer was over 4 GiB (unlikely).
- src/liblzma/simple/arm.c | 2 +-
- src/liblzma/simple/armthumb.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit 31decdce041581e57c0d8a407d4795b114ef27ca
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-04-14 11:48:46 +0300
+Date: Tue Apr 14 11:48:46 2009 +0300
Minor fixes to test files' README.
- tests/files/README | 17 +++++++++--------
- 1 file changed, 9 insertions(+), 8 deletions(-)
-
commit 4787d654434891c7df5b43959b0d2873718f06e0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-04-13 16:36:41 +0300
+Date: Mon Apr 13 16:36:41 2009 +0300
Updated history.txt.
- doc/history.txt | 123 ++++++++++++++++++++++++++++++--------------------------
- 1 file changed, 66 insertions(+), 57 deletions(-)
-
commit 2f0bc9cd40f709152a0177c8e585c0757e9af9c9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-04-13 14:49:48 +0300
+Date: Mon Apr 13 14:49:48 2009 +0300
Quick & dirty update to support xz in diff/grep/more scripts.
- src/scripts/Makefile.am | 38 +++++++++------
- src/scripts/lzdiff | 67 --------------------------
- src/scripts/lzdiff.1 | 51 --------------------
- src/scripts/lzgrep | 123 ------------------------------------------------
- src/scripts/lzgrep.1 | 61 ------------------------
- src/scripts/lzmore | 74 -----------------------------
- src/scripts/lzmore.1 | 55 ----------------------
- src/scripts/xzdiff | 67 ++++++++++++++++++++++++++
- src/scripts/xzdiff.1 | 58 +++++++++++++++++++++++
- src/scripts/xzgrep | 123 ++++++++++++++++++++++++++++++++++++++++++++++++
- src/scripts/xzgrep.1 | 77 ++++++++++++++++++++++++++++++
- src/scripts/xzmore | 74 +++++++++++++++++++++++++++++
- src/scripts/xzmore.1 | 66 ++++++++++++++++++++++++++
- 13 files changed, 489 insertions(+), 445 deletions(-)
-
commit 02ddf09bc3079b3e17297729b9e43f14d407b8fc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-04-13 11:27:40 +0300
+Date: Mon Apr 13 11:27:40 2009 +0300
Put the interesting parts of XZ Utils into the public domain.
Some minor documentation cleanups were made at the same time.
- COPYING | 67 ++++++++++++++++++++------
- ChangeLog | 2 +-
- Doxyfile.in | 8 +--
- Makefile.am | 13 ++---
- autogen.sh | 9 ++++
- configure.ac | 13 ++---
- debug/Makefile.am | 13 ++---
- debug/crc32.c | 13 ++---
- debug/full_flush.c | 13 ++---
- debug/hex2bin.c | 7 ++-
- debug/known_sizes.c | 13 ++---
- debug/memusage.c | 13 ++---
- debug/repeat.c | 13 ++---
- debug/sync_flush.c | 13 ++---
- doc/faq.txt | 38 ++-------------
- lib/Makefile.am | 18 +++----
- src/Makefile.am | 13 ++---
- src/common/bswap.h | 7 ++-
- src/common/cpucores.h | 7 ++-
- src/common/integer.h | 7 ++-
- src/common/mythread.h | 4 +-
- src/common/open_stdxxx.h | 7 ++-
- src/common/physmem.h | 7 ++-
- src/common/sysdefs.h | 13 ++---
- src/liblzma/Makefile.am | 13 ++---
- src/liblzma/api/Makefile.am | 13 ++---
- src/liblzma/api/lzma.h | 38 +++++++++------
- src/liblzma/api/lzma/base.h | 20 +++-----
- src/liblzma/api/lzma/bcj.h | 18 +++----
- src/liblzma/api/lzma/block.h | 18 +++----
- src/liblzma/api/lzma/check.h | 18 +++----
- src/liblzma/api/lzma/container.h | 18 +++----
- src/liblzma/api/lzma/delta.h | 18 +++----
- src/liblzma/api/lzma/filter.h | 18 +++----
- src/liblzma/api/lzma/index.h | 18 +++----
- src/liblzma/api/lzma/index_hash.h | 22 +++------
- src/liblzma/api/lzma/lzma.h | 18 +++----
- src/liblzma/api/lzma/stream_flags.h | 18 +++----
- src/liblzma/api/lzma/subblock.h | 18 +++----
- src/liblzma/api/lzma/version.h | 18 +++----
- src/liblzma/api/lzma/vli.h | 46 ++++++++----------
- src/liblzma/check/Makefile.am | 8 ++-
- src/liblzma/check/check.c | 7 ++-
- src/liblzma/check/check.h | 7 ++-
- src/liblzma/check/crc32_fast.c | 30 +++++-------
- src/liblzma/check/crc32_small.c | 7 ++-
- src/liblzma/check/crc32_table.c | 7 ++-
- src/liblzma/check/crc32_tablegen.c | 7 ++-
- src/liblzma/check/crc32_x86.S | 21 +++++---
- src/liblzma/check/crc64_fast.c | 20 +++-----
- src/liblzma/check/crc64_small.c | 7 ++-
- src/liblzma/check/crc64_table.c | 7 ++-
- src/liblzma/check/crc64_tablegen.c | 7 ++-
- src/liblzma/check/crc64_x86.S | 14 ++++--
- src/liblzma/check/crc_macros.h | 9 ++--
- src/liblzma/check/sha256.c | 23 +++++----
- src/liblzma/common/Makefile.am | 13 ++---
- src/liblzma/common/alone_decoder.c | 13 ++---
- src/liblzma/common/alone_decoder.h | 13 ++---
- src/liblzma/common/alone_encoder.c | 13 ++---
- src/liblzma/common/auto_decoder.c | 13 ++---
- src/liblzma/common/block_buffer_decoder.c | 13 ++---
- src/liblzma/common/block_buffer_encoder.c | 13 ++---
- src/liblzma/common/block_decoder.c | 13 ++---
- src/liblzma/common/block_decoder.h | 13 ++---
- src/liblzma/common/block_encoder.c | 13 ++---
- src/liblzma/common/block_encoder.h | 13 ++---
- src/liblzma/common/block_header_decoder.c | 13 ++---
- src/liblzma/common/block_header_encoder.c | 13 ++---
- src/liblzma/common/block_util.c | 13 ++---
- src/liblzma/common/bsr.h | 7 ++-
- src/liblzma/common/chunk_size.c | 13 ++---
- src/liblzma/common/common.c | 13 ++---
- src/liblzma/common/common.h | 13 ++---
- src/liblzma/common/easy_buffer_encoder.c | 13 ++---
- src/liblzma/common/easy_decoder_memusage.c | 13 ++---
- src/liblzma/common/easy_encoder.c | 13 ++---
- src/liblzma/common/easy_encoder_memusage.c | 13 ++---
- src/liblzma/common/easy_preset.c | 13 ++---
- src/liblzma/common/easy_preset.h | 13 ++---
- src/liblzma/common/filter_buffer_decoder.c | 13 ++---
- src/liblzma/common/filter_buffer_encoder.c | 13 ++---
- src/liblzma/common/filter_common.c | 13 ++---
- src/liblzma/common/filter_common.h | 13 ++---
- src/liblzma/common/filter_decoder.c | 13 ++---
- src/liblzma/common/filter_decoder.h | 13 ++---
- src/liblzma/common/filter_encoder.c | 13 ++---
- src/liblzma/common/filter_encoder.h | 13 ++---
- src/liblzma/common/filter_flags_decoder.c | 13 ++---
- src/liblzma/common/filter_flags_encoder.c | 13 ++---
- src/liblzma/common/index.c | 13 ++---
- src/liblzma/common/index.h | 13 ++---
- src/liblzma/common/index_decoder.c | 13 ++---
- src/liblzma/common/index_encoder.c | 13 ++---
- src/liblzma/common/index_encoder.h | 13 ++---
- src/liblzma/common/index_hash.c | 13 ++---
- src/liblzma/common/stream_buffer_decoder.c | 13 ++---
- src/liblzma/common/stream_buffer_encoder.c | 13 ++---
- src/liblzma/common/stream_decoder.c | 13 ++---
- src/liblzma/common/stream_decoder.h | 13 ++---
- src/liblzma/common/stream_encoder.c | 13 ++---
- src/liblzma/common/stream_encoder.h | 13 ++---
- src/liblzma/common/stream_flags_common.c | 13 ++---
- src/liblzma/common/stream_flags_common.h | 13 ++---
- src/liblzma/common/stream_flags_decoder.c | 13 ++---
- src/liblzma/common/stream_flags_encoder.c | 13 ++---
- src/liblzma/common/vli_decoder.c | 13 ++---
- src/liblzma/common/vli_encoder.c | 13 ++---
- src/liblzma/common/vli_size.c | 13 ++---
- src/liblzma/delta/Makefile.am | 13 ++---
- src/liblzma/delta/delta_common.c | 13 ++---
- src/liblzma/delta/delta_common.h | 13 ++---
- src/liblzma/delta/delta_decoder.c | 13 ++---
- src/liblzma/delta/delta_decoder.h | 13 ++---
- src/liblzma/delta/delta_encoder.c | 13 ++---
- src/liblzma/delta/delta_encoder.h | 13 ++---
- src/liblzma/delta/delta_private.h | 13 ++---
- src/liblzma/lz/Makefile.am | 13 ++---
- src/liblzma/lz/lz_decoder.c | 17 ++-----
- src/liblzma/lz/lz_decoder.h | 17 ++-----
- src/liblzma/lz/lz_encoder.c | 17 ++-----
- src/liblzma/lz/lz_encoder.h | 17 ++-----
- src/liblzma/lz/lz_encoder_hash.h | 13 ++---
- src/liblzma/lz/lz_encoder_mf.c | 17 ++-----
- src/liblzma/lzma/Makefile.am | 13 ++---
- src/liblzma/lzma/fastpos.h | 17 ++-----
- src/liblzma/lzma/fastpos_tablegen.c | 17 ++-----
- src/liblzma/lzma/lzma2_decoder.c | 17 ++-----
- src/liblzma/lzma/lzma2_decoder.h | 17 ++-----
- src/liblzma/lzma/lzma2_encoder.c | 17 ++-----
- src/liblzma/lzma/lzma2_encoder.h | 17 ++-----
- src/liblzma/lzma/lzma_common.h | 17 ++-----
- src/liblzma/lzma/lzma_decoder.c | 17 ++-----
- src/liblzma/lzma/lzma_decoder.h | 17 ++-----
- src/liblzma/lzma/lzma_encoder.c | 17 ++-----
- src/liblzma/lzma/lzma_encoder.h | 17 ++-----
- src/liblzma/lzma/lzma_encoder_optimum_fast.c | 13 ++---
- src/liblzma/lzma/lzma_encoder_optimum_normal.c | 13 ++---
- src/liblzma/lzma/lzma_encoder_presets.c | 13 ++---
- src/liblzma/lzma/lzma_encoder_private.h | 17 ++-----
- src/liblzma/rangecoder/Makefile.am | 13 ++---
- src/liblzma/rangecoder/price.h | 13 ++---
- src/liblzma/rangecoder/price_tablegen.c | 16 ++----
- src/liblzma/rangecoder/range_common.h | 17 ++-----
- src/liblzma/rangecoder/range_decoder.h | 17 ++-----
- src/liblzma/rangecoder/range_encoder.h | 17 ++-----
- src/liblzma/simple/Makefile.am | 13 ++---
- src/liblzma/simple/arm.c | 17 ++-----
- src/liblzma/simple/armthumb.c | 17 ++-----
- src/liblzma/simple/ia64.c | 17 ++-----
- src/liblzma/simple/powerpc.c | 17 ++-----
- src/liblzma/simple/simple_coder.c | 13 ++---
- src/liblzma/simple/simple_coder.h | 14 ++----
- src/liblzma/simple/simple_decoder.c | 13 ++---
- src/liblzma/simple/simple_decoder.h | 13 ++---
- src/liblzma/simple/simple_encoder.c | 13 ++---
- src/liblzma/simple/simple_encoder.h | 13 ++---
- src/liblzma/simple/simple_private.h | 13 ++---
- src/liblzma/simple/sparc.c | 17 ++-----
- src/liblzma/simple/x86.c | 17 ++-----
- src/liblzma/subblock/Makefile.am | 13 ++---
- src/liblzma/subblock/subblock_decoder.c | 13 ++---
- src/liblzma/subblock/subblock_decoder.h | 13 ++---
- src/liblzma/subblock/subblock_decoder_helper.c | 13 ++---
- src/liblzma/subblock/subblock_decoder_helper.h | 13 ++---
- src/liblzma/subblock/subblock_encoder.c | 13 ++---
- src/liblzma/subblock/subblock_encoder.h | 13 ++---
- src/scripts/Makefile.am | 7 +++
- src/xz/Makefile.am | 13 ++---
- src/xz/args.c | 13 ++---
- src/xz/args.h | 13 ++---
- src/xz/hardware.c | 13 ++---
- src/xz/hardware.h | 13 ++---
- src/xz/io.c | 13 ++---
- src/xz/io.h | 13 ++---
- src/xz/list.c | 13 ++---
- src/xz/main.c | 13 ++---
- src/xz/main.h | 13 ++---
- src/xz/message.c | 13 ++---
- src/xz/message.h | 13 ++---
- src/xz/options.c | 13 ++---
- src/xz/options.h | 13 ++---
- src/xz/private.h | 13 ++---
- src/xz/process.c | 13 ++---
- src/xz/process.h | 13 ++---
- src/xz/signals.c | 13 ++---
- src/xz/signals.h | 13 ++---
- src/xz/suffix.c | 13 ++---
- src/xz/suffix.h | 13 ++---
- src/xz/util.c | 13 ++---
- src/xz/util.h | 13 ++---
- src/xzdec/Makefile.am | 13 ++---
- src/xzdec/xzdec.c | 13 ++---
- tests/Makefile.am | 13 ++---
- tests/bcj_test.c | 7 ++-
- tests/create_compress_files.c | 13 ++---
- tests/test_block.c | 13 ++---
- tests/test_block_header.c | 13 ++---
- tests/test_check.c | 13 ++---
- tests/test_compress.sh | 13 ++---
- tests/test_files.sh | 13 ++---
- tests/test_filter_flags.c | 13 ++---
- tests/test_index.c | 13 ++---
- tests/test_stream_flags.c | 13 ++---
- tests/tests.h | 13 ++---
- windows/common.rc | 2 +-
- 206 files changed, 868 insertions(+), 2023 deletions(-)
-
commit e79c42d854657ae7f75613bd80c1a35ff7c525cb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-04-10 11:17:02 +0300
+Date: Fri Apr 10 11:17:02 2009 +0300
Fix off-by-one in LZ decoder.
@@ -6890,90 +6347,62 @@
Fortunately, this bug had no security risk other than accepting
some corrupt files as valid.
- src/liblzma/lz/lz_decoder.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 94eb9ad46f1fded6d8369cf3d38bb9754c1375af
Author: Pavel Roskin <proski at gnu.org>
-Date: 2009-03-31 12:15:01 -0400
+Date: Tue Mar 31 12:15:01 2009 -0400
Fix minor typos in README
- README | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
commit 9bab5336ebd765ec4e12252f416eefdf04eba750
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-03-31 21:52:51 +0300
+Date: Tue Mar 31 21:52:51 2009 +0300
Add a note and work-around instructions to README about
problems detecting a C99 compiler when some standard
headers are missing.
- README | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
commit a0497ff7a06f9350349264fe9b52dfefc6d53ead
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-03-18 16:54:38 +0200
+Date: Wed Mar 18 16:54:38 2009 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 390e69887fc5e0a108eb41203bed9acd100a3d76
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-03-18 16:51:41 +0200
+Date: Wed Mar 18 16:51:41 2009 +0200
Fix wrong macro names in lc_cpucores.m4 and cpucores.h.
Thanks to Bert Wesarg.
- m4/lc_cpucores.m4 | 4 ++--
- src/common/cpucores.h | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
commit 0df9299e2478c2a0c62c05b1ae14a85a353e20d6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-03-01 09:03:08 +0200
+Date: Sun Mar 1 09:03:08 2009 +0200
Test for Linux-specific sysinfo() only on Linux systems.
Some other systems have sysinfo() with different semantics.
- m4/lc_physmem.m4 | 28 +++++++++++++++++++---------
- 1 file changed, 19 insertions(+), 9 deletions(-)
-
commit cf751edfde3ad6e088dc18e0522d31ae38405933
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-03-01 09:00:06 +0200
+Date: Sun Mar 1 09:00:06 2009 +0200
Added AC_CONFIG_MACRO_DIR to configure.ac.
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
commit 63df14c57dee7c461717784287056688482a7eb9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-03-01 08:58:41 +0200
+Date: Sun Mar 1 08:58:41 2009 +0200
Fix the Autoconf test for getopt_long replacement.
It was broken by e114502b2bc371e4a45449832cb69be036360722.
- m4/getopt.m4 | 4 ++++
- 1 file changed, 4 insertions(+)
-
commit fd6a380f4eda4f00be5f2aa8d222992cd74a714f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-22 19:07:54 +0200
+Date: Sun Feb 22 19:07:54 2009 +0200
Add a rough explanation of --extreme to output of --help.
- src/xz/message.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
commit 68bf7ac2984d3627369a240ef0491934d53f7899
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-22 18:52:49 +0200
+Date: Sun Feb 22 18:52:49 2009 +0200
Fixes to progress message handling in xz:
@@ -6985,62 +6414,36 @@
- Fix some small design issues.
- src/xz/message.c | 483 +++++++++++++++++++++++++++++++++++--------------------
- src/xz/message.h | 28 ++--
- src/xz/process.c | 53 +++---
- 3 files changed, 351 insertions(+), 213 deletions(-)
-
commit 47c2e21f82242f50f18713a27d644c2c94ab3fea
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-18 13:00:10 +0200
+Date: Wed Feb 18 13:00:10 2009 +0200
Added files missing from the previous commit.
- src/liblzma/api/lzma/container.h | 33 +++++++++++++++++++++++++++++++++
- src/liblzma/common/Makefile.am | 7 ++++++-
- 2 files changed, 39 insertions(+), 1 deletion(-)
-
commit 489a3dbaa0465f04400804e956a1cfbbee3654a2
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-17 10:43:00 +0200
+Date: Tue Feb 17 10:43:00 2009 +0200
Added lzma_easy_buffer_encode(). Splitted easy.c into small
pieces to avoid unneeded dependencies making statically
linked applications bigger than needed.
- dos/Makefile | 6 +-
- src/liblzma/common/easy.c | 128 -----------------------------
- src/liblzma/common/easy_buffer_encoder.c | 34 ++++++++
- src/liblzma/common/easy_decoder_memusage.c | 31 +++++++
- src/liblzma/common/easy_encoder.c | 87 ++++++++++++++++++++
- src/liblzma/common/easy_encoder_memusage.c | 31 +++++++
- src/liblzma/common/easy_preset.c | 34 ++++++++
- src/liblzma/common/easy_preset.h | 39 +++++++++
- windows/Makefile | 6 +-
- 9 files changed, 266 insertions(+), 130 deletions(-)
-
commit 7494816ab08d82f4d6409788825930c4e43cfd0d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-15 15:48:45 +0200
+Date: Sun Feb 15 15:48:45 2009 +0200
Make physmem.h work on old Windows versions.
Thanks to Hongbo Ni for the original patch.
- src/common/physmem.h | 31 +++++++++++++++++++++++++++----
- 1 file changed, 27 insertions(+), 4 deletions(-)
-
commit 11ae4ae35fd70182c713f2d914b7cb1143bc76f0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-14 20:44:52 +0200
+Date: Sat Feb 14 20:44:52 2009 +0200
Fix microsecond vs. nanosecond confusion in my_time().
- src/xz/message.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 3084d662d2646ab7eb58daf0dc32cf3f9a74eec7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-14 00:45:29 +0200
+Date: Sat Feb 14 00:45:29 2009 +0200
Cleanups to the code that detects the amount of RAM and
the number of CPU cores. Added support for using sysinfo()
@@ -7051,45 +6454,23 @@
isn't used for anything real for now, so a problematic
part in process.c was commented out.
- configure.ac | 89 ++-------------------------------------------------
- m4/lc_cpucores.m4 | 57 +++++++++++++++++++++++++++++++++
- m4/lc_physmem.m4 | 74 ++++++++++++++++++++++++++++++++++++++++++
- src/common/cpucores.h | 52 ++++++++++++++++++++++++++++++
- src/common/physmem.h | 21 +++++++-----
- src/xz/args.c | 4 +--
- src/xz/hardware.c | 50 +++++++++++++----------------
- src/xz/hardware.h | 11 +++++--
- src/xz/message.c | 5 +--
- src/xz/process.c | 2 ++
- 10 files changed, 235 insertions(+), 130 deletions(-)
-
commit 9c62371eab2706c46b1072f5935e28cb4cd9dca8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-13 18:23:50 +0200
+Date: Fri Feb 13 18:23:50 2009 +0200
Initial port to DOS using DJGPP.
- dos/Makefile | 261 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- dos/README | 113 ++++++++++++++++++++++++++
- dos/config.h | 150 ++++++++++++++++++++++++++++++++++
- 3 files changed, 524 insertions(+)
-
commit 0dae8b7751d09e9c5a482d5519daaee4800ce203
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-13 18:02:05 +0200
+Date: Fri Feb 13 18:02:05 2009 +0200
Windows port: Take advantage of the version number macros.
Now the version number is not duplicated in the
Windows-specific files anymore.
- windows/Makefile | 2 +-
- windows/common.rc | 16 ++++++++--------
- windows/config.h | 15 ---------------
- 3 files changed, 9 insertions(+), 24 deletions(-)
-
commit fdbc0cfa71f7d660855098a609175ba384259529
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-13 18:00:03 +0200
+Date: Fri Feb 13 18:00:03 2009 +0200
Changed how the version number is specified in various places.
Now configure.ac will get the version number directly from
@@ -7097,112 +6478,64 @@
number of places where the version number is duplicated. In
future, support for displaying Git commit ID may be added too.
- configure.ac | 3 +-
- src/liblzma/api/lzma/version.h | 70 ++++++++++++++++++++++++++++++++++++++++--
- src/liblzma/common/common.c | 2 +-
- src/xz/message.c | 2 +-
- src/xzdec/xzdec.c | 2 +-
- version.sh | 23 ++++++++++++++
- 6 files changed, 95 insertions(+), 7 deletions(-)
-
commit 1d924e584b146136989f48c13fff2632896efb3d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-13 17:30:30 +0200
+Date: Fri Feb 13 17:30:30 2009 +0200
Fix handling of integrity check type in the xz command line tool.
- src/xz/args.c | 9 ++++++++-
- src/xz/process.c | 4 ++++
- 2 files changed, 12 insertions(+), 1 deletion(-)
-
commit 96c46df7deb231ea68a03d8d1da9de4c774e36d8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-13 17:29:02 +0200
+Date: Fri Feb 13 17:29:02 2009 +0200
Improve support for DOS-like systems.
Here DOS-like means DOS, Windows, and OS/2.
- src/common/physmem.h | 12 ++++++++++++
- src/common/sysdefs.h | 4 ++++
- src/liblzma/check/crc32_x86.S | 6 +++---
- src/liblzma/check/crc64_x86.S | 6 +++---
- src/xz/args.c | 13 +++++--------
- src/xz/io.c | 39 +++++++++++++++++++++++++--------------
- src/xz/main.c | 23 +++++++++++++++++++++++
- src/xz/message.c | 3 +++
- src/xz/suffix.c | 5 +++++
- src/xzdec/xzdec.c | 5 +++--
- 10 files changed, 86 insertions(+), 30 deletions(-)
-
commit b6a30ee8c2de60ecd722cd05223e4ba72f822e33
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-11 20:02:32 +0200
+Date: Wed Feb 11 20:02:32 2009 +0200
Remove dead directories from .gitignore.
- .gitignore | 2 --
- 1 file changed, 2 deletions(-)
-
commit 1ec5b0027911d94cb6f98892cbc690f818d8a861
Author: Jim Meyering <jim at meyering.net>
-Date: 2009-02-11 14:45:14 +0100
+Date: Wed Feb 11 14:45:14 2009 +0100
.gitignore vs. Makefiles
How about this for those of us who do srcdir builds?
- .gitignore | 22 ++++++++++++++++++++++
- 1 file changed, 22 insertions(+)
-
commit 154f5aec2de201c674841de4fcc9804c2a87af07
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-10 21:48:35 +0200
+Date: Tue Feb 10 21:48:35 2009 +0200
Removed Makefile from .gitignore since not all Makefiles
in the repository are generated by Autotools. People
should do test builds in a separate build directory anyway.
- .gitignore | 1 -
- 1 file changed, 1 deletion(-)
-
commit e605c2663691b0a4c307786aa368d124ea081daa
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-10 21:48:05 +0200
+Date: Tue Feb 10 21:48:05 2009 +0200
Added resource files for the Windows build.
- windows/Makefile | 37 ++++++++++++++++++++++---------------
- windows/common.rc | 46 ++++++++++++++++++++++++++++++++++++++++++++++
- windows/liblzma.rc | 5 +++++
- windows/lzmadec.rc | 5 +++++
- windows/xz.rc | 5 +++++
- windows/xzdec.rc | 5 +++++
- 6 files changed, 88 insertions(+), 15 deletions(-)
-
commit a3bbbe05d32b1f7ea9eb98805df4dda2e811b476
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-09 14:54:31 +0200
+Date: Mon Feb 9 14:54:31 2009 +0200
Let the user specify custom CFLAGS on the make command
line. Previously custom CFLAGS worked only when they were
passed to configure.
- configure.ac | 58 ++++++++++++++++++++++---------------------
- src/liblzma/check/Makefile.am | 2 +-
- 2 files changed, 31 insertions(+), 29 deletions(-)
-
commit 53f7598998b1860a69c51243b5d2e34623c6bf60
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-08 21:35:11 +0200
+Date: Sun Feb 8 21:35:11 2009 +0200
Fix aliasing issue in physmem.h.
- src/common/physmem.h | 19 ++++++++++---------
- 1 file changed, 10 insertions(+), 9 deletions(-)
-
commit 0e27028d74c5c7a8e036ae2a9b8cecb0ac79d3a6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-08 18:24:50 +0200
+Date: Sun Feb 8 18:24:50 2009 +0200
Add a separate internal function to initialize the CRC32
table, which is used also by LZ encoder. This was needed
@@ -7209,53 +6542,36 @@
because calling lzma_crc32() and ignoring the result is
a no-op due to lzma_attr_pure.
- src/liblzma/check/check.h | 1 +
- src/liblzma/check/crc32_small.c | 10 +++++++++-
- src/liblzma/lz/lz_encoder.c | 4 ++--
- 3 files changed, 12 insertions(+), 3 deletions(-)
-
commit ae1ad9af54210c9a2be336b1316532da5071516c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-08 18:17:05 +0200
+Date: Sun Feb 8 18:17:05 2009 +0200
Make "xz --force" to write to terminal as the error
message suggests.
- src/xz/main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 79e25eded48d2fe33f31441ab7a034f902e335f8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-08 10:37:50 +0200
+Date: Sun Feb 8 10:37:50 2009 +0200
Support both slash and backslash as path component
separator on Windows when parsing argv[0].
- src/xz/args.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
commit bc7c7109cc4410055a888c1c70cbd1c9445c4361
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-07 23:18:13 +0200
+Date: Sat Feb 7 23:18:13 2009 +0200
Omit the wrong and (even if corrected) nowadays useless rm
from autogen.sh.
- autogen.sh | 28 ----------------------------
- 1 file changed, 28 deletions(-)
-
commit edfc2031e56f8a2ccda063f02936b3a848d88723
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-07 21:41:52 +0200
+Date: Sat Feb 7 21:41:52 2009 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 880c3309386aac58fc4f3d7ca99bd31bcb1526a3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-07 21:17:07 +0200
+Date: Sat Feb 7 21:17:07 2009 +0200
Make it easy to choose if command line tools should be
linked statically or dynamically against liblzma. The
@@ -7265,60 +6581,39 @@
Fixed a few minor bugs in configure.ac.
- configure.ac | 39 +++++++++++++++++++++++++++++++++++++++
- src/xz/Makefile.am | 8 +++-----
- src/xzdec/Makefile.am | 5 +++--
- 3 files changed, 45 insertions(+), 7 deletions(-)
-
commit 3f86532407e4ace3debb62be16035e009b56ca36
Author: Mike Frysinger <vapier at gentoo.org>
-Date: 2009-02-06 23:38:39 -0500
+Date: Fri Feb 6 23:38:39 2009 -0500
add gitignore files
Signed-off-by: Mike Frysinger <vapier at gentoo.org>
- .gitignore | 32 ++++++++++++++++++++++++++++++++
- m4/.gitignore | 35 +++++++++++++++++++++++++++++++++++
- po/.gitignore | 12 ++++++++++++
- 3 files changed, 79 insertions(+)
-
commit bd7ca1dad5c146b6217799ffaa230c32d207a3e5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-07 17:07:52 +0200
+Date: Sat Feb 7 17:07:52 2009 +0200
Assume 32 MiB of RAM on unsupported operating systems like
the comment in hardware.c already said.
- src/xz/hardware.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit d0ab8c1c73ae712adb0d26fbb9da762d99a63618
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-07 16:26:58 +0200
+Date: Sat Feb 7 16:26:58 2009 +0200
MinGW support: Don't build fastpos_tablegen.c as part of
liblzma. Build both static and dynamic liblzma, and also
static and dynamic versions of the command line tools.
- windows/Makefile | 92 ++++++++++++++++++++++++++++++++++++++++++--------------
- windows/README | 10 ------
- 2 files changed, 69 insertions(+), 33 deletions(-)
-
commit bfd91198e44a52bd9bfe3cd6dcae5edab7c6eb45
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-07 15:55:47 +0200
+Date: Sat Feb 7 15:55:47 2009 +0200
Support LZMA_API_STATIC in assembler files to
avoid __declspec(dllexport) equivalent.
- src/liblzma/check/crc32_x86.S | 4 ++++
- src/liblzma/check/crc64_x86.S | 2 ++
- 2 files changed, 6 insertions(+)
-
commit 3306cf3883492720b3c34baa02f4eb4227d91c73
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-07 11:11:50 +0200
+Date: Sat Feb 7 11:11:50 2009 +0200
Introduced LZMA_API_STATIC macro, which the applications
need to #define when linking against static liblzma on
@@ -7325,42 +6620,28 @@
platforms like Windows. Most developers don't need to
care about LZMA_API_STATIC at all.
- src/liblzma/api/lzma.h | 31 ++++++++++++++++++++++++-------
- src/liblzma/common/common.h | 2 +-
- 2 files changed, 25 insertions(+), 8 deletions(-)
-
commit b719e63c5f4c91d2d5e2ea585d4c055ec3767d0b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-06 16:55:45 +0200
+Date: Fri Feb 6 16:55:45 2009 +0200
Another grammar fix
- README | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit fe5434f940f75fec3611cf9d9edf78c4da8ac760
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-06 12:30:23 +0200
+Date: Fri Feb 6 12:30:23 2009 +0200
Grammar fix in README.
- README | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 3dfa58a9eedf5a0e566452b078801c9cbcf7a245
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-06 10:06:32 +0200
+Date: Fri Feb 6 10:06:32 2009 +0200
Some MSYS installations (e.g. MsysGit) don't include
install.exe, so don't rely on it.
- windows/Makefile | 12 +++++++-----
- windows/README | 11 ++++++-----
- 2 files changed, 13 insertions(+), 10 deletions(-)
-
commit 975d8fd72a5148d46b2e1745f7a211cf1dfd9d31
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-06 09:13:15 +0200
+Date: Fri Feb 6 09:13:15 2009 +0200
Recreated the BCJ test files for x86 and SPARC. The old files
were linked with crt*.o, which are copyrighted, and thus the
@@ -7370,83 +6651,42 @@
The new files are just compiled and assembled object files,
and thus don't contain any copyrighted code.
- tests/bcj_test.c | 2 +-
- tests/compress_prepared_bcj_sparc | Bin 6804 -> 1240 bytes
- tests/compress_prepared_bcj_x86 | Bin 4649 -> 1388 bytes
- tests/files/good-1-sparc-lzma2.xz | Bin 2296 -> 612 bytes
- tests/files/good-1-x86-lzma2.xz | Bin 1936 -> 716 bytes
- 5 files changed, 1 insertion(+), 1 deletion(-)
-
commit 094b1b09a531f0d201ec81f2b07346a995fd80b9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-05 21:21:27 +0200
+Date: Thu Feb 5 21:21:27 2009 +0200
Add the "windows" directory to EXTRA_DIST.
- Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
commit e1c3412eec7acec7ca3b32c9c828f3147dc65b49
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-05 09:17:51 +0200
+Date: Thu Feb 5 09:17:51 2009 +0200
Added initial experimental makefile for use with MinGW.
- windows/Makefile | 253 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
- windows/README | 164 ++++++++++++++++++++++++++++++++++++
- windows/config.h | 180 +++++++++++++++++++++++++++++++++++++++
- 3 files changed, 597 insertions(+)
-
commit 75905a9afc0ee89954ede7d08af70d1148bf0fd9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-05 09:12:57 +0200
+Date: Thu Feb 5 09:12:57 2009 +0200
Various code cleanups the the xz command line tool.
It now builds with MinGW.
- src/common/physmem.h | 13 ++++
- src/xz/Makefile.am | 2 +
- src/xz/args.h | 8 ---
- src/xz/hardware.h | 10 +--
- src/xz/io.c | 93 +++++++++++++++++++-------
- src/xz/io.h | 12 ++--
- src/xz/main.c | 132 ++-----------------------------------
- src/xz/main.h | 22 -------
- src/xz/message.c | 65 ++++++++++++++++---
- src/xz/message.h | 6 --
- src/xz/options.h | 8 ---
- src/xz/private.h | 18 ++++--
- src/xz/process.h | 10 +--
- src/xz/signals.c | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++
- src/xz/signals.h | 51 +++++++++++++++
- src/xz/suffix.h | 5 --
- src/xz/util.c | 5 +-
- src/xz/util.h | 5 --
- 18 files changed, 399 insertions(+), 246 deletions(-)
-
commit d0c0b9e94e0af59d1d8f7f4829695d6efe19ccfe
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-03 12:15:17 +0200
+Date: Tue Feb 3 12:15:17 2009 +0200
Another utime() fix.
- src/xz/io.c | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
commit ccf92a29e8c7234284f1568c1ec0fd7cb98356ca
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-03 10:41:11 +0200
+Date: Tue Feb 3 10:41:11 2009 +0200
Fix wrong filename argument for utime() and utimes().
This doesn't affect most systems, since most systems
have better functions available.
- src/xz/io.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit 99c1c2abfae2e87f3c17e929783e6d1bb7a3f302
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-02 21:19:01 +0200
+Date: Mon Feb 2 21:19:01 2009 +0200
Updated the x86 assembler code:
- Use call/ret pair to get instruction pointer for PIC.
@@ -7454,14 +6694,9 @@
- The code should work on MinGW and Darwin in addition
to GNU/Linux and Solaris.
- configure.ac | 6 ----
- src/liblzma/check/crc32_x86.S | 84 ++++++++++++++++++++++++++++++++++++-------
- src/liblzma/check/crc64_x86.S | 82 ++++++++++++++++++++++++++++++++++++------
- 3 files changed, 144 insertions(+), 28 deletions(-)
-
commit 22a0c6dd940b78cdac2f4a4b4b0e7cc0ac15021f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-02 20:14:03 +0200
+Date: Mon Feb 2 20:14:03 2009 +0200
Modify LZMA_API macro so that it works on Windows with
other compilers than MinGW. This may hurt readability
@@ -7468,193 +6703,83 @@
of the API headers slightly, but I don't know any
better way to do this.
- src/liblzma/api/lzma.h | 6 ++---
- src/liblzma/api/lzma/base.h | 11 ++++----
- src/liblzma/api/lzma/block.h | 22 ++++++++--------
- src/liblzma/api/lzma/check.h | 10 ++++----
- src/liblzma/api/lzma/container.h | 22 ++++++++--------
- src/liblzma/api/lzma/filter.h | 28 ++++++++++-----------
- src/liblzma/api/lzma/index.h | 40 +++++++++++++++---------------
- src/liblzma/api/lzma/index_hash.h | 10 ++++----
- src/liblzma/api/lzma/lzma.h | 6 ++---
- src/liblzma/api/lzma/stream_flags.h | 10 ++++----
- src/liblzma/api/lzma/version.h | 4 +--
- src/liblzma/api/lzma/vli.h | 6 ++---
- src/liblzma/check/check.c | 4 +--
- src/liblzma/check/crc32_fast.c | 2 +-
- src/liblzma/check/crc32_small.c | 2 +-
- src/liblzma/check/crc64_fast.c | 2 +-
- src/liblzma/check/crc64_small.c | 2 +-
- src/liblzma/common/alone_decoder.c | 2 +-
- src/liblzma/common/alone_encoder.c | 2 +-
- src/liblzma/common/auto_decoder.c | 2 +-
- src/liblzma/common/block_buffer_decoder.c | 2 +-
- src/liblzma/common/block_buffer_encoder.c | 4 +--
- src/liblzma/common/block_decoder.c | 2 +-
- src/liblzma/common/block_encoder.c | 2 +-
- src/liblzma/common/block_header_decoder.c | 2 +-
- src/liblzma/common/block_header_encoder.c | 4 +--
- src/liblzma/common/block_util.c | 6 ++---
- src/liblzma/common/chunk_size.c | 2 +-
- src/liblzma/common/common.c | 16 ++++++------
- src/liblzma/common/common.h | 2 +-
- src/liblzma/common/easy.c | 6 ++---
- src/liblzma/common/filter_buffer_decoder.c | 2 +-
- src/liblzma/common/filter_buffer_encoder.c | 2 +-
- src/liblzma/common/filter_decoder.c | 8 +++---
- src/liblzma/common/filter_encoder.c | 12 ++++-----
- src/liblzma/common/filter_flags_decoder.c | 2 +-
- src/liblzma/common/filter_flags_encoder.c | 4 +--
- src/liblzma/common/index.c | 32 ++++++++++++------------
- src/liblzma/common/index_decoder.c | 4 +--
- src/liblzma/common/index_encoder.c | 4 +--
- src/liblzma/common/index_hash.c | 10 ++++----
- src/liblzma/common/stream_buffer_decoder.c | 2 +-
- src/liblzma/common/stream_buffer_encoder.c | 4 +--
- src/liblzma/common/stream_decoder.c | 2 +-
- src/liblzma/common/stream_encoder.c | 2 +-
- src/liblzma/common/stream_flags_common.c | 2 +-
- src/liblzma/common/stream_flags_decoder.c | 4 +--
- src/liblzma/common/stream_flags_encoder.c | 4 +--
- src/liblzma/common/vli_decoder.c | 2 +-
- src/liblzma/common/vli_encoder.c | 2 +-
- src/liblzma/common/vli_size.c | 2 +-
- src/liblzma/lz/lz_encoder.c | 2 +-
- src/liblzma/lzma/lzma_encoder.c | 2 +-
- src/liblzma/lzma/lzma_encoder_presets.c | 2 +-
- 54 files changed, 177 insertions(+), 176 deletions(-)
-
commit 8dd7b6052e18621e2e6c62f40f762ee88bd3eb65
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-01 22:40:35 +0200
+Date: Sun Feb 1 22:40:35 2009 +0200
Fix a bug in lzma_block_buffer_decode(), although this
function should be rewritten anyway.
- src/liblzma/common/block_buffer_decoder.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
commit 55fd41431e61fb8178858283d636b6781e33e847
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-01 22:39:07 +0200
+Date: Sun Feb 1 22:39:07 2009 +0200
Added initial version of raw buffer-to-buffer coding
functions, and cleaned up filter.h API header a little.
May be very buggy, not tested yet.
- src/liblzma/api/lzma/filter.h | 84 +++++++++++++++++++-------
- src/liblzma/common/Makefile.am | 2 +
- src/liblzma/common/filter_buffer_decoder.c | 94 ++++++++++++++++++++++++++++++
- src/liblzma/common/filter_buffer_encoder.c | 61 +++++++++++++++++++
- 4 files changed, 221 insertions(+), 20 deletions(-)
-
commit 3e54ecee5cad30a5ca361a88a99230407abc0699
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-01 00:11:20 +0200
+Date: Sun Feb 1 00:11:20 2009 +0200
Fix missing newlines in xzdec.c.
- src/xzdec/xzdec.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
commit d64ca34f1b6f34e86adefc7f735b4eff8e6d4a35
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-02-01 00:10:07 +0200
+Date: Sun Feb 1 00:10:07 2009 +0200
Use __cdecl also for function pointers in liblzma API when
on Windows.
- src/liblzma/api/lzma.h | 18 +++++++++++-------
- src/liblzma/api/lzma/base.h | 4 ++--
- src/liblzma/common/common.h | 18 +++++++-----------
- 3 files changed, 20 insertions(+), 20 deletions(-)
-
commit 6a2eb54092fc625d59921a607ff68cd1a90aa898
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-31 11:01:48 +0200
+Date: Sat Jan 31 11:01:48 2009 +0200
Add LZMA_API to liblzma API headers. It's useful at least
on Windows. sysdefs.h no longer #includes lzma.h, so lzma.h
has to be #included separately where needed.
- src/common/sysdefs.h | 2 --
- src/liblzma/api/lzma.h | 17 ++++++++++++++
- src/liblzma/api/lzma/base.h | 10 ++++----
- src/liblzma/api/lzma/block.h | 25 +++++++++++---------
- src/liblzma/api/lzma/check.h | 12 ++++++----
- src/liblzma/api/lzma/container.h | 23 +++++++++---------
- src/liblzma/api/lzma/filter.h | 24 +++++++++----------
- src/liblzma/api/lzma/index.h | 47 +++++++++++++++++++++----------------
- src/liblzma/api/lzma/index_hash.h | 11 +++++----
- src/liblzma/api/lzma/lzma.h | 8 ++++---
- src/liblzma/api/lzma/stream_flags.h | 10 ++++----
- src/liblzma/api/lzma/version.h | 4 ++--
- src/liblzma/api/lzma/vli.h | 10 ++++----
- src/liblzma/common/common.h | 13 ++++++++--
- src/xz/private.h | 1 +
- src/xzdec/xzdec.c | 1 +
- tests/tests.h | 1 +
- 17 files changed, 131 insertions(+), 88 deletions(-)
-
commit d9993fcb4dfc1f93abaf31ae23b3ef1f3123892b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-31 10:13:09 +0200
+Date: Sat Jan 31 10:13:09 2009 +0200
Use _WIN32 instead of WIN32 in xzdec.c to test if compiling on Windows.
- src/xzdec/xzdec.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit 2dbdc5befb33c3703e4609809101047c67caf343
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-31 10:02:52 +0200
+Date: Sat Jan 31 10:02:52 2009 +0200
Fix two lines in lzma.h on which the # wasn't at the
beginning of the line.
- src/liblzma/api/lzma.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit 4ab760109106dc04f39dd81c97d50f528d1b51c1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-31 09:55:05 +0200
+Date: Sat Jan 31 09:55:05 2009 +0200
Add support for using liblzma headers in MSVC, which has no
stdint.h or inttypes.h.
- src/liblzma/api/lzma.h | 70 +++++++++++++++++++++++++++++++++-----------------
- 1 file changed, 46 insertions(+), 24 deletions(-)
-
commit b2172cf823d3be34cb0246cb4cb32d105e2a34c9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-31 08:49:54 +0200
+Date: Sat Jan 31 08:49:54 2009 +0200
Fix # -> ## in a macro in lzma.h.
- src/liblzma/api/lzma.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 1aae8698746d3c87a93f8398cdde2de9ba1f7208
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-30 18:50:16 +0200
+Date: Fri Jan 30 18:50:16 2009 +0200
Updated README.
- README | 30 ++++++++++++++++++++----------
- 1 file changed, 20 insertions(+), 10 deletions(-)
-
commit f54bcf6f80d585236bc03ce49f7c73e1abaa17eb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-30 00:29:58 +0200
+Date: Fri Jan 30 00:29:58 2009 +0200
Remove dangling crc64_init.c.
- src/liblzma/check/crc64_init.c | 55 ------------------------------------------
- 1 file changed, 55 deletions(-)
-
commit 982da7ed314398420c38bf154a8f759d5f18b480
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-28 17:16:38 +0200
+Date: Wed Jan 28 17:16:38 2009 +0200
The .xz file format specification version 1.0.0 is now
officially released. The format has been technically the same
@@ -7661,213 +6786,124 @@
since 2008-11-19, but now that it is frozen, people can start
using it without a fear that the format will break.
- doc/file-format.txt | 84 +++++++++++++++++++++++++++++++----------------------
- 1 file changed, 49 insertions(+), 35 deletions(-)
-
commit c4683a660b4372156bdaf92f0cdc54a58f95ee6f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-28 08:45:59 +0200
+Date: Wed Jan 28 08:45:59 2009 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 3241317093595db9f79104faafe93cb989c9f858
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-28 08:43:26 +0200
+Date: Wed Jan 28 08:43:26 2009 +0200
Fix uninitialized variables in alone_decoder.c. This bug was
triggered by the previous commit, since these variables were
not used by anything before support for a preset dictionary.
- src/liblzma/common/alone_decoder.c | 2 ++
- 1 file changed, 2 insertions(+)
-
commit f76e39cf930f888d460b443d18f977ebedea8b2a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-27 18:36:05 +0200
+Date: Tue Jan 27 18:36:05 2009 +0200
Added initial support for preset dictionary for raw LZMA1
and LZMA2. It is not supported by the .xz format or the xz
command line tool yet.
- src/liblzma/lz/lz_decoder.c | 35 +++++++++++++++++++++++++----------
- src/liblzma/lz/lz_decoder.h | 9 ++++++++-
- src/liblzma/lz/lz_encoder.c | 18 ++++++++++++++++--
- src/liblzma/lzma/lzma2_decoder.c | 9 ++++++---
- src/liblzma/lzma/lzma2_encoder.c | 12 +++++++-----
- src/liblzma/lzma/lzma_decoder.c | 10 ++++++----
- src/liblzma/lzma/lzma_decoder.h | 2 +-
- src/liblzma/lzma/lzma_encoder.c | 9 ++++++++-
- 8 files changed, 77 insertions(+), 27 deletions(-)
-
commit 449b8c832b26c3633f3bec60095e57d2d3ada1f3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-26 20:09:17 +0200
+Date: Mon Jan 26 20:09:17 2009 +0200
Regenerate the CRC tables without trailing blanks.
- src/liblzma/check/crc32_table_be.h | 1008 +++++++++++++++++------------------
- src/liblzma/check/crc32_table_le.h | 1008 +++++++++++++++++------------------
- src/liblzma/check/crc64_table_be.h | 1016 ++++++++++++++++++------------------
- src/liblzma/check/crc64_table_le.h | 1016 ++++++++++++++++++------------------
- 4 files changed, 2024 insertions(+), 2024 deletions(-)
-
commit 850f7400428dc9c5fd08a2f35a5bd2c9e45aede2
Author: Jim Meyering <meyering at redhat.com>
-Date: 2009-01-19 21:37:16 +0100
+Date: Mon Jan 19 21:37:16 2009 +0100
remove trailing blanks from all but .xz files
- debug/known_sizes.c | 2 +-
- extra/scanlzma/scanlzma.c | 5 ++---
- src/liblzma/check/crc32_tablegen.c | 2 +-
- src/liblzma/check/crc64_tablegen.c | 2 +-
- src/scripts/lzdiff.1 | 4 ++--
- src/scripts/lzmore.1 | 6 +++---
- tests/test_compress.sh | 4 ++--
- 7 files changed, 12 insertions(+), 13 deletions(-)
-
commit 667481f1aad34e1ed15738e7913a9c7e256b4cf5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-26 14:34:10 +0200
+Date: Mon Jan 26 14:34:10 2009 +0200
Add lzma_block_buffer_decode().
- src/liblzma/api/lzma/block.h | 41 +++++++++++++++
- src/liblzma/common/Makefile.am | 1 +
- src/liblzma/common/block_buffer_decoder.c | 87 +++++++++++++++++++++++++++++++
- 3 files changed, 129 insertions(+)
-
commit 5fb34d8324d3e7e0061df25d0086b64c8726b19d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-26 14:33:28 +0200
+Date: Mon Jan 26 14:33:28 2009 +0200
Add more sanity checks to lzma_stream_buffer_decode().
- src/liblzma/common/stream_buffer_decoder.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
commit c129748675a5daa8838df92bde32cc04f6ce61ba
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-26 14:33:13 +0200
+Date: Mon Jan 26 14:33:13 2009 +0200
Avoid hardcoded constant in easy.c.
- src/liblzma/common/easy.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 1859d22d75e072463db74c25bc3f5a7992e5fdf6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-26 13:06:49 +0200
+Date: Mon Jan 26 13:06:49 2009 +0200
Tiny bit better sanity check in block_util.c
- src/liblzma/common/block_util.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 2c5fe958e4bbe9b147b10c255955dfe2827fb8e7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-25 01:35:56 +0200
+Date: Sun Jan 25 01:35:56 2009 +0200
Fix a dumb bug in Block decoder, which made it return
LZMA_DATA_ERROR with valid data. The bug was added in
e114502b2bc371e4a45449832cb69be036360722.
- src/liblzma/common/block_decoder.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
commit c81f13ff29271de7293f8af3d81848b1dcae3d19
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-23 22:27:50 +0200
+Date: Fri Jan 23 22:27:50 2009 +0200
Added lzma_stream_buffer_decode() and made minor cleanups.
- src/liblzma/api/lzma/block.h | 3 +-
- src/liblzma/api/lzma/container.h | 51 ++++++++++++++++-
- src/liblzma/common/Makefile.am | 1 +
- src/liblzma/common/stream_buffer_decoder.c | 91 ++++++++++++++++++++++++++++++
- 4 files changed, 144 insertions(+), 2 deletions(-)
-
commit 0b3318661ce749550b8531dfd469639a08930391
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-22 12:53:33 +0200
+Date: Thu Jan 22 12:53:33 2009 +0200
Fix a comment.
- src/liblzma/common/common.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 9ec80355a7212a0a2f8c89d98e51b1d8b4e34eec
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-20 16:37:27 +0200
+Date: Tue Jan 20 16:37:27 2009 +0200
Add some single-call buffer-to-buffer coding functions.
- src/liblzma/api/lzma/block.h | 57 ++++++
- src/liblzma/api/lzma/container.h | 56 ++++++
- src/liblzma/api/lzma/index.h | 70 ++++++-
- src/liblzma/common/Makefile.am | 2 +
- src/liblzma/common/block_buffer_encoder.c | 305 +++++++++++++++++++++++++++++
- src/liblzma/common/index_decoder.c | 83 ++++++--
- src/liblzma/common/index_encoder.c | 59 +++++-
- src/liblzma/common/stream_buffer_encoder.c | 138 +++++++++++++
- tests/test_index.c | 24 +++
- 9 files changed, 768 insertions(+), 26 deletions(-)
-
commit d8b58d099340f8f4007b24b211ee41a7210c061c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-20 13:45:41 +0200
+Date: Tue Jan 20 13:45:41 2009 +0200
Block encoder cleanups
- src/liblzma/common/block_encoder.c | 28 +++++++---------------------
- src/liblzma/common/block_encoder.h | 25 +++++++++++++++++++++++++
- 2 files changed, 32 insertions(+), 21 deletions(-)
-
commit 0c09810cb3635cb575cb54e694d41523e7d0a335
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-20 10:35:15 +0200
+Date: Tue Jan 20 10:35:15 2009 +0200
Use LZMA_PROG_ERROR in lzma_code() as documented in base.h.
- src/liblzma/common/common.c | 24 ++++++++----------------
- 1 file changed, 8 insertions(+), 16 deletions(-)
-
commit 2f1a8e8eb898f6c036cde55d153ad348bfab3c00
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-19 22:53:18 +0200
+Date: Mon Jan 19 22:53:18 2009 +0200
Fix handling of non-fatal errors in lzma_code().
- src/liblzma/common/common.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
commit 4810b6bc25087be872960b9dd1d11ff07735dc88
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-19 14:00:33 +0200
+Date: Mon Jan 19 14:00:33 2009 +0200
Move some LZMA2 constants to lzma2_encoder.h so that they
can be used outside lzma2_encoder.c.
- src/liblzma/lzma/lzma2_encoder.c | 13 -------------
- src/liblzma/lzma/lzma2_encoder.h | 14 ++++++++++++++
- src/liblzma/lzma/lzma_encoder.c | 3 ++-
- 3 files changed, 16 insertions(+), 14 deletions(-)
-
commit 00be5d2e09f9c7a6a8563465ad8b8042866817a4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-19 13:52:36 +0200
+Date: Mon Jan 19 13:52:36 2009 +0200
Remove dead code.
- src/liblzma/lzma/lzma_encoder.h | 8 --------
- 1 file changed, 8 deletions(-)
-
commit 128586213f77c9bd82b7e9a62927f6d0c3769d85
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-17 14:24:25 +0200
+Date: Sat Jan 17 14:24:25 2009 +0200
Beta was supposed to be API stable but I had forgot to rename
lzma_memlimit_encoder and lzma_memlimit_decoder to
@@ -7875,153 +6911,90 @@
Now it is fixed. Hopefully it doesn't cause too much trouble
to those who already thought API is stable.
- src/liblzma/api/lzma/filter.h | 4 ++--
- src/liblzma/common/easy.c | 4 ++--
- src/liblzma/common/filter_common.c | 2 +-
- src/liblzma/common/filter_common.h | 2 +-
- src/liblzma/common/filter_decoder.c | 4 ++--
- src/liblzma/common/filter_encoder.c | 4 ++--
- src/liblzma/common/stream_decoder.c | 2 +-
- src/xz/process.c | 6 +++---
- 8 files changed, 14 insertions(+), 14 deletions(-)
-
commit b056379490be5c584c264a967f0540041a163a1e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-15 14:29:22 +0200
+Date: Thu Jan 15 14:29:22 2009 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit dc8f3be06d54ef6e6cfb5134dd3d25edd08cef89
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-15 14:27:32 +0200
+Date: Thu Jan 15 14:27:32 2009 +0200
Fixed a bug in 7z2lzma.bash to make it work with .7z files
that use something else than 2^n as the dictionary size.
Thanks to Dan Shechter for the bug report.
- extra/7z2lzma/7z2lzma.bash | 47 +++++++++++++++++++++++-----------------------
- 1 file changed, 24 insertions(+), 23 deletions(-)
-
commit 8286a60b8f4bd5accfbc9d229d2204bac31994f2
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2009-01-07 18:41:15 +0200
+Date: Wed Jan 7 18:41:15 2009 +0200
Use pthread_sigmask() instead of sigprocmask() when pthreads
are enabled.
- src/common/mythread.h | 6 ++++++
- src/xz/main.c | 4 ++--
- src/xz/private.h | 1 +
- 3 files changed, 9 insertions(+), 2 deletions(-)
-
commit 4fd43cb3a906f6da2943f69239ee984c4787c9a9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-31 20:01:00 +0200
+Date: Wed Dec 31 20:01:00 2008 +0200
Bumped version to 4.999.8beta right after the release
of 4.999.7beta.
- configure.ac | 2 +-
- src/liblzma/api/lzma/version.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit 061748f5932719643cda73383db715167d543c22
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-31 18:59:02 +0200
+Date: Wed Dec 31 18:59:02 2008 +0200
Disable Subblock filter from test_compress.sh since it is
disabled by default in configure.ac.
- tests/test_compress.sh | 22 +++++++++++++---------
- 1 file changed, 13 insertions(+), 9 deletions(-)
-
commit 9c45658ddc8bd4a7819ef8547d3e7ccf73203e78
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-31 17:44:20 +0200
+Date: Wed Dec 31 17:44:20 2008 +0200
Disable both Subblock encoder and decoder my default,
since they are not finished and may have security issues too.
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit b59f1e98f50694cf6a8f1b342fd878feebdb2f88
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-31 17:42:50 +0200
+Date: Wed Dec 31 17:42:50 2008 +0200
Update some files in debug directory.
- debug/full_flush.c | 2 --
- debug/memusage.c | 2 --
- debug/sync_flush.c | 2 --
- 3 files changed, 6 deletions(-)
-
commit d1d17a40d33a9682424ca37282813492f2cba6d0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-31 17:41:46 +0200
+Date: Wed Dec 31 17:41:46 2008 +0200
Prepare for 4.999.7beta release.
- AUTHORS | 4 ++--
- README | 34 +++++++++++++++++-----------------
- configure.ac | 4 ++--
- src/liblzma/api/lzma/version.h | 2 +-
- 4 files changed, 22 insertions(+), 22 deletions(-)
-
commit 88d3e6b0b18e24142b6d3b41dc1b84b00c49fef3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-31 17:15:03 +0200
+Date: Wed Dec 31 17:15:03 2008 +0200
Cleaned up some comments in the API headers.
- src/liblzma/api/lzma/check.h | 23 +++++++++++------------
- src/liblzma/api/lzma/container.h | 2 +-
- src/liblzma/api/lzma/version.h | 4 +++-
- 3 files changed, 15 insertions(+), 14 deletions(-)
-
commit 322ecf93c961e45a1da8c4a794a7fdacefcd7f40
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-31 16:29:39 +0200
+Date: Wed Dec 31 16:29:39 2008 +0200
Renamed lzma_options_simple to lzma_options_bcj in the API.
The internal implementation is still using the name "simple".
It may need some cleanups, so I look at it later.
- src/liblzma/api/Makefile.am | 2 +-
- src/liblzma/api/lzma.h | 2 +-
- src/liblzma/api/lzma/bcj.h | 94 +++++++++++++++++++++++++++++++++++++
- src/liblzma/api/lzma/simple.h | 94 -------------------------------------
- src/liblzma/simple/simple_coder.c | 2 +-
- src/liblzma/simple/simple_decoder.c | 4 +-
- src/liblzma/simple/simple_encoder.c | 4 +-
- tests/test_filter_flags.c | 8 ++--
- 8 files changed, 105 insertions(+), 105 deletions(-)
-
commit 7eea8bec3abfed883efba66264a1452a1c04f6b0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-31 00:57:27 +0200
+Date: Wed Dec 31 00:57:27 2008 +0200
Fixed missing quoting in configure.ac.
- configure.ac | 38 +++++++++++++++++++-------------------
- 1 file changed, 19 insertions(+), 19 deletions(-)
-
commit 28e75f7086dbe9501d926c370375c69dfb1236ce
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-31 00:48:23 +0200
+Date: Wed Dec 31 00:48:23 2008 +0200
Updated src/liblzma/Makefile.am to use liblzma.pc.in, which
should have been in the previous commit.
- src/liblzma/Makefile.am | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit 7ed9d943b31d3ee9c5fb2387e84a241ba33afe90
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-31 00:30:49 +0200
+Date: Wed Dec 31 00:30:49 2008 +0200
Remove lzma_init() and other init functions from liblzma API.
Half of developers were already forgetting to use these
@@ -8052,60 +7025,15 @@
as the more bloated uint32_t array on x86; hopefully it's not bad
on other architectures.
- configure.ac | 29 ++++++++--
- src/common/mythread.h | 34 ++++++++++++
- src/liblzma/api/Makefile.am | 1 -
- src/liblzma/api/lzma.h | 1 -
- src/liblzma/api/lzma/init.h | 85 -----------------------------
- src/liblzma/check/Makefile.am | 29 ++++------
- src/liblzma/check/check.c | 10 ++--
- src/liblzma/check/check.h | 25 ++++-----
- src/liblzma/check/check_init.c | 37 -------------
- src/liblzma/check/crc32.c | 88 -------------------------------
- src/liblzma/check/crc32_fast.c | 88 +++++++++++++++++++++++++++++++
- src/liblzma/check/crc32_init.c | 55 -------------------
- src/liblzma/check/crc32_small.c | 54 +++++++++++++++++++
- src/liblzma/check/crc32_tablegen.c | 55 ++++++++++++++++---
- src/liblzma/check/crc64.c | 75 --------------------------
- src/liblzma/check/crc64_fast.c | 75 ++++++++++++++++++++++++++
- src/liblzma/check/crc64_small.c | 54 +++++++++++++++++++
- src/liblzma/check/crc64_tablegen.c | 55 ++++++++++++++++---
- src/liblzma/common/Makefile.am | 3 --
- src/liblzma/common/common.h | 1 +
- src/liblzma/common/init.c | 39 --------------
- src/liblzma/common/init_decoder.c | 31 -----------
- src/liblzma/common/init_encoder.c | 40 --------------
- src/liblzma/liblzma.pc.in | 12 +++++
- src/liblzma/lz/lz_encoder.c | 6 +++
- src/liblzma/lzma.pc.in | 11 ----
- src/liblzma/rangecoder/Makefile.am | 8 +--
- src/liblzma/rangecoder/price.h | 16 +-----
- src/liblzma/rangecoder/price_table.c | 2 +-
- src/liblzma/rangecoder/price_table_init.c | 55 -------------------
- src/liblzma/rangecoder/price_tablegen.c | 51 +++++++++++++++---
- src/xz/Makefile.am | 5 +-
- src/xz/main.c | 3 --
- src/xzdec/xzdec.c | 3 --
- tests/test_block_header.c | 1 -
- tests/test_check.c | 2 -
- tests/test_filter_flags.c | 2 -
- tests/test_index.c | 2 -
- tests/test_stream_flags.c | 2 -
- tests/tests.h | 2 +-
- 40 files changed, 519 insertions(+), 628 deletions(-)
-
commit 5cda29b5665004fc0f21d0c41d78022a6a559ab2
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-27 19:40:31 +0200
+Date: Sat Dec 27 19:40:31 2008 +0200
Use 28 MiB as memory usage limit for encoding in test_compress.sh.
- tests/test_compress.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 050eb14d29e2537c014662e83599fd8a77f13c45
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-27 19:32:20 +0200
+Date: Sat Dec 27 19:32:20 2008 +0200
Revert a change made in 3b34851de1eaf358cf9268922fa0eeed8278d680
that was related to LZMA_MODE_FAST. The original code is slightly
@@ -8112,180 +7040,83 @@
faster although it compresses slightly worse. But since it is fast
mode, it is better to select the faster version.
- src/liblzma/lzma/lzma_encoder_optimum_fast.c | 23 ++++++++---------------
- 1 file changed, 8 insertions(+), 15 deletions(-)
-
commit 4820f10d0f173864f6a2ea7479663b509ac53358
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-27 19:30:19 +0200
+Date: Sat Dec 27 19:30:19 2008 +0200
Some xz command line tool improvements.
- src/xz/args.c | 23 +++++-----
- src/xz/message.c | 4 +-
- src/xz/options.c | 2 +-
- src/xz/process.c | 133 +++++++++++++++++++++++++++++++++++++++++++------------
- src/xz/process.h | 3 ++
- 5 files changed, 121 insertions(+), 44 deletions(-)
-
commit e33194e79d8f5ce07cb4aca909b324ae75098f7e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-27 19:27:49 +0200
+Date: Sat Dec 27 19:27:49 2008 +0200
Bunch of liblzma tweaks, including some API changes.
The API and ABI should now be very close to stable,
although the code behind it isn't yet.
- src/liblzma/api/lzma.h | 8 ++--
- src/liblzma/api/lzma/block.h | 63 ++++++++++++++++++++++++-
- src/liblzma/api/lzma/container.h | 76 +++++++++++++++----------------
- src/liblzma/api/lzma/lzma.h | 41 +++++++++--------
- src/liblzma/common/alone_decoder.c | 36 +++++++--------
- src/liblzma/common/alone_encoder.c | 22 ++++-----
- src/liblzma/common/auto_decoder.c | 2 +-
- src/liblzma/common/block_decoder.c | 54 +++++++++++-----------
- src/liblzma/common/block_decoder.h | 4 +-
- src/liblzma/common/block_encoder.c | 37 ++++++++-------
- src/liblzma/common/block_encoder.h | 4 +-
- src/liblzma/common/block_header_decoder.c | 41 +++++++++--------
- src/liblzma/common/block_header_encoder.c | 51 ++++++++++-----------
- src/liblzma/common/block_util.c | 3 +-
- src/liblzma/common/easy.c | 45 ++++++------------
- src/liblzma/common/stream_decoder.c | 3 +-
- src/liblzma/common/stream_decoder.h | 2 +-
- src/liblzma/common/stream_encoder.c | 3 +-
- src/liblzma/common/stream_encoder.h | 2 +-
- src/liblzma/common/stream_flags_decoder.c | 2 +-
- src/liblzma/common/stream_flags_encoder.c | 2 +-
- src/liblzma/lzma/lzma_encoder.c | 2 +-
- src/liblzma/lzma/lzma_encoder_presets.c | 53 +++++++--------------
- 23 files changed, 294 insertions(+), 262 deletions(-)
-
commit 4d00652e75dd2736aedc3a3a8baff3dd0ea38074
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-18 13:42:52 +0200
+Date: Thu Dec 18 13:42:52 2008 +0200
Updated Makefile.am that was missing from the previous commit.
- src/liblzma/common/Makefile.am | 1 -
- 1 file changed, 1 deletion(-)
-
commit 634636fa56ccee6e744f78b0abed76c8940f2f8f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-17 21:49:53 +0200
+Date: Wed Dec 17 21:49:53 2008 +0200
Remove the alignment functions for now. Maybe they will
be added back in some form later, but the current version
wasn't modular, so it would need fixing anyway.
- src/liblzma/api/Makefile.am | 1 -
- src/liblzma/api/lzma.h | 1 -
- src/liblzma/api/lzma/alignment.h | 60 ---------------------
- src/liblzma/common/alignment.c | 114 ---------------------------------------
- 4 files changed, 176 deletions(-)
-
commit 4fed98417d1687f5eccccb42a133fde3ec81216a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-17 20:11:23 +0200
+Date: Wed Dec 17 20:11:23 2008 +0200
xz message handling improvements
- src/xz/message.c | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
- src/xz/message.h | 7 +++-
- src/xz/process.c | 28 ++++++++++++-
- 3 files changed, 146 insertions(+), 14 deletions(-)
-
commit 653e457e3756ef35e5d1b2be3523b3e4b1e9ee4d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-15 23:26:43 +0200
+Date: Mon Dec 15 23:26:43 2008 +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.)
- src/liblzma/common/alone_decoder.c | 29 ++++++++++++++---------------
- 1 file changed, 14 insertions(+), 15 deletions(-)
-
commit 671a5adf1e844bfdd6fd327016c3c28694493158
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-15 19:39:13 +0200
+Date: Mon Dec 15 19:39:13 2008 +0200
Bunch of liblzma API cleanups and fixes.
- src/liblzma/api/lzma.h | 122 +++++++++++----------
- src/liblzma/api/lzma/base.h | 174 ++++++++++++++++++-----------
- src/liblzma/api/lzma/block.h | 211 +++++++++++++++++++++++-------------
- src/liblzma/api/lzma/check.h | 28 ++---
- src/liblzma/api/lzma/container.h | 155 +++++++++++++-------------
- src/liblzma/api/lzma/delta.h | 12 +-
- src/liblzma/api/lzma/filter.h | 27 +++--
- src/liblzma/api/lzma/index.h | 97 ++++++++++++++---
- src/liblzma/api/lzma/index_hash.h | 26 +++--
- src/liblzma/api/lzma/init.h | 2 +-
- src/liblzma/api/lzma/lzma.h | 12 +-
- src/liblzma/api/lzma/simple.h | 4 +-
- src/liblzma/api/lzma/stream_flags.h | 46 +++++---
- src/liblzma/api/lzma/version.h | 6 +-
- src/liblzma/api/lzma/vli.h | 17 ++-
- src/liblzma/common/alone_decoder.c | 47 +++++---
- src/liblzma/common/auto_decoder.c | 29 +++++
- src/liblzma/common/block_util.c | 52 +++++----
- src/liblzma/common/common.c | 58 ++++++++++
- src/liblzma/common/common.h | 9 +-
- src/liblzma/common/easy.c | 33 ++++--
- src/liblzma/common/filter_common.c | 2 +-
- src/liblzma/common/index.c | 11 ++
- src/liblzma/common/index_decoder.c | 46 ++++++--
- src/liblzma/common/stream_decoder.c | 47 ++++++--
- src/liblzma/lzma/lzma2_encoder.c | 6 +-
- tests/test_index.c | 10 +-
- 27 files changed, 863 insertions(+), 426 deletions(-)
-
commit 17781c2c20fd77029cb32e77792889f2f211d69d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-15 14:26:52 +0200
+Date: Mon Dec 15 14:26:52 2008 +0200
The LZMA2 decoder fix introduced a bug to LZ decoder,
which made LZ decoder return too early after dictionary
reset. This fixes it.
- src/liblzma/lz/lz_decoder.c | 33 +++++++++++++++++++++++----------
- 1 file changed, 23 insertions(+), 10 deletions(-)
-
commit f9f2d1e74398500724041f7fb3c38db35ad8c8d8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-15 11:20:22 +0200
+Date: Mon Dec 15 11:20:22 2008 +0200
Added two new test files.
- tests/files/README | 7 +++++++
- tests/files/bad-1-lzma2-8.xz | Bin 0 -> 464 bytes
- tests/files/good-1-lzma2-4.xz | Bin 0 -> 464 bytes
- 3 files changed, 7 insertions(+)
-
commit ff7fb2c605bccc411069e07b9f11fb957aea2ddf
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-15 10:01:59 +0200
+Date: Mon Dec 15 10:01:59 2008 +0200
Fix data corruption in LZMA2 decoder.
- src/liblzma/lz/lz_decoder.c | 17 ++++++++++++++++-
- src/liblzma/lz/lz_decoder.h | 8 +++++---
- src/liblzma/lzma/lzma2_decoder.c | 15 +++++++++++----
- 3 files changed, 32 insertions(+), 8 deletions(-)
-
commit 1ceebcf7e1bd30b95125f0ad67a09fdb6215d613
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-13 00:54:11 +0200
+Date: Sat Dec 13 00:54:11 2008 +0200
Name the package "xz" in configure.ac.
- configure.ac | 11 ++++-------
- 1 file changed, 4 insertions(+), 7 deletions(-)
-
commit a94bf00d0af9b423851905b031be5a645a657820
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-12 22:43:21 +0200
+Date: Fri Dec 12 22:43:21 2008 +0200
Some adjustments to GCC warning flags. The important change
is the removal of -pedantic. It messes up -Werror (which I
@@ -8292,51 +7123,35 @@
really want to keep so that I don't miss any warnings) with
printf format strings that are in POSIX but not in C99.
- configure.ac | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
commit 8582d392baacd2cdac07ca60041f8c661323676d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-10 01:31:00 +0200
+Date: Wed Dec 10 01:31:00 2008 +0200
Remove obsolete comment.
- src/xz/message.c | 1 -
- 1 file changed, 1 deletion(-)
-
commit b1ae6dd731ea3636c3c2bfc7aefa71457d3328f1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-10 01:27:15 +0200
+Date: Wed Dec 10 01:27:15 2008 +0200
Use "decompression" consistently in --long-help.
- src/xz/message.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 1ea9e7f15afd5d3981e2432710e932320597bca9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-10 01:23:58 +0200
+Date: Wed Dec 10 01:23:58 2008 +0200
Added preset=NUM to --lzma1 and --lzma2. This makes it easy
to take a preset as a template and modify it a little.
- src/xz/message.c | 1 +
- src/xz/options.c | 8 ++++++++
- 2 files changed, 9 insertions(+)
-
commit bceb3918dbb21f34976bfdd4c171a81319de71f7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-09 17:43:31 +0200
+Date: Tue Dec 9 17:43:31 2008 +0200
Put the file format specification into the public domain.
Same will be done to the actual code later.
- doc/file-format.txt | 24 +++++++++---------------
- 1 file changed, 9 insertions(+), 15 deletions(-)
-
commit 6efa2d80d46a38861016f41f0eb6fa2ec9260fe6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-09 17:41:49 +0200
+Date: Tue Dec 9 17:41:49 2008 +0200
Make the memusage functions of LZMA1 and LZMA2 encoders
to validate the filter options. Add missing validation
@@ -8343,95 +7158,59 @@
to LZMA2 encoder when options are changed in the middle
of encoding.
- src/liblzma/lzma/lzma2_encoder.c | 5 ++++-
- src/liblzma/lzma/lzma_encoder.c | 44 +++++++++++++++++++++++++++-------------
- src/liblzma/lzma/lzma_encoder.h | 2 +-
- 3 files changed, 35 insertions(+), 16 deletions(-)
-
commit f20a03206b71ff01b827bb7a932411d6a6a4e06a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-09 10:36:24 +0200
+Date: Tue Dec 9 10:36:24 2008 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit ef7890d56453dca1aeb2e12db29b7e418d93dde4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-01 23:04:12 +0200
+Date: Mon Dec 1 23:04:12 2008 +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).
- src/xz/process.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
commit ccd57afa09e332d664d6d6a7498702791ea5f659
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-01 22:59:28 +0200
+Date: Mon Dec 1 22:59:28 2008 +0200
Validate the filter chain before checking filter-specific
memory usage.
- src/liblzma/common/filter_common.c | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
commit c596fda40b62fe1683d0ac34d0c673dcaae2aa15
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-01 22:58:22 +0200
+Date: Mon Dec 1 22:58:22 2008 +0200
Make the memusage functions of LZMA1 and LZMA2 decoders
to validate the filter options.
- src/liblzma/lzma/lzma2_decoder.c | 7 ++-----
- src/liblzma/lzma/lzma_decoder.c | 14 ++++++++++----
- src/liblzma/lzma/lzma_decoder.h | 5 +++++
- 3 files changed, 17 insertions(+), 9 deletions(-)
-
commit c58f469be5bb9b0bdab825c6687445fd553f4f3a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-01 22:55:18 +0200
+Date: Mon Dec 1 22:55:18 2008 +0200
Added the changes for Delta filter that should have been
part of 656ec87882ee74b192c4ea4a233a235eca7b04d4.
- src/liblzma/common/filter_decoder.c | 2 +-
- src/liblzma/common/filter_encoder.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit cd708015202dbf7585b84a8781462a20c42a324b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-01 22:50:28 +0200
+Date: Mon Dec 1 22:50:28 2008 +0200
LZMA2 decoder cleanups. Make it require new LZMA properties
also in the first LZMA chunk after a dictionary reset in
uncompressed chunk.
- src/liblzma/lzma/lzma2_decoder.c | 95 +++++++++++++++++-----------------------
- 1 file changed, 41 insertions(+), 54 deletions(-)
-
commit 656ec87882ee74b192c4ea4a233a235eca7b04d4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-12-01 16:30:11 +0200
+Date: Mon Dec 1 16:30:11 2008 +0200
Added lzma_delta_coder_memusage() which also validates
the options.
- src/liblzma/delta/Makefile.am | 3 ++-
- src/liblzma/delta/delta_common.c | 28 ++++++++++++++++++-------
- src/liblzma/delta/delta_common.h | 19 +----------------
- src/liblzma/delta/delta_decoder.c | 2 +-
- src/liblzma/delta/delta_decoder.h | 2 +-
- src/liblzma/delta/delta_encoder.c | 14 ++++---------
- src/liblzma/delta/delta_encoder.h | 2 +-
- src/liblzma/delta/delta_private.h | 44 +++++++++++++++++++++++++++++++++++++++
- 8 files changed, 75 insertions(+), 39 deletions(-)
-
commit 691a9155b7a28882baf37e9d1e969e32e91dbc7a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-11-29 10:03:49 +0200
+Date: Sat Nov 29 10:03:49 2008 +0200
Automake includes the m4 directory, so don't add it in
Makefile.am separately.
@@ -8438,107 +7217,68 @@
Updated THANKS.
- Makefile.am | 1 -
- THANKS | 1 +
- 2 files changed, 1 insertion(+), 1 deletion(-)
-
commit c7007ddf06ac2b0e018d71d281c21b99f16e7ae0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-11-28 12:00:48 +0200
+Date: Fri Nov 28 12:00:48 2008 +0200
Tested using COLUMNS environment variable to avoid broken
progress indicator but since COLUMNS isn't usually available,
the code was left commented out.
- src/xz/message.c | 14 +++++++++-----
- 1 file changed, 9 insertions(+), 5 deletions(-)
-
commit ae65dcfde27014e4d811e1a1308aa5d0fe8debbd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-11-27 19:28:59 +0200
+Date: Thu Nov 27 19:28:59 2008 +0200
Cleanups to message.c.
- src/xz/message.c | 47 ++++++++++++++++++-----------------------------
- 1 file changed, 18 insertions(+), 29 deletions(-)
-
commit a8368b75cdcd5427299001cc42839287f27b244d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-11-25 02:37:47 +0200
+Date: Tue Nov 25 02:37:47 2008 +0200
Remove the nowadays unneeded memory limitting malloc() wrapper.
- src/liblzma/api/Makefile.am | 1 -
- src/liblzma/api/lzma.h | 1 -
- src/liblzma/api/lzma/memlimit.h | 207 --------------------------
- src/liblzma/common/Makefile.am | 1 -
- src/liblzma/common/memory_limiter.c | 288 ------------------------------------
- tests/Makefile.am | 2 -
- tests/test_memlimit.c | 114 --------------
- 7 files changed, 614 deletions(-)
-
commit 69472ee5f055a2bb6f28106f0923e1461fd1d080
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-11-23 15:09:03 +0200
+Date: Sun Nov 23 15:09:03 2008 +0200
VLI encoder and decoder cleanups. Made encoder return
LZMA_PROG_ERROR in single-call mode if there's no output
space.
- src/liblzma/common/vli_decoder.c | 15 +++++++++------
- src/liblzma/common/vli_encoder.c | 31 ++++++++++++++++++++++++-------
- 2 files changed, 33 insertions(+), 13 deletions(-)
-
commit 4249c8c15a08f55b51b7012e6aaafce3aa9eb650
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-11-22 17:44:33 +0200
+Date: Sat Nov 22 17:44:33 2008 +0200
Typo fix
- src/xz/process.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 6d1d6f4598d121253dbe1084c6866b66e95c361b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-11-20 22:59:10 +0200
+Date: Thu Nov 20 22:59:10 2008 +0200
Support NetBSD's errno for O_NOFOLLOW.
- src/xz/io.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
commit f901a290eef67b8ea4720ccdf5f46edf775ed9d7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-11-20 18:05:52 +0200
+Date: Thu Nov 20 18:05:52 2008 +0200
Build xzdec and lzmadec from xzdec.c. xzdec supports only .xz
files and lzmadec only .lzma files.
- src/xzdec/Makefile.am | 7 +-
- src/xzdec/xzdec.c | 311 ++++++++++++++++++++++----------------------------
- 2 files changed, 140 insertions(+), 178 deletions(-)
-
commit 86a0ed8f01c8ed44721223f885e679c71b7bb94c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-11-20 11:01:29 +0200
+Date: Thu Nov 20 11:01:29 2008 +0200
Minor cleanups to xzdec.
- src/xzdec/xzdec.c | 20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
commit 54f716ba8905d09752dcd1519455a40bd21d5317
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-11-19 23:55:22 +0200
+Date: Wed Nov 19 23:55:22 2008 +0200
Added missing check for uint16_t.
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
commit 1880a3927b23f265f63b2adb86fbdb81ea09eb06
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-11-19 23:52:24 +0200
+Date: Wed Nov 19 23:52:24 2008 +0200
Renamed lzma to xz and lzmadec to xzdec. We create symlinks
lzma, unlzma, and lzcat in "make install" for backwards
@@ -8545,62 +7285,9 @@
compatibility with LZMA Utils 4.32.x; I'm not sure if this
should be the default though.
- configure.ac | 4 +-
- po/POTFILES.in | 21 +-
- src/Makefile.am | 2 +-
- src/lzma/Makefile.am | 72 ----
- src/lzma/args.c | 500 ---------------------------
- src/lzma/args.h | 56 ---
- src/lzma/hardware.c | 122 -------
- src/lzma/hardware.h | 45 ---
- src/lzma/io.c | 658 -----------------------------------
- src/lzma/io.h | 97 ------
- src/lzma/list.c | 477 --------------------------
- src/lzma/main.c | 402 ----------------------
- src/lzma/main.h | 60 ----
- src/lzma/message.c | 892 ------------------------------------------------
- src/lzma/message.h | 132 -------
- src/lzma/options.c | 352 -------------------
- src/lzma/options.h | 46 ---
- src/lzma/private.h | 52 ---
- src/lzma/process.c | 391 ---------------------
- src/lzma/process.h | 70 ----
- src/lzma/suffix.c | 213 ------------
- src/lzma/suffix.h | 40 ---
- src/lzma/util.c | 199 -----------
- src/lzma/util.h | 71 ----
- src/lzmadec/Makefile.am | 29 --
- src/lzmadec/lzmadec.c | 492 --------------------------
- src/xz/Makefile.am | 74 ++++
- src/xz/args.c | 500 +++++++++++++++++++++++++++
- src/xz/args.h | 56 +++
- src/xz/hardware.c | 122 +++++++
- src/xz/hardware.h | 45 +++
- src/xz/io.c | 658 +++++++++++++++++++++++++++++++++++
- src/xz/io.h | 97 ++++++
- src/xz/list.c | 477 ++++++++++++++++++++++++++
- src/xz/main.c | 402 ++++++++++++++++++++++
- src/xz/main.h | 60 ++++
- src/xz/message.c | 892 ++++++++++++++++++++++++++++++++++++++++++++++++
- src/xz/message.h | 132 +++++++
- src/xz/options.c | 352 +++++++++++++++++++
- src/xz/options.h | 46 +++
- src/xz/private.h | 52 +++
- src/xz/process.c | 391 +++++++++++++++++++++
- src/xz/process.h | 70 ++++
- src/xz/suffix.c | 213 ++++++++++++
- src/xz/suffix.h | 40 +++
- src/xz/util.c | 199 +++++++++++
- src/xz/util.h | 71 ++++
- src/xzdec/Makefile.am | 29 ++
- src/xzdec/xzdec.c | 492 ++++++++++++++++++++++++++
- tests/test_compress.sh | 29 +-
- tests/test_files.sh | 4 +-
- 51 files changed, 5498 insertions(+), 5500 deletions(-)
-
commit e114502b2bc371e4a45449832cb69be036360722
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-11-19 20:46:52 +0200
+Date: Wed Nov 19 20:46:52 2008 +0200
Oh well, big messy commit again. Some highlights:
- Updated to the latest, probably final file format version.
@@ -8613,546 +7300,142 @@
- Upgraded to the last LGPLv2.1+ getopt_long from gnulib.
- Some bug fixes
- THANKS | 1 +
- configure.ac | 48 +-
- debug/full_flush.c | 6 +-
- debug/known_sizes.c | 2 +-
- debug/memusage.c | 2 +-
- debug/sync_flush.c | 10 +-
- doc/file-format.txt | 260 ++++----
- lib/Makefile.am | 10 +-
- lib/getopt.c | 14 +-
- lib/getopt.in.h | 226 +++++++
- lib/getopt1.c | 8 +-
- lib/getopt_.h | 226 -------
- lib/gettext.h | 240 -------
- m4/getopt.m4 | 64 +-
- src/common/bswap.h | 15 +-
- src/common/physmem.h | 4 +
- src/common/sysdefs.h | 12 +-
- src/liblzma/api/lzma/block.h | 47 +-
- src/liblzma/api/lzma/filter.h | 8 +
- src/liblzma/api/lzma/index.h | 20 +-
- src/liblzma/api/lzma/index_hash.h | 4 +-
- src/liblzma/common/block_decoder.c | 59 +-
- src/liblzma/common/block_encoder.c | 41 +-
- src/liblzma/common/block_header_decoder.c | 31 +-
- src/liblzma/common/block_header_encoder.c | 69 +--
- src/liblzma/common/block_util.c | 45 +-
- src/liblzma/common/common.h | 8 -
- src/liblzma/common/filter_common.c | 4 +-
- src/liblzma/common/index.c | 259 ++++----
- src/liblzma/common/index.h | 33 +-
- src/liblzma/common/index_decoder.c | 31 +-
- src/liblzma/common/index_encoder.c | 16 +-
- src/liblzma/common/index_hash.c | 68 +-
- src/liblzma/common/stream_decoder.c | 9 +-
- src/liblzma/common/stream_encoder.c | 6 +-
- src/liblzma/lz/lz_decoder.h | 4 +-
- src/liblzma/subblock/subblock_decoder.c | 3 +-
- src/lzma/Makefile.am | 9 +-
- src/lzma/alloc.c | 106 ----
- src/lzma/alloc.h | 42 --
- src/lzma/args.c | 531 +++++++---------
- src/lzma/args.h | 42 +-
- src/lzma/error.c | 162 -----
- src/lzma/error.h | 67 --
- src/lzma/hardware.c | 75 ++-
- src/lzma/hardware.h | 16 +-
- src/lzma/help.c | 170 -----
- src/lzma/help.h | 32 -
- src/lzma/io.c | 757 +++++++++++------------
- src/lzma/io.h | 51 +-
- src/lzma/main.c | 392 ++++++++----
- src/lzma/main.h | 60 ++
- src/lzma/message.c | 892 +++++++++++++++++++++++++++
- src/lzma/message.h | 132 ++++
- src/lzma/options.c | 42 +-
- src/lzma/options.h | 6 +-
- src/lzma/private.h | 28 +-
- src/lzma/process.c | 525 ++++++++--------
- src/lzma/process.h | 40 ++
- src/lzma/suffix.c | 52 +-
- src/lzma/suffix.h | 17 +-
- src/lzma/util.c | 100 +--
- src/lzma/util.h | 43 +-
- src/lzmadec/lzmadec.c | 36 +-
- tests/files/README | 12 +-
- tests/files/bad-1-block_header-1.xz | Bin 64 -> 64 bytes
- tests/files/bad-1-block_header-2.xz | Bin 64 -> 64 bytes
- tests/files/bad-1-block_header-3.xz | Bin 68 -> 68 bytes
- tests/files/bad-1-block_header-4.xz | Bin 72 -> 76 bytes
- tests/files/bad-1-block_header-5.xz | Bin 0 -> 72 bytes
- tests/files/bad-1-check-crc32.xz | Bin 68 -> 68 bytes
- tests/files/bad-1-check-crc64.xz | Bin 72 -> 72 bytes
- tests/files/bad-1-check-sha256.xz | Bin 96 -> 96 bytes
- tests/files/bad-1-lzma2-1.xz | Bin 64 -> 64 bytes
- tests/files/bad-1-lzma2-2.xz | Bin 424 -> 424 bytes
- tests/files/bad-1-lzma2-3.xz | Bin 424 -> 424 bytes
- tests/files/bad-1-lzma2-4.xz | Bin 408 -> 408 bytes
- tests/files/bad-1-lzma2-5.xz | Bin 408 -> 408 bytes
- tests/files/bad-1-lzma2-6.xz | Bin 68 -> 68 bytes
- tests/files/bad-1-lzma2-7.xz | Bin 408 -> 408 bytes
- tests/files/bad-1-stream_flags-1.xz | Bin 68 -> 68 bytes
- tests/files/bad-1-stream_flags-2.xz | Bin 68 -> 68 bytes
- tests/files/bad-1-stream_flags-3.xz | Bin 68 -> 68 bytes
- tests/files/bad-1-vli-1.xz | Bin 72 -> 72 bytes
- tests/files/bad-1-vli-2.xz | Bin 72 -> 76 bytes
- tests/files/bad-2-compressed_data_padding.xz | Bin 92 -> 92 bytes
- tests/files/bad-2-index-1.xz | Bin 92 -> 92 bytes
- tests/files/bad-2-index-2.xz | Bin 92 -> 92 bytes
- tests/files/bad-2-index-3.xz | Bin 92 -> 92 bytes
- tests/files/bad-2-index-4.xz | Bin 92 -> 92 bytes
- tests/files/bad-2-index-5.xz | Bin 0 -> 92 bytes
- tests/files/good-1-3delta-lzma2.xz | Bin 528 -> 528 bytes
- tests/files/good-1-block_header-1.xz | Bin 72 -> 72 bytes
- tests/files/good-1-block_header-2.xz | Bin 68 -> 68 bytes
- tests/files/good-1-block_header-3.xz | Bin 68 -> 68 bytes
- tests/files/good-1-check-crc32.xz | Bin 68 -> 68 bytes
- tests/files/good-1-check-crc64.xz | Bin 72 -> 72 bytes
- tests/files/good-1-check-none.xz | Bin 64 -> 64 bytes
- tests/files/good-1-check-sha256.xz | Bin 96 -> 96 bytes
- tests/files/good-1-delta-lzma2.tiff.xz | Bin 51312 -> 51316 bytes
- tests/files/good-1-lzma2-1.xz | Bin 424 -> 424 bytes
- tests/files/good-1-lzma2-2.xz | Bin 424 -> 424 bytes
- tests/files/good-1-lzma2-3.xz | Bin 408 -> 408 bytes
- tests/files/good-1-sparc-lzma2.xz | Bin 2292 -> 2296 bytes
- tests/files/good-1-x86-lzma2.xz | Bin 1936 -> 1936 bytes
- tests/files/good-2-lzma2.xz | Bin 92 -> 92 bytes
- tests/files/unsupported-block_header.xz | Bin 68 -> 68 bytes
- tests/files/unsupported-check.xz | Bin 68 -> 68 bytes
- tests/files/unsupported-filter_flags-1.xz | Bin 68 -> 68 bytes
- tests/files/unsupported-filter_flags-2.xz | Bin 68 -> 68 bytes
- tests/files/unsupported-filter_flags-3.xz | Bin 68 -> 68 bytes
- tests/test_block_header.c | 16 +-
- tests/test_index.c | 42 +-
- 113 files changed, 3462 insertions(+), 2946 deletions(-)
-
commit 3c3905b53462ae235c9438d86a4dc51086410932
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-10-09 11:12:29 +0300
+Date: Thu Oct 9 11:12:29 2008 +0300
Fixed the test that should have been fixed as part
of 1e8e4fd1f3e50129b4541406ad765d2aa1233943.
- tests/test_block_header.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 0f295bf7a3ece01f667caae318cc3e3424085886
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-10-07 16:42:18 +0300
+Date: Tue Oct 7 16:42:18 2008 +0300
Fixed some help messages.
- src/lzma/help.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
commit 1e8e4fd1f3e50129b4541406ad765d2aa1233943
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-10-07 09:40:31 +0300
+Date: Tue Oct 7 09:40:31 2008 +0300
Made the preset numbering more logical in liblzma API.
- src/liblzma/api/lzma/container.h | 20 ++++++++++----------
- src/liblzma/api/lzma/lzma.h | 2 +-
- src/liblzma/lzma/lzma_encoder_presets.c | 3 ++-
- src/lzma/args.c | 8 ++++----
- src/lzma/args.h | 2 +-
- 5 files changed, 18 insertions(+), 17 deletions(-)
-
commit 5e4df4c3c09c82bbbb1a916784e3dc717ca4ff81
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-10-03 19:36:09 +0300
+Date: Fri Oct 3 19:36:09 2008 +0300
Removed fi from po/LINGUAS.
- po/LINGUAS | 1 -
- 1 file changed, 1 deletion(-)
-
commit fcfb86c7770328cfffa2e83b176af9a1ba2d9128
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-10-03 07:06:48 +0300
+Date: Fri Oct 3 07:06:48 2008 +0300
Fixed suffix handling with --format=raw.
- src/lzma/suffix.c | 28 +++++++++++++++++++---------
- 1 file changed, 19 insertions(+), 9 deletions(-)
-
commit bd137524f2f50e30ba054f42f1f6536cd3cee920
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-10-02 22:51:46 +0300
+Date: Thu Oct 2 22:51:46 2008 +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.
- src/lzma/args.c | 67 +++++++++++++++++++++++++++++++--------------
- src/lzma/args.h | 13 +++++----
- src/lzma/help.c | 4 +--
- src/lzma/process.c | 24 +++++++++-------
- src/lzma/suffix.c | 74 +++++++++++++++++++++++++++++++++++++++++---------
- tests/test_compress.sh | 3 +-
- 6 files changed, 133 insertions(+), 52 deletions(-)
-
commit 4c321a41c482821aa3c4d64cdf886a6ed904d844
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-30 17:43:55 +0300
+Date: Tue Sep 30 17:43:55 2008 +0300
Renamed the test files from .lzma suffix to .xz suffix.
- tests/files/README | 128 ++++++++++++-------------
- tests/files/bad-0-backward_size.lzma | Bin 32 -> 0 bytes
- tests/files/bad-0-backward_size.xz | Bin 0 -> 32 bytes
- tests/files/bad-0-empty-truncated.lzma | Bin 31 -> 0 bytes
- tests/files/bad-0-empty-truncated.xz | Bin 0 -> 31 bytes
- tests/files/bad-0-footer_magic.lzma | Bin 32 -> 0 bytes
- tests/files/bad-0-footer_magic.xz | Bin 0 -> 32 bytes
- tests/files/bad-0-header_magic.lzma | Bin 32 -> 0 bytes
- tests/files/bad-0-header_magic.xz | Bin 0 -> 32 bytes
- tests/files/bad-0-nonempty_index.lzma | Bin 32 -> 0 bytes
- tests/files/bad-0-nonempty_index.xz | Bin 0 -> 32 bytes
- tests/files/bad-0cat-alone.lzma | Bin 55 -> 0 bytes
- tests/files/bad-0cat-alone.xz | Bin 0 -> 55 bytes
- tests/files/bad-0cat-header_magic.lzma | Bin 64 -> 0 bytes
- tests/files/bad-0cat-header_magic.xz | Bin 0 -> 64 bytes
- tests/files/bad-0catpad-empty.lzma | Bin 69 -> 0 bytes
- tests/files/bad-0catpad-empty.xz | Bin 0 -> 69 bytes
- tests/files/bad-0pad-empty.lzma | Bin 37 -> 0 bytes
- tests/files/bad-0pad-empty.xz | Bin 0 -> 37 bytes
- tests/files/bad-1-block_header-1.lzma | Bin 64 -> 0 bytes
- tests/files/bad-1-block_header-1.xz | Bin 0 -> 64 bytes
- tests/files/bad-1-block_header-2.lzma | Bin 64 -> 0 bytes
- tests/files/bad-1-block_header-2.xz | Bin 0 -> 64 bytes
- tests/files/bad-1-block_header-3.lzma | Bin 68 -> 0 bytes
- tests/files/bad-1-block_header-3.xz | Bin 0 -> 68 bytes
- tests/files/bad-1-block_header-4.lzma | Bin 72 -> 0 bytes
- tests/files/bad-1-block_header-4.xz | Bin 0 -> 72 bytes
- tests/files/bad-1-check-crc32.lzma | Bin 68 -> 0 bytes
- tests/files/bad-1-check-crc32.xz | Bin 0 -> 68 bytes
- tests/files/bad-1-check-crc64.lzma | Bin 72 -> 0 bytes
- tests/files/bad-1-check-crc64.xz | Bin 0 -> 72 bytes
- tests/files/bad-1-check-sha256.lzma | Bin 96 -> 0 bytes
- tests/files/bad-1-check-sha256.xz | Bin 0 -> 96 bytes
- tests/files/bad-1-lzma2-1.lzma | Bin 64 -> 0 bytes
- tests/files/bad-1-lzma2-1.xz | Bin 0 -> 64 bytes
- tests/files/bad-1-lzma2-2.lzma | Bin 424 -> 0 bytes
- tests/files/bad-1-lzma2-2.xz | Bin 0 -> 424 bytes
- tests/files/bad-1-lzma2-3.lzma | Bin 424 -> 0 bytes
- tests/files/bad-1-lzma2-3.xz | Bin 0 -> 424 bytes
- tests/files/bad-1-lzma2-4.lzma | Bin 408 -> 0 bytes
- tests/files/bad-1-lzma2-4.xz | Bin 0 -> 408 bytes
- tests/files/bad-1-lzma2-5.lzma | Bin 408 -> 0 bytes
- tests/files/bad-1-lzma2-5.xz | Bin 0 -> 408 bytes
- tests/files/bad-1-lzma2-6.lzma | Bin 68 -> 0 bytes
- tests/files/bad-1-lzma2-6.xz | Bin 0 -> 68 bytes
- tests/files/bad-1-lzma2-7.lzma | Bin 408 -> 0 bytes
- tests/files/bad-1-lzma2-7.xz | Bin 0 -> 408 bytes
- tests/files/bad-1-stream_flags-1.lzma | Bin 68 -> 0 bytes
- tests/files/bad-1-stream_flags-1.xz | Bin 0 -> 68 bytes
- tests/files/bad-1-stream_flags-2.lzma | Bin 68 -> 0 bytes
- tests/files/bad-1-stream_flags-2.xz | Bin 0 -> 68 bytes
- tests/files/bad-1-stream_flags-3.lzma | Bin 68 -> 0 bytes
- tests/files/bad-1-stream_flags-3.xz | Bin 0 -> 68 bytes
- tests/files/bad-1-vli-1.lzma | Bin 72 -> 0 bytes
- tests/files/bad-1-vli-1.xz | Bin 0 -> 72 bytes
- tests/files/bad-1-vli-2.lzma | Bin 72 -> 0 bytes
- tests/files/bad-1-vli-2.xz | Bin 0 -> 72 bytes
- tests/files/bad-2-compressed_data_padding.lzma | Bin 92 -> 0 bytes
- tests/files/bad-2-compressed_data_padding.xz | Bin 0 -> 92 bytes
- tests/files/bad-2-index-1.lzma | Bin 92 -> 0 bytes
- tests/files/bad-2-index-1.xz | Bin 0 -> 92 bytes
- tests/files/bad-2-index-2.lzma | Bin 92 -> 0 bytes
- tests/files/bad-2-index-2.xz | Bin 0 -> 92 bytes
- tests/files/bad-2-index-3.lzma | Bin 92 -> 0 bytes
- tests/files/bad-2-index-3.xz | Bin 0 -> 92 bytes
- tests/files/bad-2-index-4.lzma | Bin 92 -> 0 bytes
- tests/files/bad-2-index-4.xz | Bin 0 -> 92 bytes
- tests/files/good-0-empty.lzma | Bin 32 -> 0 bytes
- tests/files/good-0-empty.xz | Bin 0 -> 32 bytes
- tests/files/good-0cat-empty.lzma | Bin 64 -> 0 bytes
- tests/files/good-0cat-empty.xz | Bin 0 -> 64 bytes
- tests/files/good-0catpad-empty.lzma | Bin 68 -> 0 bytes
- tests/files/good-0catpad-empty.xz | Bin 0 -> 68 bytes
- tests/files/good-0pad-empty.lzma | Bin 36 -> 0 bytes
- tests/files/good-0pad-empty.xz | Bin 0 -> 36 bytes
- tests/files/good-1-3delta-lzma2.lzma | Bin 528 -> 0 bytes
- tests/files/good-1-3delta-lzma2.xz | Bin 0 -> 528 bytes
- tests/files/good-1-block_header-1.lzma | Bin 72 -> 0 bytes
- tests/files/good-1-block_header-1.xz | Bin 0 -> 72 bytes
- tests/files/good-1-block_header-2.lzma | Bin 68 -> 0 bytes
- tests/files/good-1-block_header-2.xz | Bin 0 -> 68 bytes
- tests/files/good-1-block_header-3.lzma | Bin 68 -> 0 bytes
- tests/files/good-1-block_header-3.xz | Bin 0 -> 68 bytes
- tests/files/good-1-check-crc32.lzma | Bin 68 -> 0 bytes
- tests/files/good-1-check-crc32.xz | Bin 0 -> 68 bytes
- tests/files/good-1-check-crc64.lzma | Bin 72 -> 0 bytes
- tests/files/good-1-check-crc64.xz | Bin 0 -> 72 bytes
- tests/files/good-1-check-none.lzma | Bin 64 -> 0 bytes
- tests/files/good-1-check-none.xz | Bin 0 -> 64 bytes
- tests/files/good-1-check-sha256.lzma | Bin 96 -> 0 bytes
- tests/files/good-1-check-sha256.xz | Bin 0 -> 96 bytes
- tests/files/good-1-delta-lzma2.tiff.lzma | Bin 51312 -> 0 bytes
- tests/files/good-1-delta-lzma2.tiff.xz | Bin 0 -> 51312 bytes
- tests/files/good-1-lzma2-1.lzma | Bin 424 -> 0 bytes
- tests/files/good-1-lzma2-1.xz | Bin 0 -> 424 bytes
- tests/files/good-1-lzma2-2.lzma | Bin 424 -> 0 bytes
- tests/files/good-1-lzma2-2.xz | Bin 0 -> 424 bytes
- tests/files/good-1-lzma2-3.lzma | Bin 408 -> 0 bytes
- tests/files/good-1-lzma2-3.xz | Bin 0 -> 408 bytes
- tests/files/good-1-sparc-lzma2.lzma | Bin 2292 -> 0 bytes
- tests/files/good-1-sparc-lzma2.xz | Bin 0 -> 2292 bytes
- tests/files/good-1-x86-lzma2.lzma | Bin 1936 -> 0 bytes
- tests/files/good-1-x86-lzma2.xz | Bin 0 -> 1936 bytes
- tests/files/good-2-lzma2.lzma | Bin 92 -> 0 bytes
- tests/files/good-2-lzma2.xz | Bin 0 -> 92 bytes
- tests/files/unsupported-block_header.lzma | Bin 68 -> 0 bytes
- tests/files/unsupported-block_header.xz | Bin 0 -> 68 bytes
- tests/files/unsupported-check.lzma | Bin 68 -> 0 bytes
- tests/files/unsupported-check.xz | Bin 0 -> 68 bytes
- tests/files/unsupported-filter_flags-1.lzma | Bin 68 -> 0 bytes
- tests/files/unsupported-filter_flags-1.xz | Bin 0 -> 68 bytes
- tests/files/unsupported-filter_flags-2.lzma | Bin 68 -> 0 bytes
- tests/files/unsupported-filter_flags-2.xz | Bin 0 -> 68 bytes
- tests/files/unsupported-filter_flags-3.lzma | Bin 68 -> 0 bytes
- tests/files/unsupported-filter_flags-3.xz | Bin 0 -> 68 bytes
- tests/test_files.sh | 6 +-
- 116 files changed, 66 insertions(+), 68 deletions(-)
-
commit 8e60c889a2816a63013a35c99ce26bf28f5b78eb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-30 13:57:44 +0300
+Date: Tue Sep 30 13:57:44 2008 +0300
Fixed Stream decoder to actually use the first_stream variable.
- src/liblzma/common/stream_decoder.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
commit 3bdbc12c054d1961133ee19802af7dd3c3494543
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-30 13:56:57 +0300
+Date: Tue Sep 30 13:56:57 2008 +0300
Added one more test file.
- tests/files/README | 15 +++++++++++----
- tests/files/bad-0cat-header_magic.lzma | Bin 0 -> 64 bytes
- 2 files changed, 11 insertions(+), 4 deletions(-)
-
commit a6639022fdc536e5659b070a465221b4cf7c51fa
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-30 13:34:07 +0300
+Date: Tue Sep 30 13:34:07 2008 +0300
Fixed uninitialized variable in Stream decoder.
- src/liblzma/common/stream_decoder.c | 1 +
- 1 file changed, 1 insertion(+)
-
commit ed3709000a3f17ecefab29b2235d7e2221b00003
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-30 13:27:28 +0300
+Date: Tue Sep 30 13:27:28 2008 +0300
Added two test files.
- tests/files/README | 6 ++++++
- tests/files/bad-0-footer_magic.lzma | Bin 0 -> 32 bytes
- tests/files/bad-0-header_magic.lzma | Bin 0 -> 32 bytes
- 3 files changed, 6 insertions(+)
-
commit ea560b0ea80525752bdcd0074d24f8dc170bbe29
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-27 23:49:24 +0300
+Date: Sat Sep 27 23:49:24 2008 +0300
Fix conflicting Subblock helper filter's ID.
- src/liblzma/common/common.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit ad97483b6e55142fd8d5c041db057017a891cd95
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-27 23:37:13 +0300
+Date: Sat Sep 27 23:37:13 2008 +0300
Changed magic bytes to match the updated spec. Filename
suffix wasn't changed yet.
- src/liblzma/common/auto_decoder.c | 4 ++--
- src/liblzma/common/stream_flags_common.c | 2 +-
- tests/files/bad-0-backward_size.lzma | Bin 32 -> 32 bytes
- tests/files/bad-0-empty-truncated.lzma | Bin 31 -> 31 bytes
- tests/files/bad-0-nonempty_index.lzma | Bin 32 -> 32 bytes
- tests/files/bad-0cat-alone.lzma | Bin 55 -> 55 bytes
- tests/files/bad-0catpad-empty.lzma | Bin 69 -> 69 bytes
- tests/files/bad-0pad-empty.lzma | Bin 37 -> 37 bytes
- tests/files/bad-1-block_header-1.lzma | Bin 64 -> 64 bytes
- tests/files/bad-1-block_header-2.lzma | Bin 64 -> 64 bytes
- tests/files/bad-1-block_header-3.lzma | Bin 68 -> 68 bytes
- tests/files/bad-1-block_header-4.lzma | Bin 72 -> 72 bytes
- tests/files/bad-1-check-crc32.lzma | Bin 68 -> 68 bytes
- tests/files/bad-1-check-crc64.lzma | Bin 72 -> 72 bytes
- tests/files/bad-1-check-sha256.lzma | Bin 96 -> 96 bytes
- tests/files/bad-1-lzma2-1.lzma | Bin 64 -> 64 bytes
- tests/files/bad-1-lzma2-2.lzma | Bin 424 -> 424 bytes
- tests/files/bad-1-lzma2-3.lzma | Bin 424 -> 424 bytes
- tests/files/bad-1-lzma2-4.lzma | Bin 408 -> 408 bytes
- tests/files/bad-1-lzma2-5.lzma | Bin 408 -> 408 bytes
- tests/files/bad-1-lzma2-6.lzma | Bin 68 -> 68 bytes
- tests/files/bad-1-lzma2-7.lzma | Bin 408 -> 408 bytes
- tests/files/bad-1-stream_flags-1.lzma | Bin 68 -> 68 bytes
- tests/files/bad-1-stream_flags-2.lzma | Bin 68 -> 68 bytes
- tests/files/bad-1-stream_flags-3.lzma | Bin 68 -> 68 bytes
- tests/files/bad-1-vli-1.lzma | Bin 72 -> 72 bytes
- tests/files/bad-1-vli-2.lzma | Bin 72 -> 72 bytes
- tests/files/bad-2-compressed_data_padding.lzma | Bin 92 -> 92 bytes
- tests/files/bad-2-index-1.lzma | Bin 92 -> 92 bytes
- tests/files/bad-2-index-2.lzma | Bin 92 -> 92 bytes
- tests/files/bad-2-index-3.lzma | Bin 92 -> 92 bytes
- tests/files/bad-2-index-4.lzma | Bin 92 -> 92 bytes
- tests/files/good-0-empty.lzma | Bin 32 -> 32 bytes
- tests/files/good-0cat-empty.lzma | Bin 64 -> 64 bytes
- tests/files/good-0catpad-empty.lzma | Bin 68 -> 68 bytes
- tests/files/good-0pad-empty.lzma | Bin 36 -> 36 bytes
- tests/files/good-1-3delta-lzma2.lzma | Bin 528 -> 528 bytes
- tests/files/good-1-block_header-1.lzma | Bin 72 -> 72 bytes
- tests/files/good-1-block_header-2.lzma | Bin 68 -> 68 bytes
- tests/files/good-1-block_header-3.lzma | Bin 68 -> 68 bytes
- tests/files/good-1-check-crc32.lzma | Bin 68 -> 68 bytes
- tests/files/good-1-check-crc64.lzma | Bin 72 -> 72 bytes
- tests/files/good-1-check-none.lzma | Bin 64 -> 64 bytes
- tests/files/good-1-check-sha256.lzma | Bin 96 -> 96 bytes
- tests/files/good-1-delta-lzma2.tiff.lzma | Bin 51312 -> 51312 bytes
- tests/files/good-1-lzma2-1.lzma | Bin 424 -> 424 bytes
- tests/files/good-1-lzma2-2.lzma | Bin 424 -> 424 bytes
- tests/files/good-1-lzma2-3.lzma | Bin 408 -> 408 bytes
- tests/files/good-1-sparc-lzma2.lzma | Bin 2292 -> 2292 bytes
- tests/files/good-1-x86-lzma2.lzma | Bin 1936 -> 1936 bytes
- tests/files/good-2-lzma2.lzma | Bin 92 -> 92 bytes
- tests/files/unsupported-block_header.lzma | Bin 68 -> 68 bytes
- tests/files/unsupported-check.lzma | Bin 68 -> 68 bytes
- tests/files/unsupported-filter_flags-1.lzma | Bin 68 -> 68 bytes
- tests/files/unsupported-filter_flags-2.lzma | Bin 68 -> 68 bytes
- tests/files/unsupported-filter_flags-3.lzma | Bin 68 -> 68 bytes
- 56 files changed, 3 insertions(+), 3 deletions(-)
-
commit 7a57069167e9e63394e2b095ee3a63253fcb51c7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-27 23:16:09 +0300
+Date: Sat Sep 27 23:16:09 2008 +0300
Remove po/fi.po since I'm not keeping it updated for now.
- po/fi.po | 446 ---------------------------------------------------------------
- 1 file changed, 446 deletions(-)
-
commit 018ae09df8f2fee5a7374f307df4cb42fad0b81e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-27 23:13:54 +0300
+Date: Sat Sep 27 23:13:54 2008 +0300
Fix also test_compress.sh.
- tests/test_compress.sh | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
commit 3a62a5fb85d2eebd8666e64ed5d364d095062858
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-27 23:01:15 +0300
+Date: Sat Sep 27 23:01:15 2008 +0300
Fixed compilation of test_filter_flags.c, which was broken by
1dcecfb09b55157b8653d747963069c8bed74f04.
- tests/test_filter_flags.c | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
commit c6ca26eef7cd07eba449035514e2b8f9ac3111c0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-27 19:11:02 +0300
+Date: Sat Sep 27 19:11:02 2008 +0300
Updated file format specification. It changes the suffix
of the new format to .xz and removes the recently added
LZMA filter.
- doc/file-format.txt | 125 ++++++++++++++--------------------------------------
- 1 file changed, 32 insertions(+), 93 deletions(-)
-
commit 1dcecfb09b55157b8653d747963069c8bed74f04
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-27 19:09:21 +0300
+Date: Sat Sep 27 19:09:21 2008 +0300
Some API changes, bug fixes, cleanups etc.
- configure.ac | 18 +-
- debug/full_flush.c | 7 +-
- debug/known_sizes.c | 6 +-
- debug/memusage.c | 22 +--
- debug/sync_flush.c | 18 +-
- src/liblzma/Makefile.am | 2 +-
- src/liblzma/api/lzma/delta.h | 8 +-
- src/liblzma/api/lzma/lzma.h | 230 ++++++++++++++++---------
- src/liblzma/common/alignment.c | 7 +-
- src/liblzma/common/alone_decoder.c | 11 +-
- src/liblzma/common/alone_encoder.c | 9 +-
- src/liblzma/common/chunk_size.c | 2 +-
- src/liblzma/common/easy.c | 20 ++-
- src/liblzma/common/filter_common.c | 4 +-
- src/liblzma/common/filter_decoder.c | 4 +-
- src/liblzma/common/filter_encoder.c | 4 +-
- src/liblzma/common/init_encoder.c | 2 +-
- src/liblzma/delta/delta_common.c | 12 +-
- src/liblzma/delta/delta_common.h | 2 +-
- src/liblzma/delta/delta_decoder.c | 2 +-
- src/liblzma/delta/delta_encoder.c | 6 +-
- src/liblzma/lz/lz_encoder.c | 30 ++--
- src/liblzma/lz/lz_encoder.h | 26 +--
- src/liblzma/lz/lz_encoder_mf.c | 30 ++--
- src/liblzma/lzma/Makefile.am | 4 +-
- src/liblzma/lzma/lzma2_decoder.c | 10 +-
- src/liblzma/lzma/lzma2_encoder.c | 27 ++-
- src/liblzma/lzma/lzma_common.h | 26 ++-
- src/liblzma/lzma/lzma_decoder.c | 37 ++--
- src/liblzma/lzma/lzma_encoder.c | 51 +++---
- src/liblzma/lzma/lzma_encoder_optimum_fast.c | 10 +-
- src/liblzma/lzma/lzma_encoder_optimum_normal.c | 20 +--
- src/liblzma/lzma/lzma_encoder_presets.c | 50 ++++--
- src/liblzma/rangecoder/Makefile.am | 4 +-
- src/liblzma/subblock/subblock_decoder.c | 2 +-
- src/lzma/args.c | 33 ++--
- src/lzma/help.c | 17 +-
- src/lzma/options.c | 92 +++++-----
- tests/test_block_header.c | 9 +-
- tests/test_compress.sh | 4 +-
- tests/test_filter_flags.c | 2 +-
- 41 files changed, 482 insertions(+), 398 deletions(-)
-
commit 5cc5064cae603b649c64c40125c7dd365de54c9d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-27 11:28:49 +0300
+Date: Sat Sep 27 11:28:49 2008 +0300
Added 7z2lzma.bash.
- extra/7z2lzma/7z2lzma.bash | 114 +++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 114 insertions(+)
-
commit f147666a5cd15542d4e427da58629f4a71cc38e1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-17 22:11:39 +0300
+Date: Wed Sep 17 22:11:39 2008 +0300
Miscellaneous LZ and LZMA encoder cleanups
- src/liblzma/api/lzma/lzma.h | 14 -------
- src/liblzma/lz/lz_encoder.c | 8 +++-
- src/liblzma/lzma/Makefile.am | 1 -
- src/liblzma/lzma/lzma_encoder.c | 64 ++++++++++++--------------------
- src/liblzma/lzma/lzma_encoder_features.c | 59 -----------------------------
- 5 files changed, 29 insertions(+), 117 deletions(-)
-
commit 13d68b069849e19c33822cd8996cd6447890abb1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-13 13:54:00 +0300
+Date: Sat Sep 13 13:54:00 2008 +0300
LZ decoder cleanup
- src/liblzma/lz/lz_decoder.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
commit 13a74b78e37f16c9096ba5fe1859cc04eaa2f9f7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-13 12:10:43 +0300
+Date: Sat Sep 13 12:10:43 2008 +0300
Renamed constants:
- LZMA_VLI_VALUE_MAX -> LZMA_VLI_MAX
@@ -9159,155 +7442,60 @@
- LZMA_VLI_VALUE_UNKNOWN -> LZMA_VLI_UNKNOWN
- LZMA_HEADER_ERRRO -> LZMA_OPTIONS_ERROR
- debug/full_flush.c | 2 +-
- debug/known_sizes.c | 2 +-
- debug/sync_flush.c | 2 +-
- src/liblzma/api/lzma/alignment.h | 2 +-
- src/liblzma/api/lzma/base.h | 4 ++--
- src/liblzma/api/lzma/block.h | 28 ++++++++++++++--------------
- src/liblzma/api/lzma/container.h | 12 ++++++------
- src/liblzma/api/lzma/filter.h | 28 ++++++++++++++--------------
- src/liblzma/api/lzma/index.h | 2 +-
- src/liblzma/api/lzma/lzma.h | 4 ++--
- src/liblzma/api/lzma/simple.h | 2 +-
- src/liblzma/api/lzma/stream_flags.h | 20 ++++++++++----------
- src/liblzma/api/lzma/vli.h | 16 ++++++++--------
- src/liblzma/common/alignment.c | 6 +++---
- src/liblzma/common/alone_decoder.c | 2 +-
- src/liblzma/common/auto_decoder.c | 2 +-
- src/liblzma/common/block_decoder.c | 12 ++++++------
- src/liblzma/common/block_encoder.c | 6 +++---
- src/liblzma/common/block_header_decoder.c | 16 ++++++++--------
- src/liblzma/common/block_header_encoder.c | 24 ++++++++++++------------
- src/liblzma/common/block_util.c | 8 ++++----
- src/liblzma/common/chunk_size.c | 2 +-
- src/liblzma/common/easy.c | 4 ++--
- src/liblzma/common/filter_common.c | 22 +++++++++++-----------
- src/liblzma/common/filter_decoder.c | 6 +++---
- src/liblzma/common/filter_encoder.c | 14 +++++++-------
- src/liblzma/common/index.c | 24 +++++++++++-------------
- src/liblzma/common/index.h | 2 +-
- src/liblzma/common/index_hash.c | 13 ++++++-------
- src/liblzma/common/stream_decoder.c | 4 ++--
- src/liblzma/common/stream_encoder.c | 4 ++--
- src/liblzma/common/stream_flags_common.c | 6 +++---
- src/liblzma/common/stream_flags_decoder.c | 6 +++---
- src/liblzma/common/stream_flags_encoder.c | 4 ++--
- src/liblzma/common/vli_encoder.c | 2 +-
- src/liblzma/common/vli_size.c | 2 +-
- src/liblzma/delta/delta_common.c | 2 +-
- src/liblzma/delta/delta_decoder.c | 2 +-
- src/liblzma/delta/delta_encoder.c | 2 +-
- src/liblzma/lz/lz_decoder.c | 2 +-
- src/liblzma/lz/lz_encoder.c | 2 +-
- src/liblzma/lzma/lzma2_decoder.c | 6 +++---
- src/liblzma/lzma/lzma_decoder.c | 14 +++++++-------
- src/liblzma/lzma/lzma_encoder.c | 8 ++++----
- src/liblzma/simple/simple_coder.c | 2 +-
- src/liblzma/simple/simple_decoder.c | 2 +-
- src/liblzma/subblock/subblock_decoder.c | 6 +++---
- src/liblzma/subblock/subblock_encoder.c | 17 ++++++++---------
- src/lzma/args.c | 2 +-
- src/lzma/error.c | 2 +-
- src/lzma/list.c | 6 +++---
- src/lzmadec/lzmadec.c | 2 +-
- tests/test_block.c | 8 ++++----
- tests/test_block_header.c | 30 +++++++++++++++---------------
- tests/test_filter_flags.c | 2 +-
- tests/test_index.c | 2 +-
- tests/test_stream_flags.c | 8 ++++----
- tests/tests.h | 2 +-
- 58 files changed, 220 insertions(+), 224 deletions(-)
-
commit 320601b2c7b08fc7da9da18d5bf7c3c1a189b080
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-12 22:41:40 +0300
+Date: Fri Sep 12 22:41:40 2008 +0300
Improved the Stream Flags handling API.
- src/liblzma/api/lzma/stream_flags.h | 84 +++++++++++++++++++++++++++++--
- src/liblzma/common/stream_decoder.c | 5 +-
- src/liblzma/common/stream_encoder.c | 2 +
- src/liblzma/common/stream_flags_common.c | 28 ++++++++---
- src/liblzma/common/stream_flags_common.h | 9 ++++
- src/liblzma/common/stream_flags_decoder.c | 3 +-
- src/liblzma/common/stream_flags_encoder.c | 10 ++--
- tests/test_stream_flags.c | 8 ++-
- 8 files changed, 129 insertions(+), 20 deletions(-)
-
commit ec490da5228263b25bf786bb23d1008468f55b30
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-11 23:10:44 +0300
+Date: Thu Sep 11 23:10:44 2008 +0300
Simplified debug/known_sizes.c to match the relaxed
requirements of Block encoder.
- debug/known_sizes.c | 14 +++++---------
- 1 file changed, 5 insertions(+), 9 deletions(-)
-
commit 16e8b98f2659347edfa74afdbbb9e73311153cb9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-11 23:09:24 +0300
+Date: Thu Sep 11 23:09:24 2008 +0300
Remove a check from Block encoder that should have already
been removed in 2ba01bfa755e47ff6af84a978e3c8d63d7d2775e.
- src/liblzma/common/block_encoder.c | 5 -----
- 1 file changed, 5 deletions(-)
-
commit 5a710c3805bdf6d7e3c92e954e4e4565b27bcb13
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-11 20:02:38 +0300
+Date: Thu Sep 11 20:02:38 2008 +0300
Remove bogus #includes.
- src/liblzma/common/Makefile.am | 1 -
- src/liblzma/common/stream_decoder.c | 3 ---
- src/liblzma/common/stream_encoder.c | 1 -
- src/liblzma/common/stream_flags_decoder.h | 31 -------------------------------
- 4 files changed, 36 deletions(-)
-
commit 01892b2ca5f69bed0ea746e04b604030d57806bb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-11 10:49:14 +0300
+Date: Thu Sep 11 10:49:14 2008 +0300
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 962f2231d49409fe6852e44ffe8c5dbabb04bc7d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-11 10:48:12 +0300
+Date: Thu Sep 11 10:48:12 2008 +0300
Fix a compiler error on big endian systems that don't
support unaligned memory access.
- src/common/integer.h | 32 ++++++++++++++++++--------------
- 1 file changed, 18 insertions(+), 14 deletions(-)
-
commit fa3ab0df8ae7a8a1ad55b52266dc0fd387458671
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-11 10:46:14 +0300
+Date: Thu Sep 11 10:46:14 2008 +0300
Silence a compiler warning.
- src/lzma/process.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 9373e81e18822db4972819442ea4c2cb9955470b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-10 19:16:32 +0300
+Date: Wed Sep 10 19:16:32 2008 +0300
Bumped version to 4.999.6alpha.
- configure.ac | 2 +-
- src/liblzma/api/lzma/version.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit cb072b7c8442ba68bb0c62c0abbbe939794887a3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-10 17:02:00 +0300
+Date: Wed Sep 10 17:02:00 2008 +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
@@ -9314,35 +7502,21 @@
is in the reserved range. This allows Block Header encoder to
detect unallowed Filter IDs, which is good for Stream encoder.
- src/liblzma/common/filter_flags_encoder.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
commit 123ab0acec435c9e9866a99e30482116cfbd9ba5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-10 16:44:32 +0300
+Date: Wed Sep 10 16:44:32 2008 +0300
Filter handling cleanups
- src/liblzma/api/lzma/filter.h | 133 +++++++++++++++++++++++++++---------
- src/liblzma/common/filter_common.h | 3 +
- src/liblzma/common/filter_decoder.c | 80 +++++++---------------
- src/liblzma/common/filter_decoder.h | 5 --
- src/liblzma/common/filter_encoder.c | 82 +++++++---------------
- src/liblzma/common/filter_encoder.h | 4 --
- 6 files changed, 156 insertions(+), 151 deletions(-)
-
commit 9cfcd0c4f2f865d8fbbb46ea28344a9be0dd8ad1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-10 00:33:00 +0300
+Date: Wed Sep 10 00:33:00 2008 +0300
Comments
- src/liblzma/common/stream_encoder.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
commit 2ba01bfa755e47ff6af84a978e3c8d63d7d2775e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-10 00:27:02 +0300
+Date: Wed Sep 10 00:27:02 2008 +0300
Cleaned up Block encoder and moved the no longer shared
code from block_private.h to block_decoder.c. Now the Block
@@ -9349,58 +7523,27 @@
encoder doesn't need compressed_size and uncompressed_size
from lzma_block structure to be initialized.
- src/liblzma/api/lzma/block.h | 3 --
- src/liblzma/common/Makefile.am | 1 -
- src/liblzma/common/block_decoder.c | 23 +++++++++-
- src/liblzma/common/block_encoder.c | 92 ++++++++++++++++++--------------------
- src/liblzma/common/block_private.h | 47 -------------------
- 5 files changed, 66 insertions(+), 100 deletions(-)
-
commit 07efcb5a6bc5d7018798ebd728586f84183e7d64
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-07 10:23:13 +0300
+Date: Sun Sep 7 10:23:13 2008 +0300
Changed Filter ID of LZMA to 0x20.
- doc/file-format.txt | 4 ++--
- src/liblzma/api/lzma/lzma.h | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
commit 32fe5fa541e82c08e054086279079ae5016bd8d8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-06 23:42:50 +0300
+Date: Sat Sep 6 23:42:50 2008 +0300
Comments
- src/liblzma/api/lzma/base.h | 81 ++++++++++++++++++++++++++--------------
- src/liblzma/api/lzma/container.h | 6 ++-
- src/liblzma/lz/lz_encoder.c | 3 +-
- src/liblzma/lz/lz_encoder.h | 12 +++---
- src/liblzma/lz/lz_encoder_mf.c | 2 +-
- 5 files changed, 65 insertions(+), 39 deletions(-)
-
commit 0a31ed9d5e3cde4feb094b66f3a8b2c074605d84
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-06 15:14:30 +0300
+Date: Sat Sep 6 15:14:30 2008 +0300
Some API cleanups
- src/liblzma/api/lzma/base.h | 314 +++++++++++++++++++++++-------------
- src/liblzma/api/lzma/check.h | 10 ++
- src/liblzma/api/lzma/container.h | 40 +++--
- src/liblzma/common/auto_decoder.c | 18 +--
- src/liblzma/common/common.c | 7 +
- src/liblzma/common/common.h | 18 ++-
- src/liblzma/common/easy.c | 2 +-
- src/liblzma/common/stream_decoder.c | 31 ++--
- src/lzma/process.c | 2 +-
- src/lzmadec/lzmadec.c | 6 +-
- tests/tests.h | 72 +++------
- 11 files changed, 301 insertions(+), 219 deletions(-)
-
commit da98df54400998be2a6c3876f9655a3c51b93c10
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-04 11:53:06 +0300
+Date: Thu Sep 4 11:53:06 2008 +0300
Added support for raw encoding and decoding to the command
line tool, and made various cleanups. --lzma was renamed to
@@ -9407,15 +7550,9 @@
--lzma1 to prevent people from accidentally using LZMA when
they want LZMA2.
- src/lzma/args.c | 17 +++++++++--------
- src/lzma/args.h | 1 +
- src/lzma/help.c | 24 ++++++------------------
- src/lzma/process.c | 42 ++++++++++++++++++++++++++++++++++--------
- 4 files changed, 50 insertions(+), 34 deletions(-)
-
commit 2496aee8a7741a8a0d42987db41ff2cf1a4bdabd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-04 10:39:15 +0300
+Date: Thu Sep 4 10:39:15 2008 +0300
Don't allow LZMA_SYNC_FLUSH with decoders anymore. There's
simply nothing that would use it. Allow LZMA_FINISH to the
@@ -9422,41 +7559,27 @@
decoders, which will usually ignore it (auto decoder and
Stream decoder being exceptions).
- src/liblzma/common/alone_decoder.c | 1 -
- src/liblzma/common/block_decoder.c | 2 +-
- src/liblzma/common/filter_decoder.c | 2 +-
- 3 files changed, 2 insertions(+), 3 deletions(-)
-
commit bea301c26d5d52675e11e0236faec0492af98f60
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-03 17:06:25 +0300
+Date: Wed Sep 3 17:06:25 2008 +0300
Minor updates to the file format specification.
- doc/file-format.txt | 105 ++++++++++++++++++++++++++++++++++++++++++----------
- 1 file changed, 85 insertions(+), 20 deletions(-)
-
commit 9c75b089b4a9e0edcf4cf7970a4383768707d6c8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-02 19:33:32 +0300
+Date: Tue Sep 2 19:33:32 2008 +0300
Command line tool fixes
- src/lzma/process.c | 21 +++++++++++++--------
- 1 file changed, 13 insertions(+), 8 deletions(-)
-
commit bab0590504b5aeff460ab4ca8c964dd7c1bad9e4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-02 19:31:42 +0300
+Date: Tue Sep 2 19:31:42 2008 +0300
Auto decoder cleanup
- src/liblzma/common/auto_decoder.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 689602336d126a46b60d791a67decab65e1e81f5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-02 19:12:12 +0300
+Date: Tue Sep 2 19:12:12 2008 +0300
Updated auto decoder to handle LZMA_CONCATENATED when decoding
LZMA_Alone files. Decoding of concatenated LZMA_Alone files is
@@ -9463,41 +7586,27 @@
intentionally not supported, so it is better to put this in
auto decoder than LZMA_Alone decoder.
- src/liblzma/common/auto_decoder.c | 87 ++++++++++++++++++++++++++++++++-------
- 1 file changed, 71 insertions(+), 16 deletions(-)
-
commit 80c4158f19904026433eb6f5d5ca98a0ecd4f66c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-02 14:56:52 +0300
+Date: Tue Sep 2 14:56:52 2008 +0300
Stream decoder cleanups
- src/liblzma/common/stream_decoder.c | 57 +++++++++++++++++++++----------------
- 1 file changed, 32 insertions(+), 25 deletions(-)
-
commit fc681657450ce57be1fe08f7a15d31dcc705e514
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-09-02 11:45:39 +0300
+Date: Tue Sep 2 11:45:39 2008 +0300
Some fixes to LZ encoder.
- src/liblzma/lz/lz_encoder.c | 56 ++++++++++++++++++++-----
- src/liblzma/lz/lz_encoder.h | 18 ++++----
- src/liblzma/lz/lz_encoder_mf.c | 95 +++++++++++++++++-------------------------
- 3 files changed, 94 insertions(+), 75 deletions(-)
-
commit ede675f9ac1ca82a7d7c290324adba672118bc8d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-08-31 11:47:01 +0300
+Date: Sun Aug 31 11:47:01 2008 +0300
Fix wrong pointer calculation in LZMA encoder.
- src/liblzma/lzma/lzma_encoder.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
commit 3b34851de1eaf358cf9268922fa0eeed8278d680
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-08-28 22:53:15 +0300
+Date: Thu Aug 28 22:53:15 2008 +0300
Sort of garbage collection commit. :-| Many things are still
broken. API has changed a lot and it will still change a
@@ -9505,323 +7614,21 @@
have all the required changes to reflect the API changes, so
it's easy to get "internal error" or trigger assertions.
- configure.ac | 356 +++---
- debug/Makefile.am | 5 +-
- debug/crc32.c | 45 +
- debug/full_flush.c | 14 +-
- debug/hex2bin.c | 54 +
- debug/known_sizes.c | 135 ++
- debug/memusage.c | 8 +-
- debug/sync_flush.c | 20 +-
- src/common/integer.h | 26 +-
- src/common/sysdefs.h | 42 +-
- src/liblzma/Makefile.am | 17 +-
- src/liblzma/api/Makefile.am | 6 +-
- src/liblzma/api/lzma.h | 161 ++-
- src/liblzma/api/lzma/alignment.h | 6 +-
- src/liblzma/api/lzma/alone.h | 52 -
- src/liblzma/api/lzma/auto.h | 36 -
- src/liblzma/api/lzma/base.h | 61 +-
- src/liblzma/api/lzma/block.h | 38 +-
- src/liblzma/api/lzma/check.h | 41 +-
- src/liblzma/api/lzma/container.h | 252 ++++
- src/liblzma/api/lzma/delta.h | 36 +-
- src/liblzma/api/lzma/easy.h | 121 --
- src/liblzma/api/lzma/filter.h | 74 +-
- src/liblzma/api/lzma/index.h | 40 +-
- src/liblzma/api/lzma/index_hash.h | 12 +-
- src/liblzma/api/lzma/lzma.h | 222 ++--
- src/liblzma/api/lzma/memlimit.h | 15 +-
- src/liblzma/api/lzma/raw.h | 60 -
- src/liblzma/api/lzma/simple.h | 2 +-
- src/liblzma/api/lzma/stream.h | 53 -
- src/liblzma/api/lzma/stream_flags.h | 17 +-
- src/liblzma/api/lzma/subblock.h | 4 +-
- src/liblzma/api/lzma/version.h | 10 +-
- src/liblzma/api/lzma/vli.h | 131 +-
- src/liblzma/check/check.c | 128 +-
- src/liblzma/check/check.h | 67 +-
- src/liblzma/check/sha256.c | 29 +-
- src/liblzma/common/Makefile.am | 51 +-
- src/liblzma/common/alignment.c | 4 +-
- src/liblzma/common/allocator.c | 58 -
- src/liblzma/common/alone_decoder.c | 49 +-
- src/liblzma/common/alone_decoder.h | 9 +-
- src/liblzma/common/alone_encoder.c | 13 +-
- src/liblzma/common/auto_decoder.c | 38 +-
- src/liblzma/common/block_decoder.c | 67 +-
- src/liblzma/common/block_decoder.h | 2 +-
- src/liblzma/common/block_encoder.c | 42 +-
- src/liblzma/common/block_encoder.h | 2 +-
- src/liblzma/common/block_header_decoder.c | 6 +-
- src/liblzma/common/block_header_encoder.c | 9 +-
- src/liblzma/common/block_util.c | 10 +-
- src/liblzma/common/code.c | 203 ---
- src/liblzma/common/common.c | 298 +++++
- src/liblzma/common/common.h | 237 ++--
- src/liblzma/common/delta_common.c | 66 -
- src/liblzma/common/delta_common.h | 44 -
- src/liblzma/common/delta_decoder.c | 61 -
- src/liblzma/common/delta_decoder.h | 28 -
- src/liblzma/common/delta_encoder.c | 98 --
- src/liblzma/common/delta_encoder.h | 28 -
- src/liblzma/common/easy.c | 18 +-
- src/liblzma/common/features.c | 66 -
- src/liblzma/common/filter_common.c | 262 ++++
- src/liblzma/common/filter_common.h | 52 +
- src/liblzma/common/filter_decoder.c | 236 ++++
- src/liblzma/common/filter_decoder.h | 35 +
- src/liblzma/common/filter_encoder.c | 308 +++++
- src/liblzma/common/filter_encoder.h | 38 +
- src/liblzma/common/filter_flags_decoder.c | 185 +--
- src/liblzma/common/filter_flags_encoder.c | 261 +---
- src/liblzma/common/index_decoder.c | 14 +-
- src/liblzma/common/index_encoder.c | 16 +-
- src/liblzma/common/index_hash.c | 8 +-
- src/liblzma/common/init_encoder.c | 2 +-
- src/liblzma/common/memory_usage.c | 112 --
- src/liblzma/common/next_coder.c | 65 -
- src/liblzma/common/raw_common.c | 127 --
- src/liblzma/common/raw_common.h | 30 -
- src/liblzma/common/raw_decoder.c | 116 --
- src/liblzma/common/raw_decoder.h | 29 -
- src/liblzma/common/raw_encoder.c | 111 --
- src/liblzma/common/raw_encoder.h | 29 -
- src/liblzma/common/stream_common.c | 23 -
- src/liblzma/common/stream_common.h | 31 -
- src/liblzma/common/stream_decoder.c | 238 +++-
- src/liblzma/common/stream_decoder.h | 4 +-
- src/liblzma/common/stream_encoder.c | 35 +-
- src/liblzma/common/stream_encoder.h | 2 +-
- src/liblzma/common/stream_flags_common.c | 40 +
- src/liblzma/common/stream_flags_common.h | 31 +
- src/liblzma/common/stream_flags_decoder.c | 2 +-
- src/liblzma/common/stream_flags_encoder.c | 2 +-
- src/liblzma/common/stream_flags_equal.c | 36 -
- src/liblzma/common/version.c | 25 -
- src/liblzma/common/vli_decoder.c | 29 +-
- src/liblzma/common/vli_encoder.c | 23 +-
- src/liblzma/common/vli_size.c | 37 +
- src/liblzma/delta/Makefile.am | 34 +
- src/liblzma/delta/delta_common.c | 66 +
- src/liblzma/delta/delta_common.h | 44 +
- src/liblzma/delta/delta_decoder.c | 82 ++
- src/liblzma/delta/delta_decoder.h | 32 +
- src/liblzma/delta/delta_encoder.c | 119 ++
- src/liblzma/delta/delta_encoder.h | 30 +
- src/liblzma/lz/Makefile.am | 35 +-
- src/liblzma/lz/bt2.c | 27 -
- src/liblzma/lz/bt2.h | 31 -
- src/liblzma/lz/bt3.c | 29 -
- src/liblzma/lz/bt3.h | 31 -
- src/liblzma/lz/bt4.c | 30 -
- src/liblzma/lz/bt4.h | 31 -
- src/liblzma/lz/hc3.c | 30 -
- src/liblzma/lz/hc3.h | 31 -
- src/liblzma/lz/hc4.c | 31 -
- src/liblzma/lz/hc4.h | 31 -
- src/liblzma/lz/lz_decoder.c | 547 +++-----
- src/liblzma/lz/lz_decoder.h | 308 ++---
- src/liblzma/lz/lz_encoder.c | 780 ++++++------
- src/liblzma/lz/lz_encoder.h | 334 +++--
- src/liblzma/lz/lz_encoder_hash.h | 104 ++
- src/liblzma/lz/lz_encoder_mf.c | 780 ++++++++++++
- src/liblzma/lz/lz_encoder_private.h | 40 -
- src/liblzma/lz/match_c.h | 412 ------
- src/liblzma/lz/match_h.h | 69 --
- src/liblzma/lzma/Makefile.am | 37 +-
- src/liblzma/lzma/fastpos.h | 8 +-
- src/liblzma/lzma/lzma2_decoder.c | 318 +++++
- src/liblzma/lzma/lzma2_decoder.h | 35 +
- src/liblzma/lzma/lzma2_encoder.c | 406 ++++++
- src/liblzma/lzma/lzma2_encoder.h | 34 +
- src/liblzma/lzma/lzma_common.h | 208 +++-
- src/liblzma/lzma/lzma_decoder.c | 1306 ++++++++++++--------
- src/liblzma/lzma/lzma_decoder.h | 21 +-
- src/liblzma/lzma/lzma_encoder.c | 576 +++++++--
- src/liblzma/lzma/lzma_encoder.h | 38 +-
- src/liblzma/lzma/lzma_encoder_features.c | 2 +-
- src/liblzma/lzma/lzma_encoder_getoptimum.c | 925 --------------
- src/liblzma/lzma/lzma_encoder_getoptimumfast.c | 201 ---
- src/liblzma/lzma/lzma_encoder_init.c | 228 ----
- src/liblzma/lzma/lzma_encoder_optimum_fast.c | 193 +++
- src/liblzma/lzma/lzma_encoder_optimum_normal.c | 875 +++++++++++++
- src/liblzma/lzma/lzma_encoder_presets.c | 52 +-
- src/liblzma/lzma/lzma_encoder_private.h | 174 +--
- src/liblzma/lzma/lzma_literal.c | 51 -
- src/liblzma/lzma/lzma_literal.h | 71 --
- src/liblzma/rangecoder/Makefile.am | 10 +-
- src/liblzma/rangecoder/price.h | 111 ++
- src/liblzma/rangecoder/price_table.c | 84 +-
- src/liblzma/rangecoder/price_table_gen.c | 55 -
- src/liblzma/rangecoder/price_table_init.c | 33 +-
- src/liblzma/rangecoder/price_tablegen.c | 56 +
- src/liblzma/rangecoder/range_common.h | 17 +-
- src/liblzma/rangecoder/range_decoder.h | 209 ++--
- src/liblzma/rangecoder/range_encoder.h | 92 +-
- src/liblzma/simple/Makefile.am | 12 +
- src/liblzma/simple/simple_coder.c | 8 +-
- src/liblzma/simple/simple_decoder.c | 47 +
- src/liblzma/simple/simple_decoder.h | 29 +
- src/liblzma/simple/simple_encoder.c | 45 +
- src/liblzma/simple/simple_encoder.h | 30 +
- src/liblzma/subblock/Makefile.am | 4 +-
- src/liblzma/subblock/subblock_decoder.c | 20 +-
- src/liblzma/subblock/subblock_decoder_helper.c | 2 +-
- src/liblzma/subblock/subblock_encoder.c | 28 +-
- src/lzma/args.c | 35 +-
- src/lzma/args.h | 4 +-
- src/lzma/options.c | 14 +-
- src/lzma/process.c | 88 +-
- src/lzmadec/lzmadec.c | 157 +--
- tests/Makefile.am | 1 +
- tests/files/README | 303 ++---
- tests/files/bad-0-backward_size.lzma | Bin 0 -> 32 bytes
- tests/files/bad-0-empty-truncated.lzma | Bin 0 -> 31 bytes
- tests/files/bad-0-nonempty_index.lzma | Bin 0 -> 32 bytes
- tests/files/bad-0cat-alone.lzma | Bin 0 -> 55 bytes
- tests/files/bad-0catpad-empty.lzma | Bin 0 -> 69 bytes
- tests/files/bad-0pad-empty.lzma | Bin 0 -> 37 bytes
- tests/files/bad-1-block_header-1.lzma | Bin 0 -> 64 bytes
- tests/files/bad-1-block_header-2.lzma | Bin 0 -> 64 bytes
- tests/files/bad-1-block_header-3.lzma | Bin 0 -> 68 bytes
- tests/files/bad-1-block_header-4.lzma | Bin 0 -> 72 bytes
- tests/files/bad-1-check-crc32.lzma | Bin 0 -> 68 bytes
- tests/files/bad-1-check-crc64.lzma | Bin 0 -> 72 bytes
- tests/files/bad-1-check-sha256.lzma | Bin 0 -> 96 bytes
- tests/files/bad-1-lzma2-1.lzma | Bin 0 -> 64 bytes
- tests/files/bad-1-lzma2-2.lzma | Bin 0 -> 424 bytes
- tests/files/bad-1-lzma2-3.lzma | Bin 0 -> 424 bytes
- tests/files/bad-1-lzma2-4.lzma | Bin 0 -> 408 bytes
- tests/files/bad-1-lzma2-5.lzma | Bin 0 -> 408 bytes
- tests/files/bad-1-lzma2-6.lzma | Bin 0 -> 68 bytes
- tests/files/bad-1-lzma2-7.lzma | Bin 0 -> 408 bytes
- tests/files/bad-1-stream_flags-1.lzma | Bin 0 -> 68 bytes
- tests/files/bad-1-stream_flags-2.lzma | Bin 0 -> 68 bytes
- tests/files/bad-1-stream_flags-3.lzma | Bin 0 -> 68 bytes
- tests/files/bad-1-vli-1.lzma | Bin 0 -> 72 bytes
- tests/files/bad-1-vli-2.lzma | Bin 0 -> 72 bytes
- tests/files/bad-2-compressed_data_padding.lzma | Bin 0 -> 92 bytes
- tests/files/bad-2-index-1.lzma | Bin 0 -> 92 bytes
- tests/files/bad-2-index-2.lzma | Bin 0 -> 92 bytes
- tests/files/bad-2-index-3.lzma | Bin 0 -> 92 bytes
- tests/files/bad-2-index-4.lzma | Bin 0 -> 92 bytes
- tests/files/bad-cat-single-none-pad_garbage_1.lzma | Bin 65 -> 0 bytes
- tests/files/bad-cat-single-none-pad_garbage_2.lzma | Bin 65 -> 0 bytes
- tests/files/bad-cat-single-none-pad_garbage_3.lzma | Bin 65 -> 0 bytes
- tests/files/bad-multi-none-1.lzma | Bin 54 -> 0 bytes
- tests/files/bad-multi-none-2.lzma | Bin 53 -> 0 bytes
- tests/files/bad-multi-none-3.lzma | Bin 53 -> 0 bytes
- tests/files/bad-multi-none-block_1.lzma | Bin 66 -> 0 bytes
- tests/files/bad-multi-none-block_2.lzma | Bin 66 -> 0 bytes
- tests/files/bad-multi-none-block_3.lzma | Bin 58 -> 0 bytes
- tests/files/bad-multi-none-extra_1.lzma | Bin 54 -> 0 bytes
- tests/files/bad-multi-none-extra_2.lzma | Bin 54 -> 0 bytes
- tests/files/bad-multi-none-extra_3.lzma | Bin 55 -> 0 bytes
- tests/files/bad-multi-none-header_1.lzma | Bin 57 -> 0 bytes
- tests/files/bad-multi-none-header_2.lzma | Bin 61 -> 0 bytes
- tests/files/bad-multi-none-header_3.lzma | Bin 59 -> 0 bytes
- tests/files/bad-multi-none-header_4.lzma | Bin 59 -> 0 bytes
- tests/files/bad-multi-none-header_5.lzma | Bin 58 -> 0 bytes
- tests/files/bad-multi-none-header_6.lzma | Bin 59 -> 0 bytes
- tests/files/bad-multi-none-header_7.lzma | Bin 59 -> 0 bytes
- tests/files/bad-multi-none-index_1.lzma | Bin 51 -> 0 bytes
- tests/files/bad-multi-none-index_2.lzma | Bin 49 -> 0 bytes
- tests/files/bad-multi-none-index_3.lzma | Bin 51 -> 0 bytes
- tests/files/bad-multi-none-index_4.lzma | Bin 51 -> 0 bytes
- tests/files/bad-single-data_after_eopm_1.lzma | Bin 55 -> 0 bytes
- tests/files/bad-single-data_after_eopm_2.lzma | Bin 56 -> 0 bytes
- tests/files/bad-single-lzma-flush_beginning.lzma | Bin 53 -> 0 bytes
- tests/files/bad-single-lzma-flush_twice.lzma | Bin 63 -> 0 bytes
- tests/files/bad-single-none-empty.lzma | Bin 19 -> 0 bytes
- .../files/bad-single-none-footer_filter_flags.lzma | Bin 30 -> 0 bytes
- tests/files/bad-single-none-too_long_vli.lzma | Bin 39 -> 0 bytes
- tests/files/bad-single-none-truncated.lzma | Bin 29 -> 0 bytes
- tests/files/bad-single-subblock-padding_loop.lzma | Bin 43 -> 0 bytes
- tests/files/bad-single-subblock1023-slow.lzma | Bin 7886 -> 0 bytes
- tests/files/bad-single-subblock_subblock.lzma | Bin 26 -> 0 bytes
- tests/files/good-0-empty.lzma | Bin 0 -> 32 bytes
- tests/files/good-0cat-empty.lzma | Bin 0 -> 64 bytes
- tests/files/good-0catpad-empty.lzma | Bin 0 -> 68 bytes
- tests/files/good-0pad-empty.lzma | Bin 0 -> 36 bytes
- tests/files/good-1-3delta-lzma2.lzma | Bin 0 -> 528 bytes
- tests/files/good-1-block_header-1.lzma | Bin 0 -> 72 bytes
- tests/files/good-1-block_header-2.lzma | Bin 0 -> 68 bytes
- tests/files/good-1-block_header-3.lzma | Bin 0 -> 68 bytes
- tests/files/good-1-check-crc32.lzma | Bin 0 -> 68 bytes
- tests/files/good-1-check-crc64.lzma | Bin 0 -> 72 bytes
- tests/files/good-1-check-none.lzma | Bin 0 -> 64 bytes
- tests/files/good-1-check-sha256.lzma | Bin 0 -> 96 bytes
- tests/files/good-1-delta-lzma2.tiff.lzma | Bin 0 -> 51312 bytes
- tests/files/good-1-lzma2-1.lzma | Bin 0 -> 424 bytes
- tests/files/good-1-lzma2-2.lzma | Bin 0 -> 424 bytes
- tests/files/good-1-lzma2-3.lzma | Bin 0 -> 408 bytes
- tests/files/good-1-sparc-lzma2.lzma | Bin 0 -> 2292 bytes
- tests/files/good-1-x86-lzma2.lzma | Bin 0 -> 1936 bytes
- tests/files/good-2-lzma2.lzma | Bin 0 -> 92 bytes
- tests/files/good-cat-single-none-pad.lzma | Bin 64 -> 0 bytes
- tests/files/good-multi-none-1.lzma | Bin 75 -> 0 bytes
- tests/files/good-multi-none-2.lzma | Bin 53 -> 0 bytes
- tests/files/good-multi-none-block_1.lzma | Bin 66 -> 0 bytes
- tests/files/good-multi-none-block_2.lzma | Bin 58 -> 0 bytes
- tests/files/good-multi-none-extra_1.lzma | Bin 51 -> 0 bytes
- tests/files/good-multi-none-extra_2.lzma | Bin 79 -> 0 bytes
- tests/files/good-multi-none-extra_3.lzma | Bin 55 -> 0 bytes
- tests/files/good-multi-none-header_1.lzma | Bin 58 -> 0 bytes
- tests/files/good-multi-none-header_2.lzma | Bin 66 -> 0 bytes
- tests/files/good-multi-none-header_3.lzma | Bin 59 -> 0 bytes
- tests/files/good-single-delta-lzma.tiff.lzma | Bin 51409 -> 0 bytes
- tests/files/good-single-lzma-empty.lzma | Bin 21 -> 0 bytes
- tests/files/good-single-lzma-flush_1.lzma | Bin 48 -> 0 bytes
- tests/files/good-single-lzma-flush_2.lzma | Bin 63 -> 0 bytes
- tests/files/good-single-lzma.lzma | Bin 44 -> 0 bytes
- tests/files/good-single-none-empty_1.lzma | Bin 18 -> 0 bytes
- tests/files/good-single-none-empty_2.lzma | Bin 26 -> 0 bytes
- tests/files/good-single-none-empty_3.lzma | Bin 19 -> 0 bytes
- tests/files/good-single-none-pad.lzma | Bin 32 -> 0 bytes
- tests/files/good-single-none.lzma | Bin 30 -> 0 bytes
- tests/files/good-single-sparc-lzma.lzma | Bin 2263 -> 0 bytes
- tests/files/good-single-subblock-lzma.lzma | Bin 50 -> 0 bytes
- tests/files/good-single-subblock_implicit.lzma | Bin 35 -> 0 bytes
- tests/files/good-single-subblock_rle.lzma | Bin 118 -> 0 bytes
- tests/files/good-single-x86-lzma.lzma | Bin 1909 -> 0 bytes
- tests/files/malicious-multi-metadata-64PiB.lzma | Bin 51 -> 0 bytes
- tests/files/malicious-single-subblock-256MiB.lzma | Bin 30 -> 0 bytes
- tests/files/malicious-single-subblock-64PiB.lzma | Bin 45 -> 0 bytes
- tests/files/malicious-single-subblock31-slow.lzma | Bin 1233 -> 0 bytes
- tests/files/unsupported-block_header.lzma | Bin 0 -> 68 bytes
- tests/files/unsupported-check.lzma | Bin 0 -> 68 bytes
- tests/files/unsupported-filter_flags-1.lzma | Bin 0 -> 68 bytes
- tests/files/unsupported-filter_flags-2.lzma | Bin 0 -> 68 bytes
- tests/files/unsupported-filter_flags-3.lzma | Bin 0 -> 68 bytes
- tests/test_block_header.c | 28 +-
- tests/test_compress.sh | 4 +-
- tests/test_filter_flags.c | 51 +-
- tests/test_stream_flags.c | 4 +-
- tests/tests.h | 8 +
- 294 files changed, 9768 insertions(+), 8195 deletions(-)
-
commit 57b9a145a527f0716822615e5ed536d33aebd3fc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-06-20 17:16:32 +0300
+Date: Fri Jun 20 17:16:32 2008 +0300
Fix test_filter_flags to match the new restriction of lc+lp.
- tests/test_filter_flags.c | 3 +++
- 1 file changed, 3 insertions(+)
-
commit eaafc4367c77ec1d910e16d11b4da293969d97a3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-06-20 16:19:54 +0300
+Date: Fri Jun 20 16:19:54 2008 +0300
Remove some redundant code from LZMA encoder.
- src/liblzma/lzma/lzma_encoder.c | 15 +--------------
- 1 file changed, 1 insertion(+), 14 deletions(-)
-
commit 0809c46534fa5664fe35d9e98d95e87312ed130e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-06-19 16:35:08 +0300
+Date: Thu Jun 19 16:35:08 2008 +0300
Add limit of lc + lp <= 4. Now we can allocate the
literal coder as part of the main LZMA encoder or
@@ -9830,36 +7637,22 @@
Make the LZMA decoder to rely on the current internal API
to free the allocated memory in case an error occurs.
- src/liblzma/api/lzma/lzma.h | 10 +++++-
- src/liblzma/lzma/lzma_decoder.c | 57 ++++++++-------------------------
- src/liblzma/lzma/lzma_encoder_init.c | 13 ++++----
- src/liblzma/lzma/lzma_encoder_private.h | 2 +-
- src/liblzma/lzma/lzma_literal.c | 39 +++++-----------------
- src/liblzma/lzma/lzma_literal.h | 13 +++-----
- 6 files changed, 43 insertions(+), 91 deletions(-)
-
commit d25ab1b96178f06a0e724f58e3cd68300b2b1275
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-06-18 21:45:19 +0300
+Date: Wed Jun 18 21:45:19 2008 +0300
Comments
- src/liblzma/lzma/lzma_encoder.c | 7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
-
commit 6368a2fa5901c75864be5171dd57a50af7adbb41
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-06-18 19:19:02 +0300
+Date: Wed Jun 18 19:19:02 2008 +0300
Delete old code that was supposed to be already deleted
from test_block_header.c.
- tests/test_block_header.c | 30 ------------------------------
- 1 file changed, 30 deletions(-)
-
commit 7d17818cec8597f847b0a2537fde991bbc3d9e96
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-06-18 18:02:10 +0300
+Date: Wed Jun 18 18:02:10 2008 +0300
Update the code to mostly match the new simpler file format
specification. Simplify things by removing most of the
@@ -9875,169 +7668,39 @@
updated once the encoded format of the Subblock filter
has been decided.
- configure.ac | 41 +-
- debug/full_flush.c | 16 +-
- debug/sync_flush.c | 15 +-
- src/common/bswap.h | 44 ++
- src/common/integer.h | 167 +++++
- src/liblzma/api/Makefile.am | 5 +-
- src/liblzma/api/lzma.h | 9 +-
- src/liblzma/api/lzma/alone.h | 32 +-
- src/liblzma/api/lzma/auto.h | 7 +-
- src/liblzma/api/lzma/base.h | 15 +
- src/liblzma/api/lzma/block.h | 306 +++-------
- src/liblzma/api/lzma/check.h | 18 +-
- src/liblzma/api/lzma/copy.h | 29 -
- src/liblzma/api/lzma/easy.h | 61 +-
- src/liblzma/api/lzma/extra.h | 114 ----
- src/liblzma/api/lzma/filter.h | 5 +-
- src/liblzma/api/lzma/index.h | 204 ++++++-
- src/liblzma/api/lzma/index_hash.h | 94 +++
- src/liblzma/api/lzma/info.h | 315 ----------
- src/liblzma/api/lzma/lzma.h | 2 +-
- src/liblzma/api/lzma/metadata.h | 100 ---
- src/liblzma/api/lzma/raw.h | 20 +-
- src/liblzma/api/lzma/stream.h | 157 +----
- src/liblzma/api/lzma/stream_flags.h | 146 +++--
- src/liblzma/api/lzma/version.h | 2 +-
- src/liblzma/api/lzma/vli.h | 83 ++-
- src/liblzma/check/Makefile.am | 1 -
- src/liblzma/check/check.c | 55 +-
- src/liblzma/check/check.h | 47 +-
- src/liblzma/check/check_byteswap.h | 43 --
- src/liblzma/check/crc32_init.c | 2 +-
- src/liblzma/check/crc64_init.c | 2 +-
- src/liblzma/check/crc_macros.h | 2 +-
- src/liblzma/check/sha256.c | 53 +-
- src/liblzma/common/Makefile.am | 31 +-
- src/liblzma/common/alignment.c | 5 +-
- src/liblzma/common/alone_decoder.c | 77 +--
- src/liblzma/common/alone_encoder.c | 99 ++-
- src/liblzma/common/auto_decoder.c | 18 +-
- src/liblzma/common/block_decoder.c | 298 +++------
- src/liblzma/common/block_encoder.c | 228 ++-----
- src/liblzma/common/block_header_decoder.c | 400 +++---------
- src/liblzma/common/block_header_encoder.c | 207 +++----
- src/liblzma/common/block_private.h | 51 +-
- src/liblzma/common/block_util.c | 73 +++
- src/liblzma/common/common.h | 44 +-
- src/liblzma/common/copy_coder.c | 144 -----
- src/liblzma/common/copy_coder.h | 31 -
- src/liblzma/common/delta_common.c | 4 -
- src/liblzma/common/delta_common.h | 4 -
- src/liblzma/common/delta_decoder.c | 55 +-
- src/liblzma/common/delta_encoder.c | 7 +-
- src/liblzma/common/easy.c | 122 ++++
- src/liblzma/common/easy_common.c | 54 --
- src/liblzma/common/easy_common.h | 28 -
- src/liblzma/common/easy_multi.c | 103 ----
- src/liblzma/common/easy_single.c | 37 --
- src/liblzma/common/extra.c | 34 --
- src/liblzma/common/features.c | 4 -
- src/liblzma/common/filter_flags_decoder.c | 384 ++++--------
- src/liblzma/common/filter_flags_encoder.c | 120 +---
- src/liblzma/common/index.c | 773 ++++++++++++++++++++---
- src/liblzma/common/index.h | 67 ++
- src/liblzma/common/index_decoder.c | 252 ++++++++
- src/liblzma/common/index_encoder.c | 222 +++++++
- src/liblzma/common/index_encoder.h | 30 +
- src/liblzma/common/index_hash.c | 340 +++++++++++
- src/liblzma/common/info.c | 814 -------------------------
- src/liblzma/common/memory_usage.c | 1 -
- src/liblzma/common/metadata_decoder.c | 578 ------------------
- src/liblzma/common/metadata_decoder.h | 31 -
- src/liblzma/common/metadata_encoder.c | 435 -------------
- src/liblzma/common/metadata_encoder.h | 30 -
- src/liblzma/common/raw_common.c | 178 ++----
- src/liblzma/common/raw_common.h | 5 +-
- src/liblzma/common/raw_decoder.c | 19 +-
- src/liblzma/common/raw_decoder.h | 3 +-
- src/liblzma/common/raw_encoder.c | 101 +--
- src/liblzma/common/raw_encoder.h | 3 +-
- src/liblzma/common/stream_common.h | 3 +
- src/liblzma/common/stream_decoder.c | 458 +++++---------
- src/liblzma/common/stream_decoder.h | 28 +
- src/liblzma/common/stream_encoder.c | 282 +++++++++
- src/liblzma/common/stream_encoder.h | 30 +
- src/liblzma/common/stream_encoder_multi.c | 445 --------------
- src/liblzma/common/stream_encoder_multi.h | 26 -
- src/liblzma/common/stream_encoder_single.c | 219 -------
- src/liblzma/common/stream_flags_decoder.c | 260 ++------
- src/liblzma/common/stream_flags_encoder.c | 56 +-
- src/liblzma/common/stream_flags_equal.c | 36 ++
- src/liblzma/common/vli_decoder.c | 68 ++-
- src/liblzma/common/vli_encoder.c | 59 +-
- src/liblzma/common/vli_reverse_decoder.c | 55 --
- src/liblzma/lz/lz_decoder.c | 6 +-
- src/liblzma/lz/lz_decoder.h | 10 +-
- src/liblzma/lzma/lzma_decoder.c | 13 +-
- src/liblzma/lzma/lzma_decoder.h | 10 +-
- src/liblzma/simple/simple_coder.c | 29 +-
- src/liblzma/simple/simple_private.h | 4 -
- src/liblzma/subblock/subblock_decoder.c | 106 +---
- src/liblzma/subblock/subblock_decoder_helper.c | 5 +-
- src/liblzma/subblock/subblock_encoder.c | 8 +-
- src/lzma/args.c | 22 +-
- src/lzma/args.h | 2 -
- src/lzma/error.c | 6 +
- src/lzma/process.c | 26 +-
- src/lzmadec/lzmadec.c | 8 +-
- tests/Makefile.am | 5 +-
- tests/test_block_header.c | 411 +++++--------
- tests/test_compress.sh | 65 +-
- tests/test_filter_flags.c | 116 ++--
- tests/test_index.c | 504 ++++++++++++++-
- tests/test_info.c | 717 ----------------------
- tests/test_stream_flags.c | 134 ++--
- tests/tests.h | 14 +-
- 115 files changed, 4846 insertions(+), 8156 deletions(-)
-
commit bf6348d1a3ff09fdc06940468f318f75ffa6af11
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-06-17 15:03:46 +0300
+Date: Tue Jun 17 15:03:46 2008 +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.
- doc/file-format.txt | 1794 +++++++++++++++------------------------------------
- 1 file changed, 508 insertions(+), 1286 deletions(-)
-
commit 803194ddd26f01ff60ba4e9924c6087a56b29827
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-06-11 21:42:47 +0300
+Date: Wed Jun 11 21:42:47 2008 +0300
Fix uninitialized variable in LZMA encoder. This was
introduced in 369f72fd656f537a9a8e06f13e6d0d4c242be22f.
- src/liblzma/lzma/lzma_encoder_init.c | 2 ++
- 1 file changed, 2 insertions(+)
-
commit 0ea98e52ba87453497b1355c51f13bad55c8924a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-06-11 15:08:44 +0300
+Date: Wed Jun 11 15:08:44 2008 +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.
- src/lzma/util.c | 23 ++++++++++++++---------
- src/lzmadec/lzmadec.c | 31 ++++++++++++++++++-------------
- 2 files changed, 32 insertions(+), 22 deletions(-)
-
commit 436fa5fae96d4e35759aed33066060f09ee8c6ef
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-06-10 20:36:12 +0300
+Date: Tue Jun 10 20:36:12 2008 +0300
s/decompressed/compressed/ in the command line tool's
error message.
- src/lzma/main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 369f72fd656f537a9a8e06f13e6d0d4c242be22f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-06-01 12:48:17 +0300
+Date: Sun Jun 1 12:48:17 2008 +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
@@ -10057,41 +7720,22 @@
without EOPM) is likely to go away. This means there will
be API changes.
- src/liblzma/lz/lz_encoder.c | 113 +----
- src/liblzma/lz/lz_encoder.h | 18 +-
- src/liblzma/lzma/lzma_encoder.c | 551 ++++++++++++-------------
- src/liblzma/lzma/lzma_encoder_getoptimum.c | 59 ++-
- src/liblzma/lzma/lzma_encoder_getoptimumfast.c | 4 +-
- src/liblzma/lzma/lzma_encoder_init.c | 9 +-
- src/liblzma/lzma/lzma_encoder_private.h | 15 +-
- src/liblzma/rangecoder/range_encoder.h | 383 +++++++++--------
- 8 files changed, 532 insertions(+), 620 deletions(-)
-
commit e55e0e873ce2511325749d415ae547d62ab5f00d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-05-30 11:53:41 +0300
+Date: Fri May 30 11:53:41 2008 +0300
Typo fixes from meyering.
- doc/faq.txt | 4 ++--
- doc/liblzma-advanced.txt | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
commit ed6664146fcbe9cc4a3b23b31632182ed812ea93
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-05-11 14:24:42 +0300
+Date: Sun May 11 14:24:42 2008 +0300
Remove support for pre-C89 libc versions that lack memcpy,
memmove, and memset.
- configure.ac | 2 +-
- src/common/sysdefs.h | 15 ++-------------
- src/liblzma/common/allocator.c | 2 +-
- 3 files changed, 4 insertions(+), 15 deletions(-)
-
commit b09464bf9ae694afc2d1dc26188ac4e2e8af0a63
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-05-11 14:17:21 +0300
+Date: Sun May 11 14:17:21 2008 +0300
Improved C99 compiler detection in configure.ac. It will
pass -std=gnu99 instead of -std=c99 to GCC now, but -pedantic
@@ -10098,81 +7742,48 @@
should still give warnings about GNU extensions like before
except with some special keywords like asm().
- configure.ac | 24 ++++++++++++------------
- 1 file changed, 12 insertions(+), 12 deletions(-)
-
commit 11de5d5267f7a0a7f0a4d34eec147e65eaf9f9cf
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-05-06 15:15:07 +0300
+Date: Tue May 6 15:15:07 2008 +0300
Bunch of grammar fixes from meyering.
- doc/liblzma-security.txt | 8 ++++----
- src/liblzma/api/lzma/memlimit.h | 6 +++---
- src/lzma/help.c | 2 +-
- tests/files/README | 2 +-
- 4 files changed, 9 insertions(+), 9 deletions(-)
-
commit dc192b6343ae36276c85fcf7ef6006147816eadc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-05-06 13:41:05 +0300
+Date: Tue May 6 13:41:05 2008 +0300
Typo fix
- src/liblzma/api/lzma/init.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 944b62b93239b27b338d117f2668c0e95849659b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-05-04 22:29:27 +0300
+Date: Sun May 4 22:29:27 2008 +0300
Don't print an error message on broken pipe unless --verbose
is used.
- src/lzma/io.c | 15 ++++++++++++++-
- 1 file changed, 14 insertions(+), 1 deletion(-)
-
commit 8e074349e47ea6832b8fdf9244e581d453733433
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-30 22:16:17 +0300
+Date: Wed Apr 30 22:16:17 2008 +0300
Fix a crash with --format=alone if other filters than LZMA
are specified on the command line.
- src/lzma/args.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
commit 2f361ac19b7fd3abcd362de4d470e6a9eb495b73
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-28 17:08:27 +0300
+Date: Mon Apr 28 17:08:27 2008 +0300
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 3be21fb12f4cec2cf07799e8960382f4cb375369
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-28 17:06:34 +0300
+Date: Mon Apr 28 17:06:34 2008 +0300
Fixed wrong spelling "limitter" to "limiter". This affects
liblzma's API.
- doc/liblzma-security.txt | 14 +-
- src/liblzma/api/lzma/base.h | 4 +-
- src/liblzma/api/lzma/memlimit.h | 10 +-
- src/liblzma/api/lzma/stream.h | 4 +-
- src/liblzma/common/Makefile.am | 2 +-
- src/liblzma/common/memory_limiter.c | 288 +++++++++++++++++++++++++++++++++++
- src/liblzma/common/memory_limitter.c | 288 -----------------------------------
- src/lzma/list.c | 6 +-
- src/lzmadec/lzmadec.c | 12 +-
- tests/test_memlimit.c | 4 +-
- 10 files changed, 316 insertions(+), 316 deletions(-)
-
commit beeb81060821dfec4e7898e0d44b7900dcb2215e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-25 15:39:50 +0300
+Date: Fri Apr 25 15:39:50 2008 +0300
Prevent LZ encoder from hanging with known uncompressed
size. The "fix" breaks LZMA_SYNC_FLUSH at end of stream
@@ -10180,37 +7791,23 @@
likely that support for encoding with known uncompressed
size will go away anyway, I'm not fixing this problem now.
- src/liblzma/lz/lz_encoder.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
commit c324325f9f13cdeb92153c5d00962341ba070ca2
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-25 13:58:56 +0300
+Date: Fri Apr 25 13:58:56 2008 +0300
Removed src/liblzma/common/sysdefs.h symlink, which was
annoying, because "make dist" put two copies of sysdefs.h
into the tarball instead of the symlink.
- src/liblzma/check/crc32_table.c | 2 +-
- src/liblzma/check/crc64_table.c | 2 +-
- src/liblzma/common/Makefile.am | 1 -
- src/liblzma/common/common.h | 2 +-
- src/liblzma/common/sysdefs.h | 1 -
- 5 files changed, 3 insertions(+), 5 deletions(-)
-
commit d3ba30243c75c13d094de1793f9c58acdbacc692
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-25 13:41:29 +0300
+Date: Fri Apr 25 13:41:29 2008 +0300
Added memusage.c to debug directory.
- debug/Makefile.am | 3 ++-
- debug/memusage.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 57 insertions(+), 1 deletion(-)
-
commit 8f804c29aa8471ccd6438ddca254092b8869ca52
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-25 13:32:35 +0300
+Date: Fri Apr 25 13:32:35 2008 +0300
Bumped version number to 4.999.3alpha. It will become 5.0.0
once we have a stable release (won't be very soon). The
@@ -10219,102 +7816,66 @@
Made some small Automake-related changes to toplevel
Makefile.am and configure.ac.
- Makefile.am | 7 +++++--
- README | 29 +++++++++++++++++++++++++++++
- configure.ac | 4 ++--
- src/liblzma/api/lzma/version.h | 22 ++++++++++------------
- 4 files changed, 46 insertions(+), 16 deletions(-)
-
commit c99037ea10f121cbacf60c37a36c29768ae53447
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-24 20:25:39 +0300
+Date: Thu Apr 24 20:25:39 2008 +0300
Fix a memory leak by calling free(extra->data) in
lzma_extra_free().
- src/liblzma/common/extra.c | 1 +
- 1 file changed, 1 insertion(+)
-
commit 22ba3b0b5043fa481903482ce85015fe775939e5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-24 20:23:05 +0300
+Date: Thu Apr 24 20:23:05 2008 +0300
Make unlzma and lzcat symlinks.
- src/lzma/Makefile.am | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
commit 17c36422d4cbc2c70d5c83ec389406f92cd9e85e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-24 20:20:27 +0300
+Date: Thu Apr 24 20:20:27 2008 +0300
Fixed a bug in command line option parsing.
- src/lzma/options.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 283f939974c32c47f05d495e8dea455ec646ed64
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-24 20:19:20 +0300
+Date: Thu Apr 24 20:19:20 2008 +0300
Added two assert()s.
- src/liblzma/lzma/lzma_encoder.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
commit eb348a60b6e19a7c093f892434f23c4756973ffd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-24 19:22:53 +0300
+Date: Thu Apr 24 19:22:53 2008 +0300
Switch to uint16_t as the type of range coder probabilities.
- src/liblzma/rangecoder/range_common.h | 25 +++++++++++++++++++------
- 1 file changed, 19 insertions(+), 6 deletions(-)
-
commit 6c5306e312bcfd254cf654f88c04e34ba786df3d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-24 18:39:57 +0300
+Date: Thu Apr 24 18:39:57 2008 +0300
Fix wrong return type (uint32_t -> bool).
- src/liblzma/lz/lz_encoder.c | 2 +-
- src/liblzma/lz/lz_encoder.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit 712cfe3ebfd24df24d8896b1315c53c3bc4369c8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-24 18:38:00 +0300
+Date: Thu Apr 24 18:38:00 2008 +0300
Fix data corruption in LZ encoder with LZMA_SYNC_FLUSH.
- src/liblzma/lz/lz_encoder.c | 16 ++++++++++++++++
- src/liblzma/lz/lz_encoder.h | 4 ++++
- src/liblzma/lz/match_c.h | 23 ++++++++++++++++++-----
- 3 files changed, 38 insertions(+), 5 deletions(-)
-
commit bc04486e368d20b3027cde625267762aae063965
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-24 17:33:01 +0300
+Date: Thu Apr 24 17:33:01 2008 +0300
Fix fastpos problem in Makefile.am when built with --enable-small.
- src/liblzma/lzma/Makefile.am | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
commit 7ab493924e0ed590a5121a15ee54038d238880d3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-04-24 17:30:51 +0300
+Date: Thu Apr 24 17:30:51 2008 +0300
Use 64-bit integer as range encoder's cache size. This fixes a
theoretical data corruption, which should be very hard to trigger
even intentionally.
- src/liblzma/rangecoder/range_encoder.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 641998c3e1ecc8b598fe0eb051fab8b9535c291b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-24 16:38:40 +0200
+Date: Mon Mar 24 16:38:40 2008 +0200
Replaced the range decoder optimization that used arithmetic
right shift with as fast version that doesn't need
@@ -10321,34 +7882,22 @@
arithmetic right shift. Removed the related check from
configure.ac.
- configure.ac | 1 -
- m4/ax_c_arithmetic_rshift.m4 | 36 -----------------------
- src/liblzma/rangecoder/range_decoder.h | 53 ++++++++++------------------------
- 3 files changed, 16 insertions(+), 74 deletions(-)
-
commit ad999efd279d95f1e7ac555b14170e8e9020488c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-22 14:39:34 +0200
+Date: Sat Mar 22 14:39:34 2008 +0200
Take advantage of arithmetic right shift in range decoder.
- src/liblzma/rangecoder/range_decoder.h | 52 ++++++++++++++++++++++++----------
- 1 file changed, 37 insertions(+), 15 deletions(-)
-
commit 03e0e8a0d7228b6ff1f0af39e2c040a4e425973d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-22 14:18:29 +0200
+Date: Sat Mar 22 14:18:29 2008 +0200
Added autoconf check to detect if we can use arithmetic
right shift for optimizations.
- configure.ac | 1 +
- m4/ax_c_arithmetic_rshift.m4 | 36 ++++++++++++++++++++++++++++++++++++
- 2 files changed, 37 insertions(+)
-
commit 7521bbdc83acab834594a22bec50c8e1bd836298
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-22 01:26:36 +0200
+Date: Sat Mar 22 01:26:36 2008 +0200
Update a comment to use the variable name rep_len_decoder.
@@ -10355,12 +7904,9 @@
(And BTW, the previous commit actually did change the
program logic slightly.)
- src/liblzma/lzma/lzma_decoder.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 63b74d000eedaebb8485f623e56864ff5ab71064
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-22 00:57:33 +0200
+Date: Sat Mar 22 00:57:33 2008 +0200
Demystified the "state" variable in LZMA code. Use the
word literal instead of char for better consistency.
@@ -10371,83 +7917,54 @@
This commit doesn't change the program logic.
- src/liblzma/lzma/lzma_common.h | 69 ++++++++++++++++++++++--------
- src/liblzma/lzma/lzma_decoder.c | 47 ++++++++++----------
- src/liblzma/lzma/lzma_encoder.c | 14 +++---
- src/liblzma/lzma/lzma_encoder_getoptimum.c | 34 +++++++--------
- src/liblzma/lzma/lzma_encoder_init.c | 5 ++-
- src/liblzma/lzma/lzma_encoder_private.h | 8 ++--
- 6 files changed, 107 insertions(+), 70 deletions(-)
-
commit e6eb0a26757e851cef62b9440319a8e73b015cb9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-14 23:16:11 +0200
+Date: Fri Mar 14 23:16:11 2008 +0200
Fix data corruption in LZMA encoder. Note that this bug was
specific to liblzma and was *not* present in LZMA SDK.
- src/liblzma/lzma/lzma_encoder.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
commit 7d516f5129e4373a6d57249d7f608c634c66bf12
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-14 21:32:37 +0200
+Date: Fri Mar 14 21:32:37 2008 +0200
Fix a comment API header.
- src/liblzma/api/lzma/lzma.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 748d6e4274921a350bd0a317380309717441ef9c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-12 23:14:50 +0200
+Date: Wed Mar 12 23:14:50 2008 +0200
Make lzma_stream.next_in const. Let's see if anyone complains.
- src/liblzma/api/lzma/base.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit bfde3b24a5ae25ce53c854762b6148952386b025
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-11 15:35:34 +0200
+Date: Tue Mar 11 15:35:34 2008 +0200
Apply a minor speed optimization to LZMA decoder.
- src/liblzma/lzma/lzma_decoder.c | 85 +++++++++++++++++++++--------------------
- 1 file changed, 43 insertions(+), 42 deletions(-)
-
commit f310c50286d9e4e9c6170bb65348c9bb430a65b4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-11 15:17:16 +0200
+Date: Tue Mar 11 15:17:16 2008 +0200
Initialize the last byte of the dictionary to zero so that
lz_get_byte(lz, 0) returns zero. This was broken by
1a3b21859818e4d8e89a1da99699233c1bfd197d.
- src/liblzma/lz/lz_decoder.c | 1 +
- 1 file changed, 1 insertion(+)
-
commit 5ead36cf7f823093672a4e43c3180b38c9abbaff
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-10 15:57:55 +0200
+Date: Mon Mar 10 15:57:55 2008 +0200
Really fix the price count initialization.
- src/liblzma/lzma/lzma_encoder_init.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit d4d7feb83d1a1ded8f662a82e21e053841ca726c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-10 13:47:17 +0200
+Date: Mon Mar 10 13:47:17 2008 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 0541c5ea63ef3c0ff85eeddb0a420e56b0c65258
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-10 13:46:48 +0200
+Date: Mon Mar 10 13:46:48 2008 +0200
Initialize align_price_count and match_price_count in
lzma_encoder_init.c. While we don't call
@@ -10457,53 +7974,38 @@
called in lzma_encoder_getoptimum.c in the beginning
of a stream.
- src/liblzma/lzma/lzma_encoder_init.c | 2 ++
- 1 file changed, 2 insertions(+)
-
commit 596fa1fac72823e4ef5bc26bb53f9090445bf748
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-10 13:44:29 +0200
+Date: Mon Mar 10 13:44:29 2008 +0200
Always initialize lz->temp_size in lz_decoder.c. temp_size did
get initialized as a side-effect after allocating a new decoder,
but not when the decoder was reused.
- src/liblzma/lz/lz_decoder.c | 11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
commit 45e43e169527e7a98a8c8a821d37bf25822b764d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-03-10 13:41:25 +0200
+Date: Mon Mar 10 13:41:25 2008 +0200
Don't fill allocated memory with 0xFD when debugging is
enabled. It hides errors from Valgrind.
- src/liblzma/common/allocator.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
commit c0e19e0662205f81a86da8903cdc325d50635870
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-02-28 10:24:31 +0200
+Date: Thu Feb 28 10:24:31 2008 +0200
Remove two redundant validity checks from the LZMA decoder.
These are already checked elsewhere, so omitting these
gives (very) tiny speed up.
- src/liblzma/lzma/lzma_decoder.c | 23 ++++-------------------
- 1 file changed, 4 insertions(+), 19 deletions(-)
-
commit de7485806284d1614095ae8cb2ebbb5d74c9ac45
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-02-06 13:25:32 +0200
+Date: Wed Feb 6 13:25:32 2008 +0200
Tiny clean up to file-format.txt.
- doc/file-format.txt | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
commit 1a3b21859818e4d8e89a1da99699233c1bfd197d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-02-02 14:51:06 +0200
+Date: Sat Feb 2 14:51:06 2008 +0200
Don't memzero() the history buffer when initializing LZ
decoder. There's no danger of information leak here, so
@@ -10511,85 +8013,55 @@
with large dictionaries, which could make it easier to
construct DoS attack to consume too much CPU time.
- src/liblzma/lz/lz_decoder.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
commit 7e796e312bf644ea95aea0ff85480f47cfa30fc0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-02-01 08:39:26 +0200
+Date: Fri Feb 1 08:39:26 2008 +0200
Do uncompressed size validation in raw encoder. This way
it gets done for not only raw encoder, but also Block
and LZMA_Alone encoders.
- src/liblzma/common/raw_encoder.c | 90 ++++++++++++++++++++++++++++++++--------
- 1 file changed, 73 insertions(+), 17 deletions(-)
-
commit 7dd48578a3853e0cfab9f1830bc30927173ec4bc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-02-01 08:32:05 +0200
+Date: Fri Feb 1 08:32:05 2008 +0200
Avoid unneeded function call in raw_common.c.
- src/liblzma/common/raw_common.c | 20 +++++++++++---------
- 1 file changed, 11 insertions(+), 9 deletions(-)
-
commit b596fac963c3ff96f615d4d9b427a213ec341211
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-26 21:42:38 +0200
+Date: Sat Jan 26 21:42:38 2008 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit e9f6e9c075ad93141a568d94f7d4eb0f2edbd6c2
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-26 21:40:23 +0200
+Date: Sat Jan 26 21:40:23 2008 +0200
Added note.GNU-stack to x86 assembler files. It is needed
when using non-executable stack.
- src/liblzma/check/crc32_x86.S | 9 +++++++++
- src/liblzma/check/crc64_x86.S | 9 +++++++++
- 2 files changed, 18 insertions(+)
-
commit 4c7ad179c78f97f68ad548cb40a9dfa6871655ae
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-26 19:12:50 +0200
+Date: Sat Jan 26 19:12:50 2008 +0200
Added api/lzma/easy.h. I had forgot to add this to the
git repo. Thanks to Stephan Kulow.
- src/liblzma/api/lzma/easy.h | 174 ++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 174 insertions(+)
-
commit 288b232f54c3692cd36f471d4042f51daf3ea79f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-26 11:09:17 +0200
+Date: Sat Jan 26 11:09:17 2008 +0200
Added more test files.
- tests/files/README | 11 +++++++++++
- tests/files/bad-multi-none-header_7.lzma | Bin 0 -> 59 bytes
- tests/files/good-single-sparc-lzma.lzma | Bin 0 -> 2263 bytes
- tests/files/good-single-x86-lzma.lzma | Bin 0 -> 1909 bytes
- 4 files changed, 11 insertions(+)
-
commit c467b0defccf233d0c79234407bc38d7d09574d3
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-26 10:47:55 +0200
+Date: Sat Jan 26 10:47:55 2008 +0200
Added more test files.
- tests/files/README | 6 ++++++
- tests/files/bad-multi-none-block_3.lzma | Bin 0 -> 58 bytes
- tests/files/good-multi-none-block_2.lzma | Bin 0 -> 58 bytes
- 3 files changed, 6 insertions(+)
-
commit f9842f712732c482f2def9f24437851e57dd83f8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-26 00:25:34 +0200
+Date: Sat Jan 26 00:25:34 2008 +0200
Return LZMA_HEADER_ERROR if LZMA_SYNC_FLUSH is used with any
of the so called simple filters. If there is demand, limited
@@ -10598,26 +8070,16 @@
After this commit, using LZMA_SYNC_FLUSH shouldn't cause
undefined behavior in any situation.
- src/liblzma/api/lzma/simple.h | 9 +++++++++
- src/liblzma/simple/simple_coder.c | 8 ++++++++
- 2 files changed, 17 insertions(+)
-
commit e988ea1d1a286dd0f27af0657f9665d5cd8573aa
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-25 23:50:35 +0200
+Date: Fri Jan 25 23:50:35 2008 +0200
Added more Multi-Block test files. Improved some
descriptions in the test files' README.
- tests/files/README | 34 +++++++++++++++++++++++++------
- tests/files/bad-multi-none-block_1.lzma | Bin 0 -> 66 bytes
- tests/files/bad-multi-none-block_2.lzma | Bin 0 -> 66 bytes
- tests/files/good-multi-none-block_1.lzma | Bin 0 -> 66 bytes
- 4 files changed, 28 insertions(+), 6 deletions(-)
-
commit 4441e004185cd4c61bda184010eca5924c9dec87
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-25 23:12:36 +0200
+Date: Fri Jan 25 23:12:36 2008 +0200
Combine lzma_options_block validation needed by both Block
encoder and decoder, and put the shared things to
@@ -10633,24 +8095,15 @@
but it's not impossible that someone could find them useful
in some custom file format.
- src/liblzma/common/block_decoder.c | 37 ++++++++++++----------------
- src/liblzma/common/block_encoder.c | 32 +++++-------------------
- src/liblzma/common/block_private.h | 50 ++++++++++++++++++++++++++++++++++++++
- 3 files changed, 71 insertions(+), 48 deletions(-)
-
commit bf4200c818fcf9102e56328d39cde91bfa13cfb6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-25 19:21:22 +0200
+Date: Fri Jan 25 19:21:22 2008 +0200
Added test_memlimit.c.
- tests/Makefile.am | 2 +
- tests/test_memlimit.c | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 116 insertions(+)
-
commit 7b8fc7e6b501a32a36636dac79ecb57099269005
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-25 19:20:28 +0200
+Date: Fri Jan 25 19:20:28 2008 +0200
Improved the memory limitter:
- Added lzma_memlimit_max() and lzma_memlimit_reached()
@@ -10663,64 +8116,27 @@
The description of lzma_memlimit_max() in memlimit.h is bad
and should be improved.
- src/liblzma/api/lzma/memlimit.h | 35 +++++++++++++
- src/liblzma/common/memory_limitter.c | 97 ++++++++++++++++++++++++++++++------
- 2 files changed, 118 insertions(+), 14 deletions(-)
-
commit e0c3d0043da2f670cfdb1abbb3223d5a594ad8db
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-25 13:55:52 +0200
+Date: Fri Jan 25 13:55:52 2008 +0200
Use more parenthesis in succeed() macro in tests/tests.h.
- tests/tests.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 1fd76d488179580d37f31ee11948f4932aed31fd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-24 14:49:34 +0200
+Date: Thu Jan 24 14:49:34 2008 +0200
Added more Multi-Block Stream test files.
- tests/files/README | 23 +++++++++++++++++++++++
- tests/files/bad-multi-none-header_2.lzma | Bin 0 -> 61 bytes
- tests/files/bad-multi-none-header_3.lzma | Bin 0 -> 59 bytes
- tests/files/bad-multi-none-header_4.lzma | Bin 0 -> 59 bytes
- tests/files/bad-multi-none-header_5.lzma | Bin 0 -> 58 bytes
- tests/files/bad-multi-none-header_6.lzma | Bin 0 -> 59 bytes
- tests/files/good-multi-none-header_3.lzma | Bin 0 -> 59 bytes
- 7 files changed, 23 insertions(+)
-
commit 6e27b1098a28f4ce09bfa6df68ad94182dfc2936
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-24 00:46:05 +0200
+Date: Thu Jan 24 00:46:05 2008 +0200
Added bunch of test files containing Multi-Block Streams.
- tests/files/README | 53 ++++++++++++++++++++++++++++++
- tests/files/bad-multi-none-1.lzma | Bin 0 -> 54 bytes
- tests/files/bad-multi-none-2.lzma | Bin 0 -> 53 bytes
- tests/files/bad-multi-none-3.lzma | Bin 0 -> 53 bytes
- tests/files/bad-multi-none-extra_1.lzma | Bin 0 -> 54 bytes
- tests/files/bad-multi-none-extra_2.lzma | Bin 0 -> 54 bytes
- tests/files/bad-multi-none-extra_3.lzma | Bin 0 -> 55 bytes
- tests/files/bad-multi-none-header_1.lzma | Bin 0 -> 57 bytes
- tests/files/bad-multi-none-index_1.lzma | Bin 0 -> 51 bytes
- tests/files/bad-multi-none-index_2.lzma | Bin 0 -> 49 bytes
- tests/files/bad-multi-none-index_3.lzma | Bin 0 -> 51 bytes
- tests/files/bad-multi-none-index_4.lzma | Bin 0 -> 51 bytes
- tests/files/good-multi-none-1.lzma | Bin 0 -> 75 bytes
- tests/files/good-multi-none-2.lzma | Bin 0 -> 53 bytes
- tests/files/good-multi-none-extra_1.lzma | Bin 0 -> 51 bytes
- tests/files/good-multi-none-extra_2.lzma | Bin 0 -> 79 bytes
- tests/files/good-multi-none-extra_3.lzma | Bin 0 -> 55 bytes
- tests/files/good-multi-none-header_1.lzma | Bin 0 -> 58 bytes
- tests/files/good-multi-none-header_2.lzma | Bin 0 -> 66 bytes
- 19 files changed, 53 insertions(+)
-
commit db9df0a9609c01a00a227329fb96e983971040f5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 23:43:00 +0200
+Date: Wed Jan 23 23:43:00 2008 +0200
Fix decoding of empty Metadata Blocks, that don't have
even the Metadata Flags field. Earlier the code allowed
@@ -10727,93 +8143,63 @@
such files; now they are prohibited as the file format
specification requires.
- src/liblzma/common/metadata_decoder.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
commit 765f0b05f6e95ed9194fb90819cee189ebbac36b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 23:38:18 +0200
+Date: Wed Jan 23 23:38:18 2008 +0200
Fix a bug related to 99e12af4e2b866c011fe0106cd1e0bfdcc8fe9c6.
lzma_metadata.header_metadata_size was not properly set to
zero if the Metadata had only the Metadata Flags field.
- src/liblzma/common/metadata_decoder.c | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
commit 3a7cc5c3dec7b078941f961b0393b86c418883b6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 23:35:49 +0200
+Date: Wed Jan 23 23:35:49 2008 +0200
Fix decoding of Extra Records that have empty Data.
- src/liblzma/common/metadata_decoder.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
commit e5fdec93e273855c1bcc2579b83cfb481a9a1492
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 22:02:38 +0200
+Date: Wed Jan 23 22:02:38 2008 +0200
Add the trailing '\0' to lzma_extra.data as the API header
already documents.
- src/liblzma/common/metadata_decoder.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
commit ed40dc5a2c28a8dfccab8c165b3780738eeef93e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 21:21:21 +0200
+Date: Wed Jan 23 21:21:21 2008 +0200
Added debug/full_flush.c.
- debug/Makefile.am | 3 +-
- debug/full_flush.c | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 107 insertions(+), 1 deletion(-)
-
commit ae0cd09a666a1682da8fc09487322227679e218d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 21:05:33 +0200
+Date: Wed Jan 23 21:05:33 2008 +0200
Return LZMA_STREAM_END instead of LZMA_OK if
LZMA_SYNC_FLUSH or LZMA_FULL_FLUSH is used when
there's no unfinished Block open.
- src/liblzma/common/stream_encoder_multi.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
commit 0e80ded13dfceb98f9494cbb5381a95eb44d03db
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 20:05:01 +0200
+Date: Wed Jan 23 20:05:01 2008 +0200
Added bad-single-none-footer_filter_flags.lzma and
bad-single-none-too_long_vli.lzma.
- tests/files/README | 5 +++++
- tests/files/bad-single-none-footer_filter_flags.lzma | Bin 0 -> 30 bytes
- tests/files/bad-single-none-too_long_vli.lzma | Bin 0 -> 39 bytes
- 3 files changed, 5 insertions(+)
-
commit 8c8eb14055d8dd536b1b1c58fb284d34bb8ed1dd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 13:42:35 +0200
+Date: Wed Jan 23 13:42:35 2008 +0200
Fixed a typo.
- src/liblzma/subblock/subblock_decoder_helper.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 980f65a9a10160c4d105767871e3002b9aaba3e0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 13:40:45 +0200
+Date: Wed Jan 23 13:40:45 2008 +0200
Fix a memory leak in the Subblock encoder.
- src/liblzma/subblock/subblock_encoder.c | 1 +
- 1 file changed, 1 insertion(+)
-
commit 99e12af4e2b866c011fe0106cd1e0bfdcc8fe9c6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 13:36:07 +0200
+Date: Wed Jan 23 13:36:07 2008 +0200
Fix Size of Header Metadata Block handling. Now
lzma_metadata.header_metadata_size == LZMA_VLI_VALUE_UNKNOWN
@@ -10828,53 +8214,35 @@
not present in the Stream. With other Metadata fields,
a missing field means only that the value is unknown.
- src/liblzma/common/info.c | 13 ++++---------
- src/liblzma/common/metadata_decoder.c | 6 ++++++
- src/liblzma/common/metadata_encoder.c | 11 +++++------
- tests/test_info.c | 4 ++--
- 4 files changed, 17 insertions(+), 17 deletions(-)
-
commit 58b78ab20c1bcced45cf71ae6684868fc90b4b81
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 13:15:55 +0200
+Date: Wed Jan 23 13:15:55 2008 +0200
Fix a memory leak in metadata_decoder.c.
- src/liblzma/common/metadata_decoder.c | 1 +
- 1 file changed, 1 insertion(+)
-
commit 4d8cdbdab44400fd98f0f18a0f701e27cd1acdae
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 13:13:58 +0200
+Date: Wed Jan 23 13:13:58 2008 +0200
Fix the fix 863028cb7ad6d8d0455fa69348f56b376d7b908f which
just moved to problem. Now it's really fixed.
- src/liblzma/common/info.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
commit 67321de963ccf69410b3868b8e31534fe18a90de
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 00:21:04 +0200
+Date: Wed Jan 23 00:21:04 2008 +0200
Take advantage of return_if_error() macro in
lzma_info_metadata_set() in info.c.
- src/liblzma/common/info.c | 24 ++++++++----------------
- 1 file changed, 8 insertions(+), 16 deletions(-)
-
commit 863028cb7ad6d8d0455fa69348f56b376d7b908f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-23 00:18:32 +0200
+Date: Wed Jan 23 00:18:32 2008 +0200
Fixed a dangling pointer that caused invalid free().
- src/liblzma/common/info.c | 1 +
- 1 file changed, 1 insertion(+)
-
commit cf49f42a6bd40143f54a6b10d6e605599e958c0b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-22 22:49:24 +0200
+Date: Tue Jan 22 22:49:24 2008 +0200
Added lzma_easy_* functions. These should make using
liblzma as easy as using zlib, because the easy API
@@ -10883,58 +8251,33 @@
Note that Multi-Block Stream encoding is currently broken.
The easy API should be OK, the bug(s) are elsewhere.
- src/liblzma/api/Makefile.am | 1 +
- src/liblzma/api/lzma.h | 1 +
- src/liblzma/common/Makefile.am | 5 ++
- src/liblzma/common/easy_common.c | 54 ++++++++++++++++
- src/liblzma/common/easy_common.h | 28 ++++++++
- src/liblzma/common/easy_multi.c | 103 ++++++++++++++++++++++++++++++
- src/liblzma/common/easy_single.c | 37 +++++++++++
- src/liblzma/common/stream_encoder_multi.c | 3 +-
- src/liblzma/common/stream_encoder_multi.h | 26 ++++++++
- 9 files changed, 256 insertions(+), 2 deletions(-)
-
commit 1747b85a43abc1c3f152dbd349be2ef4089ecf6a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-22 21:16:22 +0200
+Date: Tue Jan 22 21:16:22 2008 +0200
Fix Multi-Block Stream encoder's EOPM usage.
- src/liblzma/common/stream_encoder_multi.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 0ed6f1adcea540fb9593ca115d36de537f7f0dc6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-22 00:15:11 +0200
+Date: Tue Jan 22 00:15:11 2008 +0200
Made lzma_extra pointers const in lzma_options_stream.
- src/liblzma/api/lzma/stream.h | 4 ++--
- src/liblzma/common/stream_encoder_multi.c | 8 ++++++--
- 2 files changed, 8 insertions(+), 4 deletions(-)
-
commit 305afa38f64c75af8e81c4167e2d8fa8d85b53a4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-20 20:15:21 +0200
+Date: Sun Jan 20 20:15:21 2008 +0200
Updated debug/sync_flush.c.
- debug/sync_flush.c | 26 ++++++++++++++++++++++++--
- 1 file changed, 24 insertions(+), 2 deletions(-)
-
commit d53e9b77054cfade6a643e77d085273a348b189c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-20 20:14:26 +0200
+Date: Sun Jan 20 20:14:26 2008 +0200
Added debug/repeat.c.
- debug/Makefile.am | 1 +
- debug/repeat.c | 43 +++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 44 insertions(+)
-
commit 107259e306bcfc2336a0fb870fb58034c28faa52
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-20 20:12:58 +0200
+Date: Sun Jan 20 20:12:58 2008 +0200
Fix alignment handling bugs in Subblock encoder.
@@ -10952,12 +8295,9 @@
misaligned data (no data corruption), this bug simply isn't
worth fixing, because a proper fix isn't simple.
- src/liblzma/subblock/subblock_encoder.c | 170 ++++++++++++++++++++++----------
- 1 file changed, 119 insertions(+), 51 deletions(-)
-
commit e141fe18950400faaa3503ff88ac20eacd73e88c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-19 21:16:33 +0200
+Date: Sat Jan 19 21:16:33 2008 +0200
Implemented LZMA_SYNC_FLUSH support to the Subblock encoder.
The API for handing Subfilters was changed to make it
@@ -10966,13 +8306,9 @@
A few sanity checks were added for Subfilter handling. Some
small bugs were fixed. More comments were added.
- src/liblzma/api/lzma/subblock.h | 29 ++--
- src/liblzma/subblock/subblock_encoder.c | 263 ++++++++++++++++++++++++--------
- 2 files changed, 214 insertions(+), 78 deletions(-)
-
commit 23c227a864a3b69f38c6a74306161d4e6918d1cc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-19 15:19:21 +0200
+Date: Sat Jan 19 15:19:21 2008 +0200
Revised the Delta filter implementation. The initialization
function is still shared between encoder and decoder, but the
@@ -10989,50 +8325,23 @@
Support for LZMA_SYNC_FLUSH was added to the Delta encoder.
This doesn't change anything in the file format.
- src/liblzma/common/Makefile.am | 14 ++-
- src/liblzma/common/delta_coder.c | 189 -------------------------------------
- src/liblzma/common/delta_coder.h | 31 ------
- src/liblzma/common/delta_common.c | 70 ++++++++++++++
- src/liblzma/common/delta_common.h | 48 ++++++++++
- src/liblzma/common/delta_decoder.c | 102 ++++++++++++++++++++
- src/liblzma/common/delta_decoder.h | 28 ++++++
- src/liblzma/common/delta_encoder.c | 97 +++++++++++++++++++
- src/liblzma/common/delta_encoder.h | 28 ++++++
- src/liblzma/common/raw_decoder.c | 2 +-
- src/liblzma/common/raw_encoder.c | 2 +-
- 11 files changed, 387 insertions(+), 224 deletions(-)
-
commit 61dc82f3e306b25ce3cd3d529df9ec7a0ec04b73
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-18 20:18:08 +0200
+Date: Fri Jan 18 20:18:08 2008 +0200
Added the debug directory and the first debug tool
(sync_flush). These tools are not built unless the
user runs "make" in the debug directory.
- Makefile.am | 1 +
- configure.ac | 1 +
- debug/Makefile.am | 30 ++++++++++++++
- debug/README | 17 ++++++++
- debug/sync_flush.c | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- 5 files changed, 165 insertions(+)
-
commit 0ae3208db94585eb8294b97ded387de0a3a07646
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-18 20:13:00 +0200
+Date: Fri Jan 18 20:13:00 2008 +0200
Added test files to test usage of flush marker in LZMA.
- tests/files/README | 12 ++++++++++++
- tests/files/bad-single-lzma-flush_beginning.lzma | Bin 0 -> 53 bytes
- tests/files/bad-single-lzma-flush_twice.lzma | Bin 0 -> 63 bytes
- tests/files/good-single-lzma-flush_1.lzma | Bin 0 -> 48 bytes
- tests/files/good-single-lzma-flush_2.lzma | Bin 0 -> 63 bytes
- 5 files changed, 12 insertions(+)
-
commit ab5feaf1fcc146ef9fd39360c53c290bec39524e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-18 20:02:52 +0200
+Date: Fri Jan 18 20:02:52 2008 +0200
Fix LZMA_SYNC_FLUSH handling in LZ and LZMA encoders.
That code is now almost completely in LZ coder, where
@@ -11039,24 +8348,16 @@
it can be shared with other LZ77-based algorithms in
future.
- src/liblzma/lz/lz_encoder.c | 34 ++++++++++++++++++++++++++--------
- src/liblzma/lz/lz_encoder.h | 1 +
- src/liblzma/lzma/lzma_encoder.c | 27 ++-------------------------
- 3 files changed, 29 insertions(+), 33 deletions(-)
-
commit 079c4f7fc26b3d0b33d9ae7536697b45f3b73585
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-18 17:21:24 +0200
+Date: Fri Jan 18 17:21:24 2008 +0200
Don't add -g to CFLAGS when --enable-debug is specified.
It's the job of the user to put that in CFLAGS.
- configure.ac | 1 -
- 1 file changed, 1 deletion(-)
-
commit 61d1784d8f1761d979a6da6e223e279ca33815e6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-18 14:17:37 +0200
+Date: Fri Jan 18 14:17:37 2008 +0200
Set stdin and stdout to binary mode on Windows. This patch is
a forward port of b7b22fcb979a16d3a47c8001f058c9f7d4416068
@@ -11063,12 +8364,9 @@
from lzma-utils-legacy.git. I don't know if the new code base
builds on Windows, but this is a start.
- src/lzmadec/lzmadec.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
commit c9cba976913e55ff9aac8a8133cc94416c7c1c9c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-18 00:50:29 +0200
+Date: Fri Jan 18 00:50:29 2008 +0200
Added test_compress.sh and bunch of files needed by it.
This new set of tests compress and decompress several
@@ -11075,17 +8373,9 @@
test files with many different compression options.
This set of tests will be extended later.
- tests/Makefile.am | 30 ++++---
- tests/bcj_test.c | 66 ++++++++++++++
- tests/compress_prepared_bcj_sparc | Bin 0 -> 6804 bytes
- tests/compress_prepared_bcj_x86 | Bin 0 -> 4649 bytes
- tests/create_compress_files.c | 164 ++++++++++++++++++++++++++++++++++
- tests/test_compress.sh | 183 ++++++++++++++++++++++++++++++++++++++
- 6 files changed, 433 insertions(+), 10 deletions(-)
-
commit 33be3c0e24d8f43376ccf71cc77d53671e792f07
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-17 18:56:53 +0200
+Date: Thu Jan 17 18:56:53 2008 +0200
Subblock decoder: Don't exit the main loop in decode_buffer()
too early if we hit End of Input while decoding a Subblock of
@@ -11098,12 +8388,9 @@
moved around. This made the diff big and ugly compared to
the amount of the actual changes made.
- src/liblzma/subblock/subblock_decoder.c | 272 ++++++++++++++++----------------
- 1 file changed, 139 insertions(+), 133 deletions(-)
-
commit b254bd97b1cdb68d127523d91ca9e054ed89c4fd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-17 17:39:42 +0200
+Date: Thu Jan 17 17:39:42 2008 +0200
Fix wrong too small size of argument unfiltered_max
in ia64_coder_init(). It triggered assert() in
@@ -11112,118 +8399,81 @@
This error was probably a copypaste mistake, since most
of the simple filters use unfiltered_max = 4.
- src/liblzma/simple/ia64.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 8f5794c8f1a30e8e3b524b415bbe81af2e04c64a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-17 17:27:45 +0200
+Date: Thu Jan 17 17:27:45 2008 +0200
Added --delta to the output of "lzma --help".
- src/lzma/help.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
commit f88590e0014b38d40465937c19f25f05f16c79ae
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-17 13:14:20 +0200
+Date: Thu Jan 17 13:14:20 2008 +0200
Fix Subblock docoder: If Subblock filter was used with known
Uncompressed Size, and the last output byte was from RLE,
the code didn't stop decoding as it should have done.
- src/liblzma/subblock/subblock_decoder.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
commit bc0b945ca376e333077644d2f7fd54c2848aab8a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-16 16:33:37 +0200
+Date: Wed Jan 16 16:33:37 2008 +0200
Tiny non-technical edits to file-format.txt.
- doc/file-format.txt | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
commit 7599bb7064ccf007f054595dedda7927af868252
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-16 14:48:04 +0200
+Date: Wed Jan 16 14:48:04 2008 +0200
Plugged a memory leak in stream_decoder.c.
- src/liblzma/common/stream_decoder.c | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
-
commit 0b581539311f3712946e81e747839f8fb5f441a7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-16 14:47:27 +0200
+Date: Wed Jan 16 14:47:27 2008 +0200
Added memory leak detection to lzmadec.c.
- src/lzmadec/lzmadec.c | 3 +++
- 1 file changed, 3 insertions(+)
-
commit 5b5b13c7bb8fde6331064d21f3ebde41072480c4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-16 14:46:50 +0200
+Date: Wed Jan 16 14:46:50 2008 +0200
Added lzma_memlimit_count().
- src/liblzma/api/lzma/memlimit.h | 10 ++++++++++
- src/liblzma/common/memory_limitter.c | 19 +++++++++++++++++++
- 2 files changed, 29 insertions(+)
-
commit 19389f2b82ec54fd4c847a18f16482e7be4c9887
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-16 14:31:44 +0200
+Date: Wed Jan 16 14:31:44 2008 +0200
Added ARRAY_SIZE(array) macro.
- src/common/sysdefs.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
commit 9bc33a54cbf83952130adbcb1be32c6882485416
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-16 13:27:03 +0200
+Date: Wed Jan 16 13:27:03 2008 +0200
Make Uncompresed Size validation more strict
in alone_decoder.c.
- src/liblzma/common/alone_decoder.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
commit 01d71d60b79027e1ce3eb9c79ae5191e1407c883
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 17:46:59 +0200
+Date: Tue Jan 15 17:46:59 2008 +0200
Free the allocated memory in lzmadec if debugging is
enabled. This should make it possible to detect possible
memory leaks with Valgrind.
- src/lzmadec/lzmadec.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
commit 8235e6e5b2878f76633afcda9a334640db503ef5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 16:25:38 +0200
+Date: Tue Jan 15 16:25:38 2008 +0200
Fix memory leaks from test_block_header.c.
- tests/test_block_header.c | 19 +++++++++++++++++--
- 1 file changed, 17 insertions(+), 2 deletions(-)
-
commit f10fc6a69d40b6d5c9cfbf8d3746f49869c2e2f6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 14:23:35 +0200
+Date: Tue Jan 15 14:23:35 2008 +0200
Use fastpos.h when encoding LZMA dictionary size in
Filter Flags encoder.
- src/liblzma/common/filter_flags_encoder.c | 40 +++++++++++++++----------------
- 1 file changed, 19 insertions(+), 21 deletions(-)
-
commit e5728142a2048979f5c0c2149ce71ae952a092e1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 14:02:22 +0200
+Date: Tue Jan 15 14:02:22 2008 +0200
Revised the fastpos code. It now uses the slightly faster
table-based version from LZMA SDK 4.57. This should be
@@ -11234,129 +8484,73 @@
default table-based version (see comments in fastpos.h),
but on most systems the table-based code is faster.
- src/liblzma/common/init_encoder.c | 3 -
- src/liblzma/lzma/Makefile.am | 4 +
- src/liblzma/lzma/fastpos.h | 156 +++++++++
- src/liblzma/lzma/fastpos_table.c | 519 +++++++++++++++++++++++++++++
- src/liblzma/lzma/fastpos_tablegen.c | 63 ++++
- src/liblzma/lzma/lzma_common.h | 3 +-
- src/liblzma/lzma/lzma_encoder.c | 1 +
- src/liblzma/lzma/lzma_encoder_getoptimum.c | 1 +
- src/liblzma/lzma/lzma_encoder_init.c | 22 --
- src/liblzma/lzma/lzma_encoder_private.h | 21 --
- 10 files changed, 746 insertions(+), 47 deletions(-)
-
commit 10437b5b567f6a025ff16c45a572e417a0a9cc26
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 13:32:13 +0200
+Date: Tue Jan 15 13:32:13 2008 +0200
Added bsr.h.
- src/liblzma/common/Makefile.am | 1 +
- src/liblzma/common/bsr.h | 61 ++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 62 insertions(+)
-
commit f3c88e8b8d8dd57f4bba5f0921eebf276437c244
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 13:29:14 +0200
+Date: Tue Jan 15 13:29:14 2008 +0200
Fixed assembler detection in configure.ac, and added
detection for x86_64.
- configure.ac | 32 ++++++++++++++++----------------
- 1 file changed, 16 insertions(+), 16 deletions(-)
-
commit 54ec204f58287f50d3976288295da4188a19192b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 12:20:41 +0200
+Date: Tue Jan 15 12:20:41 2008 +0200
Omit invalid space from printf() format string
in price_table_gen.c.
- src/liblzma/rangecoder/price_table_gen.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 01b4b19f49f00e17a0f9cb8754c672ac0847b6e1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 09:54:34 +0200
+Date: Tue Jan 15 09:54:34 2008 +0200
Removed a few unused macros from lzma_common.h.
- src/liblzma/lzma/lzma_common.h | 8 ++------
- 1 file changed, 2 insertions(+), 6 deletions(-)
-
commit 19bd7f3cf25e4ff8487ef7098ca4a7b58681961d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 08:37:42 +0200
+Date: Tue Jan 15 08:37:42 2008 +0200
Fix a typo in lzma_encoder.c.
- src/liblzma/lzma/lzma_encoder.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 9f9b1983013048f2142e8bc7e240149d2687bedc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 08:36:25 +0200
+Date: Tue Jan 15 08:36:25 2008 +0200
Convert bittree_get_price() and bittree_reverse_get_price()
from macros to inline functions.
- src/liblzma/lzma/lzma_encoder.c | 19 +++-----
- src/liblzma/lzma/lzma_encoder_getoptimum.c | 16 +++----
- src/liblzma/rangecoder/range_encoder.h | 76 +++++++++++++++++-------------
- 3 files changed, 56 insertions(+), 55 deletions(-)
-
commit 78e85cb1a7667c54853670d2eb09d754bcbda87d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 07:44:59 +0200
+Date: Tue Jan 15 07:44:59 2008 +0200
Fix CRC code in case --enable-small is used.
- src/liblzma/check/crc32_init.c | 2 +-
- src/liblzma/check/crc64_init.c | 2 +-
- src/liblzma/common/init_decoder.c | 2 --
- src/liblzma/common/init_encoder.c | 2 --
- tests/test_check.c | 2 ++
- 5 files changed, 4 insertions(+), 6 deletions(-)
-
commit 949d4346e2d75bcd9dcb66c394d8d851d8db3aa0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 07:41:39 +0200
+Date: Tue Jan 15 07:41:39 2008 +0200
Fix typo in test_index.c.
- tests/test_index.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit d13d693155c176fc9e9ad5c50d48ccba27c2d9c6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-15 07:40:21 +0200
+Date: Tue Jan 15 07:40:21 2008 +0200
Added precomputed range coder probability price table.
- src/liblzma/common/init_encoder.c | 5 ++-
- src/liblzma/rangecoder/Makefile.am | 9 +++-
- src/liblzma/rangecoder/price_table.c | 70 +++++++++++++++++++++++++++++++
- src/liblzma/rangecoder/price_table_gen.c | 55 ++++++++++++++++++++++++
- src/liblzma/rangecoder/price_table_init.c | 48 +++++++++++++++++++++
- src/liblzma/rangecoder/range_common.h | 4 +-
- src/liblzma/rangecoder/range_encoder.c | 46 --------------------
- src/liblzma/rangecoder/range_encoder.h | 21 +++++-----
- 8 files changed, 197 insertions(+), 61 deletions(-)
-
commit 362dc3843b373c1007a50a4719f378981f18ae03
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-14 13:42:43 +0200
+Date: Mon Jan 14 13:42:43 2008 +0200
Remove RC_BUFFER_SIZE from lzma_encoder_private.h
and replace it with a sanity check.
- src/liblzma/lzma/lzma_encoder_private.h | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
commit e22b37968d153683fec61ad37b6b160cb7ca4ddc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-14 13:39:54 +0200
+Date: Mon Jan 14 13:39:54 2008 +0200
Major changes to LZ encoder, LZMA encoder, and range encoder.
These changes implement support for LZMA_SYNC_FLUSH in LZMA
@@ -11363,34 +8557,22 @@
encoder, and move the temporary buffer needed by range encoder
from lzma_range_encoder structure to lzma_lz_encoder.
- src/liblzma/lz/lz_encoder.c | 138 ++++++++++++++++++++++++++++-----
- src/liblzma/lz/lz_encoder.h | 17 ++--
- src/liblzma/lzma/lzma_encoder.c | 74 ++++++++++--------
- src/liblzma/rangecoder/range_encoder.h | 117 ++++++++--------------------
- 4 files changed, 206 insertions(+), 140 deletions(-)
-
commit b59ef3973781f892c0a72b5e5934194567100be5
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-14 13:34:29 +0200
+Date: Mon Jan 14 13:34:29 2008 +0200
Added one assert() to process.c of the command line tool.
- src/lzma/process.c | 1 +
- 1 file changed, 1 insertion(+)
-
commit 9547e734a00ddb64c851fa3f116e4f9e7d763ea7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-14 12:09:52 +0200
+Date: Mon Jan 14 12:09:52 2008 +0200
Don't use coder->lz.stream_end_was_reached in assertions
in match_c.h.
- src/liblzma/lz/match_c.h | 2 --
- 1 file changed, 2 deletions(-)
-
commit 3e09e1c05871f3757f759b801890ccccc9286608
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-14 12:08:02 +0200
+Date: Mon Jan 14 12:08:02 2008 +0200
In lzma_read_match_distances(), don't use
coder->lz.stream_end_was_reached. That variable
@@ -11398,304 +8580,193 @@
Rearrange the check so that it doesn't make one to
think that there could be an integer overflow.
- src/liblzma/lzma/lzma_encoder_private.h | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
commit a670fec8021e5962429689c194148a04c3418872
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-14 11:56:41 +0200
+Date: Mon Jan 14 11:56:41 2008 +0200
Small LZMA_SYNC_FLUSH fixes to Block and Single-Stream encoders.
- src/liblzma/common/block_encoder.c | 4 ++--
- src/liblzma/common/stream_encoder_single.c | 1 +
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
commit 3599dba9570a6972a16b6398d6c838e9b420e985
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-14 11:54:56 +0200
+Date: Mon Jan 14 11:54:56 2008 +0200
More fixes to LZMA decoder's flush marker handling.
- src/liblzma/lzma/lzma_decoder.c | 52 ++++++++++++++++++++++++-----------------
- 1 file changed, 30 insertions(+), 22 deletions(-)
-
commit f73c2ab6079ed5675a42b39d584a567befbd4624
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-10 17:13:42 +0200
+Date: Thu Jan 10 17:13:42 2008 +0200
Eliminate lzma_lz_encoder.must_move_pos. It's needed
only in one place which isn't performance criticial.
- src/liblzma/lz/lz_encoder.c | 6 ++----
- src/liblzma/lz/lz_encoder.h | 4 ----
- 2 files changed, 2 insertions(+), 8 deletions(-)
-
commit 382808514a42b2f4b4a64515e2dfb3fc1bc48ecd
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-09 20:05:57 +0200
+Date: Wed Jan 9 20:05:57 2008 +0200
Define HAVE_ASM_X86 when x86 assembler optimizations are
used. This #define will be useful for inline assembly.
- configure.ac | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
commit 0e70fbe4032351aab13a1cd8e5deced105c0b276
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-09 12:06:46 +0200
+Date: Wed Jan 9 12:06:46 2008 +0200
Added good-single-none-empty_3.lzma and
bad-single-none-empty.lzma.
- tests/files/README | 6 ++++++
- tests/files/bad-single-none-empty.lzma | Bin 0 -> 19 bytes
- tests/files/good-single-none-empty_3.lzma | Bin 0 -> 19 bytes
- 3 files changed, 6 insertions(+)
-
commit 379fbbe84d922c7cc00afa65c6f0c095da596b19
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-08 23:11:59 +0200
+Date: Tue Jan 8 23:11:59 2008 +0200
Take advantage of return_if_error() in block_decoder.c.
- src/liblzma/common/block_decoder.c | 23 +++++++----------------
- 1 file changed, 7 insertions(+), 16 deletions(-)
-
commit 97d5fa82077e57815dfad995dc393c2809a78539
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-08 23:10:57 +0200
+Date: Tue Jan 8 23:10:57 2008 +0200
Updated tests/files/README.
- tests/files/README | 15 +++++++++------
- 1 file changed, 9 insertions(+), 6 deletions(-)
-
commit 3bb9bb310936cba6a743b4f06739a397dec7c28f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-08 23:05:40 +0200
+Date: Tue Jan 8 23:05:40 2008 +0200
Added test files with empty Compressed Data.
- tests/files/README | 6 ++++++
- tests/files/good-single-lzma-empty.lzma | Bin 0 -> 21 bytes
- tests/files/good-single-none-empty_1.lzma | Bin 0 -> 18 bytes
- tests/files/good-single-none-empty_2.lzma | Bin 0 -> 26 bytes
- 4 files changed, 6 insertions(+)
-
commit 7054c5f5888ac6a7178cd43dc9583ce6c7e78c9f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-08 22:58:42 +0200
+Date: Tue Jan 8 22:58:42 2008 +0200
Fix decoding of Blocks that have only Block Header.
- src/liblzma/common/block_decoder.c | 37 ++++++++++++++-----------------------
- 1 file changed, 14 insertions(+), 23 deletions(-)
-
commit 753e4d95cd1cf29c632dfe1a670af7c67aeffbf4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-08 22:27:46 +0200
+Date: Tue Jan 8 22:27:46 2008 +0200
Added good-single-subblock_implicit.lzma.
- tests/files/README | 2 ++
- tests/files/good-single-subblock_implicit.lzma | Bin 0 -> 35 bytes
- 2 files changed, 2 insertions(+)
-
commit faeac7b7aca75f86afed1e7cc06279d9d497c627
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-08 18:50:30 +0200
+Date: Tue Jan 8 18:50:30 2008 +0200
Disable CRC32 from Block Headers when --check=none
has been specified.
- src/lzma/process.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit a751126dbb656767ed4666cf0e5d3e17349d93d1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-08 13:36:29 +0200
+Date: Tue Jan 8 13:36:29 2008 +0200
Fixed encoding of empty files. Arguments to is_size_valid()
were in wrong order in block_encoder.c.
- src/liblzma/common/block_encoder.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 9080267603b1006c4867c823307dca9df8be0d20
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-08 13:35:36 +0200
+Date: Tue Jan 8 13:35:36 2008 +0200
Added a few test files.
- tests/files/README | 21 ++++++++++++++++++---
- tests/files/bad-cat-single-none-pad_garbage_1.lzma | Bin 0 -> 65 bytes
- tests/files/bad-cat-single-none-pad_garbage_2.lzma | Bin 0 -> 65 bytes
- tests/files/bad-cat-single-none-pad_garbage_3.lzma | Bin 0 -> 65 bytes
- tests/files/bad-single-data_after_eopm.lzma | Bin 55 -> 0 bytes
- tests/files/bad-single-data_after_eopm_1.lzma | Bin 0 -> 55 bytes
- tests/files/bad-single-none-truncated.lzma | Bin 0 -> 29 bytes
- 7 files changed, 18 insertions(+), 3 deletions(-)
-
commit b4943ccf73b64fc93a90a23474509c316f55eb2b
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-08 12:29:58 +0200
+Date: Tue Jan 8 12:29:58 2008 +0200
Avoid using ! in test_files.sh, because that doesn't work
with some ancient /bin/sh versions.
- tests/test_files.sh | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
commit e2417b2b9134f3f65e14b61e23cd3644d8954353
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-08 00:48:30 +0200
+Date: Tue Jan 8 00:48:30 2008 +0200
More pre-C99 inttypes.h compatibility fixes. Now the code
should work even if the system has no inttypes.h.
- src/common/physmem.h | 11 -----------
- src/liblzma/check/crc32_init.c | 5 +----
- src/liblzma/check/crc32_tablegen.c | 7 ++-----
- src/liblzma/check/crc64_init.c | 5 +----
- src/liblzma/check/crc64_tablegen.c | 7 ++-----
- 5 files changed, 6 insertions(+), 29 deletions(-)
-
commit 5d227e51c23639423f4ade06aabb54e131f8505e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-07 23:25:32 +0200
+Date: Mon Jan 7 23:25:32 2008 +0200
Updated fi.po although it's currently pretty much crap.
- po/fi.po | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
commit c7189d981a1b27c63da0c1ee80d9b5cd8ce1733d
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-07 23:14:25 +0200
+Date: Mon Jan 7 23:14:25 2008 +0200
Test for $GCC = yes instead of if it is non-empty. This
way it is possible to use ac_cv_c_compiler_gnu=no to
force configure to think it is using non-GNU C compiler.
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 3dbbea82b74bb841c995ad332a3aeca613015e10
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-07 21:49:41 +0200
+Date: Mon Jan 7 21:49:41 2008 +0200
Added test_files.sh to tests/Makefile.am so it gets
included in the tarball with "make dist".
- tests/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 2fd2d181543feab1b4003f3ac6e85625fbee04f0
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-07 18:22:24 +0200
+Date: Mon Jan 7 18:22:24 2008 +0200
Cosmetic edit to test_files.sh.
- tests/test_files.sh | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
commit 9a71d573100a990ceb30ce0bec6a9a15d795605f
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-07 18:09:44 +0200
+Date: Mon Jan 7 18:09:44 2008 +0200
Added tests/files/README.
- tests/files/README | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 108 insertions(+)
-
commit 47f48fe9936ed72617a60fbd015df7e0e47a1e43
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-07 14:20:57 +0200
+Date: Mon Jan 7 14:20:57 2008 +0200
Tell in COPYING that everything in tests/files is
public domain.
- COPYING | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
commit 3502b3e1d00251d3c8dda96079440705c28d8225
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-07 14:19:05 +0200
+Date: Mon Jan 7 14:19:05 2008 +0200
Cleaned up the tests/files directory.
- tests/files/bad-single-subblock-padding_loop.lzma | Bin 0 -> 43 bytes
- tests/files/bad-single-subblock1023-slow.lzma | Bin 0 -> 7886 bytes
- tests/files/malicious-single-subblock-loop.lzma | Bin 43 -> 0 bytes
- tests/files/malicious-single-subblock-lzma.lzma | Bin 505 -> 0 bytes
- tests/files/malicious-single-subblock1023-slow.lzma | Bin 7886 -> 0 bytes
- 5 files changed, 0 insertions(+), 0 deletions(-)
-
commit 908b2ac604b9940369d7fe8a45e9eb6da5d2a24c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-07 13:49:19 +0200
+Date: Mon Jan 7 13:49:19 2008 +0200
Added test_files.sh to test decoding of the files in
the tests/files directory. It doesn't test the malicious
files yet.
- tests/Makefile.am | 4 +++-
- tests/test_files.sh | 40 ++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 43 insertions(+), 1 deletion(-)
-
commit ecb2a6548f5978022a8fa931719dc575f5fd3bf6
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-07 11:23:13 +0200
+Date: Mon Jan 7 11:23:13 2008 +0200
Updated README regarding the assembler optimizations.
- README | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
commit eacb8050438d3e6146c86eb9732d3fb1ef1825cb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-07 10:58:00 +0200
+Date: Mon Jan 7 10:58:00 2008 +0200
Updated THANKS.
- THANKS | 1 +
- 1 file changed, 1 insertion(+)
-
commit 1239649f96132b18e3b7e2dd152ecf53a195caa8
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-06 21:47:17 +0200
+Date: Sun Jan 6 21:47:17 2008 +0200
Cosmetic changes to configure.ac.
- configure.ac | 14 ++++++--------
- 1 file changed, 6 insertions(+), 8 deletions(-)
-
commit 88ee301ec2e4506a30ec7ac9aaa2288e2dcadd0e
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-06 19:46:38 +0200
+Date: Sun Jan 6 19:46:38 2008 +0200
Automatically disable assembler code on Darwin x86.
Darwin has different ABI than GNU+Linux and Solaris,
thus the assembler code doesn't assemble on Darwin.
- configure.ac | 17 +++++++++++++++--
- 1 file changed, 15 insertions(+), 2 deletions(-)
-
commit c15a7abf66e3a70792f7444115e484c7981c8284
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-06 19:45:27 +0200
+Date: Sun Jan 6 19:45:27 2008 +0200
With printf(), use PRIu64 with a cast to uint64_t instead
of %zu, because some pre-C99 libc versions don't support %zu.
- src/lzma/help.c | 13 +++++++------
- src/lzmadec/lzmadec.c | 6 ++++--
- 2 files changed, 11 insertions(+), 8 deletions(-)
-
commit 4e7e54c4c522ab2f6a7abb92cefc4f707e9568fb
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-06 16:27:41 +0200
+Date: Sun Jan 6 16:27:41 2008 +0200
Introduced compatibility with systems that have pre-C99
or no inttypes.h. This is useful when the compiler has
@@ -11714,60 +8785,33 @@
introducing lzma_uint32 and similar types, but that would
just be an extra pain on modern systems.
- configure.ac | 13 ++++++++-
- doc/liblzma-intro.txt | 10 +++++--
- src/common/sysdefs.h | 59 +++++++++++++++++++++++++++++++++++++-
- src/liblzma/api/lzma.h | 40 +++++++++++++++++---------
- src/liblzma/check/crc32_table.c | 4 +--
- src/liblzma/check/crc32_table_be.h | 2 --
- src/liblzma/check/crc32_table_le.h | 2 --
- src/liblzma/check/crc32_tablegen.c | 1 -
- src/liblzma/check/crc64_table.c | 4 +--
- src/liblzma/check/crc64_table_be.h | 2 --
- src/liblzma/check/crc64_table_le.h | 2 --
- src/liblzma/check/crc64_tablegen.c | 1 -
- src/lzma/private.h | 1 -
- 13 files changed, 106 insertions(+), 35 deletions(-)
-
commit a71864f77dfb76b5d78a270641539947c312583a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-05 19:57:00 +0200
+Date: Sat Jan 5 19:57:00 2008 +0200
Fix typo in comment (INT64_MAX -> UINT64_MAX).
- src/liblzma/api/lzma/vli.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 072927905a3b66281c6311b4b351caa501d8b73a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-05 19:42:04 +0200
+Date: Sat Jan 5 19:42:04 2008 +0200
Rearranged testing of GCC-specific flags.
- configure.ac | 33 +++++++++++++++++++++++----------
- 1 file changed, 23 insertions(+), 10 deletions(-)
-
commit d160ee32598c6d1cd9054ef019e8c9331208b188
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-05 01:20:24 +0200
+Date: Sat Jan 5 01:20:24 2008 +0200
Another bug fix for flush marker detection.
- src/liblzma/lzma/lzma_decoder.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
commit fc67f79f607cbfa78c6f47a69dec098d8659b162
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-04 21:37:01 +0200
+Date: Fri Jan 4 21:37:01 2008 +0200
Fix stupid bugs in flush marker detection.
- src/liblzma/lzma/lzma_decoder.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
commit 0029cbbabe87d491fc046a55a629a6d556010baa
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-04 21:30:33 +0200
+Date: Fri Jan 4 21:30:33 2008 +0200
Added support for flush marker, which will be in files
that use LZMA_SYNC_FLUSH with encoder (not implemented
@@ -11781,35 +8825,24 @@
if one wants to fit the code in 80 columns. This makes
the code easier to read.
- src/liblzma/lzma/lzma_common.h | 4 +
- src/liblzma/lzma/lzma_decoder.c | 217 ++++++++++++++++++----------------------
- 2 files changed, 104 insertions(+), 117 deletions(-)
-
commit bbfd1f6ab058a7e661545205befcb7f70c5685ab
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2008-01-04 20:45:05 +0200
+Date: Fri Jan 4 20:45:05 2008 +0200
Moved range decoder initialization (reading the first
five input bytes) from LZMA decoder to range decoder
header. Did the same for decoding of direct bits.
- src/liblzma/lzma/lzma_decoder.c | 42 +++-------------
- src/liblzma/rangecoder/range_decoder.h | 87 +++++++++++++++++++++++-----------
- 2 files changed, 66 insertions(+), 63 deletions(-)
-
commit 5db745cd2a74f6ed2e52f5c716c08ed0daf17ebc
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-14 11:15:21 +0200
+Date: Fri Dec 14 11:15:21 2007 +0200
Added a note to README that --disable-assembler
must be used on Darwin.
- README | 4 ++++
- 1 file changed, 4 insertions(+)
-
commit 44b333d4615b5aabc557a0e1b6bb0096da3fae24
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-14 10:07:10 +0200
+Date: Fri Dec 14 10:07:10 2007 +0200
Use the filename suffix .S instead of .s for assembler files
so that the preprocessor removes the /* */ style comments,
@@ -11816,36 +8849,22 @@
which are not supported by some non-GNU assemblers (Solaris)
that otherwise work with this code.
- src/liblzma/check/Makefile.am | 4 +-
- src/liblzma/check/crc32_x86.S | 217 ++++++++++++++++++++++++++++++++++++++++++
- src/liblzma/check/crc32_x86.s | 217 ------------------------------------------
- src/liblzma/check/crc64_x86.S | 203 +++++++++++++++++++++++++++++++++++++++
- src/liblzma/check/crc64_x86.s | 203 ---------------------------------------
- 5 files changed, 422 insertions(+), 422 deletions(-)
-
commit ec1c82b2e82f395f6e8e19ac212a639644330cd7
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-14 09:59:05 +0200
+Date: Fri Dec 14 09:59:05 2007 +0200
Fixed wrong symbol name in crc64_x86.s.
- src/liblzma/check/crc64_x86.s | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 2881570df6803eed2fe550af34574e8e61794804
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-14 09:53:24 +0200
+Date: Fri Dec 14 09:53:24 2007 +0200
Use .globl instead of .global in x86 assembler code for
better portability. Still needs fixing the commenting.
- src/liblzma/check/crc32_x86.s | 2 +-
- src/liblzma/check/crc64_x86.s | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit 698470b8f33fc0e5f27dafa93b39b6dd5dde5a66
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-13 20:14:37 +0200
+Date: Thu Dec 13 20:14:37 2007 +0200
Fixed a few short options that take an argument.
short_opts[] was missing colons to indicate
@@ -11852,21 +8871,15 @@
required argument. Thanks to Fabio Pedretti for
the bug report.
- src/lzma/args.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 918bcb0e0728d2d976621e9f35b56f224f11d989
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-11 17:08:04 +0200
+Date: Tue Dec 11 17:08:04 2007 +0200
Removed uncompressed size tracking from Delta encoder too.
- src/liblzma/common/delta_coder.c | 21 +++------------------
- 1 file changed, 3 insertions(+), 18 deletions(-)
-
commit 3e16d51dd645667b05ff826665b1fc353aa41cd9
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-11 16:49:19 +0200
+Date: Tue Dec 11 16:49:19 2007 +0200
Remove uncompressed size tracking from the filter encoders.
It's not strictly needed there, and just complicates the
@@ -11884,403 +8897,86 @@
validate the uncompressed size instead of having it
in every filter.
- src/liblzma/common/copy_coder.c | 25 ++--------------------
- src/liblzma/simple/simple_coder.c | 29 ++++---------------------
- src/liblzma/subblock/subblock_encoder.c | 38 ++++++---------------------------
- 3 files changed, 12 insertions(+), 80 deletions(-)
-
commit 5286723e0d1ac386d5b07f08d78e61becf895a5a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-11 14:10:53 +0200
+Date: Tue Dec 11 14:10:53 2007 +0200
Get rid of no-NLS gnulib. I don't know how to get it
working with Automake. People who want smaller lzmadec
should use --disable-nls on non-GNU systems.
- lib/Makefile.am | 10 +---------
- src/lzma/Makefile.am | 2 +-
- src/lzmadec/Makefile.am | 4 +++-
- 3 files changed, 5 insertions(+), 11 deletions(-)
-
commit ce8b036a6c7a43b290356b673d953f6d76b2be64
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-11 14:09:35 +0200
+Date: Tue Dec 11 14:09:35 2007 +0200
Fixed a typo in tests/Makefile.am which prevented
building the tests if gnulib was needed.
- tests/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit 7c1ad41eb611ed89e5bb8792a3beb533b7aa59f4
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-11 11:18:58 +0200
+Date: Tue Dec 11 11:18:58 2007 +0200
Fixed wrong type of flags_size in Subblock encoder.
- src/liblzma/subblock/subblock_encoder.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
commit ce64df716243fdc40359090d1f6541f3a4f5f21a
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-10 20:44:16 +0200
+Date: Mon Dec 10 20:44:16 2007 +0200
Bumped version number to 4.42.3alpha.
- configure.ac | 2 +-
- src/liblzma/api/lzma/version.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit b499a0403ea5c41d6a25b40275eb6c57643052ce
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-10 15:02:50 +0200
+Date: Mon Dec 10 15:02:50 2007 +0200
Disabled some unneeded warnings and made "make dist" work.
- Makefile.am | 9 +++------
- configure.ac | 9 ++++++---
- po/fi.po | 47 ++++++++++++++++++++++++-----------------------
- 3 files changed, 33 insertions(+), 32 deletions(-)
-
commit 2ab8adb5165a0b77114a7eb21f9ff1e6a266f172
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-09 21:43:15 +0200
+Date: Sun Dec 9 21:43:15 2007 +0200
Added LZMA_SYNC_FLUSH support to the Copy filter.
- src/liblzma/common/copy_coder.c | 92 +++++++++++++++++++++++++----------------
- 1 file changed, 57 insertions(+), 35 deletions(-)
-
commit 329c272d501e88793dda5540358d55c12428d194
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-09 17:14:07 +0200
+Date: Sun Dec 9 17:14:07 2007 +0200
Added missing LZMA_API to the C versions of the CRC functions.
The x86 assembler versions were already OK.
- src/liblzma/check/crc32.c | 2 +-
- src/liblzma/check/crc64.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
commit c90daf86ce683fa8cf80491d624ffb158dfbd9d7
Author: Jim Meyering <meyering at redhat.com>
-Date: 2007-12-09 15:34:25 +0100
+Date: Sun Dec 9 15:34:25 2007 +0100
* tests/test_block_header.c (test3): Remove duplicate initializer.
- autogen.sh | 2 +-
- tests/test_block_header.c | 1 -
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
commit 07ac881779a8477f2c1ab112b91a129e24aa743c
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-09 17:06:45 +0200
+Date: Sun Dec 9 17:06:45 2007 +0200
Take advantage of return_if_error() macro in more places.
Cleaned Subblock filter's initialization code too.
- src/liblzma/common/block_decoder.c | 22 +++-------
- src/liblzma/common/delta_coder.c | 8 +---
- src/liblzma/common/stream_decoder.c | 17 +++-----
- src/liblzma/common/stream_encoder_multi.c | 68 ++++++++++--------------------
- src/liblzma/common/stream_encoder_single.c | 8 ++--
- src/liblzma/subblock/subblock_decoder.c | 33 +++++----------
- src/liblzma/subblock/subblock_encoder.c | 45 ++++++--------------
- 7 files changed, 63 insertions(+), 138 deletions(-)
-
commit 41338717964f510ee61d70b25bd4c502ec9f77cf
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-09 12:13:01 +0200
+Date: Sun Dec 9 12:13:01 2007 +0200
Added a bunch of .lzma test files.
- tests/files/bad-single-data_after_eopm.lzma | Bin 0 -> 55 bytes
- tests/files/bad-single-data_after_eopm_2.lzma | Bin 0 -> 56 bytes
- tests/files/bad-single-subblock_subblock.lzma | Bin 0 -> 26 bytes
- tests/files/good-cat-single-none-pad.lzma | Bin 0 -> 64 bytes
- tests/files/good-single-delta-lzma.tiff.lzma | Bin 0 -> 51409 bytes
- tests/files/good-single-lzma.lzma | Bin 0 -> 44 bytes
- tests/files/good-single-none-pad.lzma | Bin 0 -> 32 bytes
- tests/files/good-single-none.lzma | Bin 0 -> 30 bytes
- tests/files/good-single-subblock-lzma.lzma | Bin 0 -> 50 bytes
- tests/files/good-single-subblock_rle.lzma | Bin 0 -> 118 bytes
- tests/files/malicious-multi-metadata-64PiB.lzma | Bin 0 -> 51 bytes
- tests/files/malicious-single-subblock-256MiB.lzma | Bin 0 -> 30 bytes
- tests/files/malicious-single-subblock-64PiB.lzma | Bin 0 -> 45 bytes
- tests/files/malicious-single-subblock-loop.lzma | Bin 0 -> 43 bytes
- tests/files/malicious-single-subblock-lzma.lzma | Bin 0 -> 505 bytes
- tests/files/malicious-single-subblock1023-slow.lzma | Bin 0 -> 7886 bytes
- tests/files/malicious-single-subblock31-slow.lzma | Bin 0 -> 1233 bytes
- 17 files changed, 0 insertions(+), 0 deletions(-)
-
commit ff946ceb7975d4f11950afd33f6315b4d20d1a03
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-09 11:24:48 +0200
+Date: Sun Dec 9 11:24:48 2007 +0200
Re-enabled the security checks in Subblock decoder
that were disabled for debugging reasons.
- src/liblzma/subblock/subblock_decoder.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
commit 2bf36d22d2c24ac3f488e63b35564fa2f6dab8d1
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-09 11:03:28 +0200
+Date: Sun Dec 9 11:03:28 2007 +0200
Fixed the tests to build with -Werror.
- tests/test_block_header.c | 2 +-
- tests/test_check.c | 2 +-
- tests/test_filter_flags.c | 2 +-
- tests/test_index.c | 14 +++++++-------
- tests/test_info.c | 2 +-
- tests/test_stream_flags.c | 2 +-
- 6 files changed, 12 insertions(+), 12 deletions(-)
-
commit 5d018dc03549c1ee4958364712fb0c94e1bf2741
Author: Lasse Collin <lasse.collin at tukaani.org>
-Date: 2007-12-09 00:42:33 +0200
+Date: Sun Dec 9 00:42:33 2007 +0200
Imported to git.
-
- AUTHORS | 18 +
- COPYING | 24 +
- COPYING.GPLv2 | 339 +++++
- COPYING.GPLv3 | 674 +++++++++
- COPYING.LGPLv2.1 | 504 +++++++
- ChangeLog | 2 +
- Doxyfile.in | 1229 ++++++++++++++++
- Makefile.am | 38 +
- NEWS | 0
- README | 151 ++
- THANKS | 23 +
- TODO | 109 ++
- autogen.sh | 38 +
- configure.ac | 611 ++++++++
- doc/bugs.txt | 46 +
- doc/faq.txt | 247 ++++
- doc/file-format.txt | 1861 ++++++++++++++++++++++++
- doc/history.txt | 140 ++
- doc/liblzma-advanced.txt | 324 +++++
- doc/liblzma-hacking.txt | 112 ++
- doc/liblzma-intro.txt | 188 +++
- doc/liblzma-security.txt | 219 +++
- doc/lzma-intro.txt | 107 ++
- extra/scanlzma/scanlzma.c | 85 ++
- lib/Makefile.am | 40 +
- lib/getopt.c | 1191 +++++++++++++++
- lib/getopt1.c | 171 +++
- lib/getopt_.h | 226 +++
- lib/getopt_int.h | 131 ++
- lib/gettext.h | 240 +++
- m4/acx_pthread.m4 | 279 ++++
- m4/getopt.m4 | 83 ++
- po/LINGUAS | 1 +
- po/Makevars | 46 +
- po/POTFILES.in | 13 +
- po/fi.po | 445 ++++++
- src/Makefile.am | 16 +
- src/common/open_stdxxx.h | 50 +
- src/common/physmem.h | 77 +
- src/common/sysdefs.h | 100 ++
- src/liblzma/Makefile.am | 47 +
- src/liblzma/api/Makefile.am | 39 +
- src/liblzma/api/lzma.h | 122 ++
- src/liblzma/api/lzma/alignment.h | 60 +
- src/liblzma/api/lzma/alone.h | 82 ++
- src/liblzma/api/lzma/auto.h | 41 +
- src/liblzma/api/lzma/base.h | 410 ++++++
- src/liblzma/api/lzma/block.h | 409 ++++++
- src/liblzma/api/lzma/check.h | 128 ++
- src/liblzma/api/lzma/copy.h | 29 +
- src/liblzma/api/lzma/delta.h | 49 +
- src/liblzma/api/lzma/extra.h | 114 ++
- src/liblzma/api/lzma/filter.h | 166 +++
- src/liblzma/api/lzma/index.h | 84 ++
- src/liblzma/api/lzma/info.h | 315 ++++
- src/liblzma/api/lzma/init.h | 85 ++
- src/liblzma/api/lzma/lzma.h | 312 ++++
- src/liblzma/api/lzma/memlimit.h | 157 ++
- src/liblzma/api/lzma/metadata.h | 100 ++
- src/liblzma/api/lzma/raw.h | 72 +
- src/liblzma/api/lzma/simple.h | 85 ++
- src/liblzma/api/lzma/stream.h | 178 +++
- src/liblzma/api/lzma/stream_flags.h | 142 ++
- src/liblzma/api/lzma/subblock.h | 197 +++
- src/liblzma/api/lzma/version.h | 59 +
- src/liblzma/api/lzma/vli.h | 244 ++++
- src/liblzma/check/Makefile.am | 64 +
- src/liblzma/check/check.c | 160 ++
- src/liblzma/check/check.h | 102 ++
- src/liblzma/check/check_byteswap.h | 43 +
- src/liblzma/check/check_init.c | 37 +
- src/liblzma/check/crc32.c | 88 ++
- src/liblzma/check/crc32_init.c | 58 +
- src/liblzma/check/crc32_table.c | 22 +
- src/liblzma/check/crc32_table_be.h | 527 +++++++
- src/liblzma/check/crc32_table_le.h | 527 +++++++
- src/liblzma/check/crc32_tablegen.c | 55 +
- src/liblzma/check/crc32_x86.s | 217 +++
- src/liblzma/check/crc64.c | 75 +
- src/liblzma/check/crc64_init.c | 58 +
- src/liblzma/check/crc64_table.c | 22 +
- src/liblzma/check/crc64_table_be.h | 523 +++++++
- src/liblzma/check/crc64_table_le.h | 523 +++++++
- src/liblzma/check/crc64_tablegen.c | 56 +
- src/liblzma/check/crc64_x86.s | 203 +++
- src/liblzma/check/crc_macros.h | 33 +
- src/liblzma/check/sha256.c | 203 +++
- src/liblzma/common/Makefile.am | 94 ++
- src/liblzma/common/alignment.c | 118 ++
- src/liblzma/common/allocator.c | 57 +
- src/liblzma/common/alone_decoder.c | 197 +++
- src/liblzma/common/alone_decoder.h | 24 +
- src/liblzma/common/alone_encoder.c | 167 +++
- src/liblzma/common/auto_decoder.c | 113 ++
- src/liblzma/common/block_decoder.c | 405 ++++++
- src/liblzma/common/block_decoder.h | 29 +
- src/liblzma/common/block_encoder.c | 375 +++++
- src/liblzma/common/block_encoder.h | 29 +
- src/liblzma/common/block_header_decoder.c | 373 +++++
- src/liblzma/common/block_header_encoder.c | 211 +++
- src/liblzma/common/block_private.h | 46 +
- src/liblzma/common/chunk_size.c | 74 +
- src/liblzma/common/code.c | 203 +++
- src/liblzma/common/common.h | 271 ++++
- src/liblzma/common/copy_coder.c | 143 ++
- src/liblzma/common/copy_coder.h | 31 +
- src/liblzma/common/delta_coder.c | 210 +++
- src/liblzma/common/delta_coder.h | 31 +
- src/liblzma/common/extra.c | 33 +
- src/liblzma/common/features.c | 70 +
- src/liblzma/common/filter_flags_decoder.c | 382 +++++
- src/liblzma/common/filter_flags_encoder.c | 359 +++++
- src/liblzma/common/index.c | 140 ++
- src/liblzma/common/info.c | 823 +++++++++++
- src/liblzma/common/init.c | 39 +
- src/liblzma/common/init_decoder.c | 33 +
- src/liblzma/common/init_encoder.c | 44 +
- src/liblzma/common/memory_limitter.c | 200 +++
- src/liblzma/common/memory_usage.c | 113 ++
- src/liblzma/common/metadata_decoder.c | 555 +++++++
- src/liblzma/common/metadata_decoder.h | 31 +
- src/liblzma/common/metadata_encoder.c | 436 ++++++
- src/liblzma/common/metadata_encoder.h | 30 +
- src/liblzma/common/next_coder.c | 65 +
- src/liblzma/common/raw_common.c | 175 +++
- src/liblzma/common/raw_common.h | 31 +
- src/liblzma/common/raw_decoder.c | 127 ++
- src/liblzma/common/raw_decoder.h | 30 +
- src/liblzma/common/raw_encoder.c | 124 ++
- src/liblzma/common/raw_encoder.h | 30 +
- src/liblzma/common/stream_common.c | 23 +
- src/liblzma/common/stream_common.h | 28 +
- src/liblzma/common/stream_decoder.c | 454 ++++++
- src/liblzma/common/stream_encoder_multi.c | 460 ++++++
- src/liblzma/common/stream_encoder_single.c | 220 +++
- src/liblzma/common/stream_flags_decoder.c | 258 ++++
- src/liblzma/common/stream_flags_decoder.h | 31 +
- src/liblzma/common/stream_flags_encoder.c | 75 +
- src/liblzma/common/sysdefs.h | 1 +
- src/liblzma/common/version.c | 25 +
- src/liblzma/common/vli_decoder.c | 69 +
- src/liblzma/common/vli_encoder.c | 81 ++
- src/liblzma/common/vli_reverse_decoder.c | 55 +
- src/liblzma/lz/Makefile.am | 63 +
- src/liblzma/lz/bt2.c | 27 +
- src/liblzma/lz/bt2.h | 31 +
- src/liblzma/lz/bt3.c | 29 +
- src/liblzma/lz/bt3.h | 31 +
- src/liblzma/lz/bt4.c | 30 +
- src/liblzma/lz/bt4.h | 31 +
- src/liblzma/lz/hc3.c | 30 +
- src/liblzma/lz/hc3.h | 31 +
- src/liblzma/lz/hc4.c | 31 +
- src/liblzma/lz/hc4.h | 31 +
- src/liblzma/lz/lz_decoder.c | 462 ++++++
- src/liblzma/lz/lz_decoder.h | 214 +++
- src/liblzma/lz/lz_encoder.c | 481 ++++++
- src/liblzma/lz/lz_encoder.h | 161 ++
- src/liblzma/lz/lz_encoder_private.h | 40 +
- src/liblzma/lz/match_c.h | 401 +++++
- src/liblzma/lz/match_h.h | 69 +
- src/liblzma/lzma.pc.in | 11 +
- src/liblzma/lzma/Makefile.am | 43 +
- src/liblzma/lzma/lzma_common.h | 128 ++
- src/liblzma/lzma/lzma_decoder.c | 844 +++++++++++
- src/liblzma/lzma/lzma_decoder.h | 41 +
- src/liblzma/lzma/lzma_encoder.c | 413 ++++++
- src/liblzma/lzma/lzma_encoder.h | 35 +
- src/liblzma/lzma/lzma_encoder_features.c | 59 +
- src/liblzma/lzma/lzma_encoder_getoptimum.c | 893 ++++++++++++
- src/liblzma/lzma/lzma_encoder_getoptimumfast.c | 201 +++
- src/liblzma/lzma/lzma_encoder_init.c | 245 ++++
- src/liblzma/lzma/lzma_encoder_presets.c | 34 +
- src/liblzma/lzma/lzma_encoder_private.h | 225 +++
- src/liblzma/lzma/lzma_literal.c | 74 +
- src/liblzma/lzma/lzma_literal.h | 74 +
- src/liblzma/rangecoder/Makefile.am | 28 +
- src/liblzma/rangecoder/range_common.h | 68 +
- src/liblzma/rangecoder/range_decoder.h | 189 +++
- src/liblzma/rangecoder/range_encoder.c | 46 +
- src/liblzma/rangecoder/range_encoder.h | 317 ++++
- src/liblzma/simple/Makefile.am | 46 +
- src/liblzma/simple/arm.c | 76 +
- src/liblzma/simple/armthumb.c | 81 ++
- src/liblzma/simple/ia64.c | 117 ++
- src/liblzma/simple/powerpc.c | 80 +
- src/liblzma/simple/simple_coder.c | 306 ++++
- src/liblzma/simple/simple_coder.h | 68 +
- src/liblzma/simple/simple_private.h | 86 ++
- src/liblzma/simple/sparc.c | 88 ++
- src/liblzma/simple/x86.c | 161 ++
- src/liblzma/subblock/Makefile.am | 33 +
- src/liblzma/subblock/subblock_decoder.c | 681 +++++++++
- src/liblzma/subblock/subblock_decoder.h | 29 +
- src/liblzma/subblock/subblock_decoder_helper.c | 80 +
- src/liblzma/subblock/subblock_decoder_helper.h | 36 +
- src/liblzma/subblock/subblock_encoder.c | 841 +++++++++++
- src/liblzma/subblock/subblock_encoder.h | 28 +
- src/lzma/Makefile.am | 63 +
- src/lzma/alloc.c | 106 ++
- src/lzma/alloc.h | 42 +
- src/lzma/args.c | 566 +++++++
- src/lzma/args.h | 64 +
- src/lzma/error.c | 156 ++
- src/lzma/error.h | 67 +
- src/lzma/hardware.c | 99 ++
- src/lzma/hardware.h | 31 +
- src/lzma/help.c | 178 +++
- src/lzma/help.h | 32 +
- src/lzma/io.c | 664 +++++++++
- src/lzma/io.h | 60 +
- src/lzma/list.c | 477 ++++++
- src/lzma/main.c | 254 ++++
- src/lzma/options.c | 346 +++++
- src/lzma/options.h | 46 +
- src/lzma/private.h | 55 +
- src/lzma/process.c | 458 ++++++
- src/lzma/process.h | 30 +
- src/lzma/suffix.c | 145 ++
- src/lzma/suffix.h | 25 +
- src/lzma/util.c | 182 +++
- src/lzma/util.h | 32 +
- src/lzmadec/Makefile.am | 27 +
- src/lzmadec/lzmadec.c | 515 +++++++
- src/scripts/Makefile.am | 24 +
- src/scripts/lzdiff | 67 +
- src/scripts/lzdiff.1 | 51 +
- src/scripts/lzgrep | 123 ++
- src/scripts/lzgrep.1 | 61 +
- src/scripts/lzmore | 74 +
- src/scripts/lzmore.1 | 55 +
- tests/Makefile.am | 43 +
- tests/test_block.c | 59 +
- tests/test_block_header.c | 352 +++++
- tests/test_check.c | 90 ++
- tests/test_filter_flags.c | 326 +++++
- tests/test_index.c | 43 +
- tests/test_info.c | 717 +++++++++
- tests/test_stream_flags.c | 191 +++
- tests/tests.h | 148 ++
- 240 files changed, 42513 insertions(+)
Deleted: vendor/xz/dist/INSTALL
===================================================================
--- vendor/xz/dist/INSTALL 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/INSTALL 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,506 +0,0 @@
-
-XZ Utils Installation
-=====================
-
- 0. Preface
- 1. Supported platforms
- 1.1. Compilers
- 1.2. Platform-specific notes
- 1.2.1. AIX
- 1.2.2. IRIX
- 1.2.3. MINIX 3
- 1.2.4. OpenVMS
- 1.2.5. Solaris, OpenSolaris, and derivatives
- 1.2.6. Tru64
- 1.2.7. Windows
- 1.2.8. DOS
- 1.3. Adding support for new platforms
- 2. configure options
- 2.1. Static vs. dynamic linking of liblzma
- 2.2. Optimizing xzdec and lzmadec
- 3. xzgrep and other scripts
- 3.1. Dependencies
- 3.2. PATH
- 4. Troubleshooting
- 4.1. "No C99 compiler was found."
- 4.2. "No POSIX conforming shell (sh) was found."
- 4.3. configure works but build fails at crc32_x86.S
- 4.4. Lots of warnings about symbol visibility
- 4.5. "make check" fails
- 4.6. liblzma.so (or similar) not found when running xz
-
-
-0. Preface
-----------
-
- If you aren't familiar with building packages that use GNU Autotools,
- see the file INSTALL.generic for generic instructions before reading
- further.
-
- If you are going to build a package for distribution, see also the
- file PACKAGERS. It contains information that should help making the
- binary packages as good as possible, but the information isn't very
- interesting to those making local builds for private use or for use
- in special situations like embedded systems.
-
-
-1. Supported platforms
-----------------------
-
- XZ Utils are developed on GNU/Linux, but they should work on many
- POSIX-like operating systems like *BSDs and Solaris, and even on
- a few non-POSIX operating systems.
-
-
-1.1. Compilers
-
- A C99 compiler is required to compile XZ Utils. If you use GCC, you
- need at least version 3.x.x. GCC version 2.xx.x doesn't support some
- C99 features used in XZ Utils source code, thus GCC 2 won't compile
- XZ Utils.
-
- XZ Utils takes advantage of some GNU C extensions when building
- with GCC. Because these extensions are used only when building
- with GCC, it should be possible to use any C99 compiler.
-
-
-1.2. Platform-specific notes
-
-1.2.1. AIX
-
- If you use IBM XL C compiler, pass CC=xlc_r to configure. If
- you use CC=xlc instead, you must disable threading support
- with --disable-threads (usually not recommended).
-
-
-1.2.2. IRIX
-
- MIPSpro 7.4.4m has been reported to produce broken code if using
- the -O2 optimization flag ("make check" fails). Using -O1 should
- work.
-
- A problem has been reported when using shared liblzma. Passing
- --disable-shared to configure works around this. Alternatively,
- putting "-64" to CFLAGS to build a 64-bit version might help too.
-
-
-1.2.3. MINIX 3
-
- The default install of MINIX 3 includes Amsterdam Compiler Kit (ACK),
- which doesn't support C99. Install GCC to compile XZ Utils.
-
- MINIX 3.1.8 and older have bugs in /usr/include/stdint.h, which has
- to be patched before XZ Utils can be compiled correctly. See
- <http://gforge.cs.vu.nl/gf/project/minix/tracker/?action=TrackerItemEdit&tracker_item_id=537>.
-
- MINIX 3.2.0 and later use a different libc and aren't affected by
- the above bug.
-
- XZ Utils doesn't have code to detect the amount of physical RAM and
- number of CPU cores on MINIX 3.
-
- See section 4.4 in this file about symbol visibility warnings (you
- may want to pass gl_cv_cc_visibility=no to configure).
-
-
-1.2.4. OpenVMS
-
- XZ Utils can be built for OpenVMS, but the build system files
- are not included in the XZ Utils source package. The required
- OpenVMS-specific files are maintained by Jouk Jansen and can be
- downloaded here:
-
- http://nchrem.tnw.tudelft.nl/openvms/software2.html#xzutils
-
-
-1.2.5. Solaris, OpenSolaris, and derivatives
-
- The following linker error has been reported on some x86 systems:
-
- ld: fatal: relocation error: R_386_GOTOFF: ...
-
- This can be worked around by passing gl_cv_cc_visibility=no
- as an argument to the configure script.
-
-
-1.2.6. Tru64
-
- If you try to use the native C compiler on Tru64 (passing CC=cc to
- configure), you may need the workaround mention in section 4.1 in
- this file (pass also ac_cv_prog_cc_c99= to configure).
-
-
-1.2.7. Windows
-
- Building XZ Utils on Windows is supported under MinGW + MSYS,
- MinGW-w64 + MSYS, and Cygwin. There is windows/build.bash to
- ease packaging XZ Utils with MinGW(-w64) + MSYS into a
- redistributable .zip or .7z file. See windows/INSTALL-Windows.txt
- for more information.
-
- It might be possible to build liblzma with a non-GNU toolchain too,
- but that will probably require writing a separate makefile. Building
- the command line tools with non-GNU toolchains will be harder than
- building only liblzma.
-
- Even if liblzma is built with MinGW, the resulting DLL or static
- library can be used by other compilers and linkers, including MSVC.
- Thus, it shouldn't be a problem to use MinGW to build liblzma even
- if you cannot use MinGW to build the rest of your project. See
- windows/README-Windows.txt for details.
-
-
-1.2.8. DOS
-
- There is an experimental Makefile in the "dos" directory to build
- XZ Utils on DOS using DJGPP. Support for long file names (LFN) is
- needed. See dos/README for more information.
-
- GNU Autotools based build hasn't been tried on DOS. If you try, I
- would like to hear if it worked.
-
-
-1.3. Adding support for new platforms
-
- If you have written patches to make XZ Utils to work on previously
- unsupported platform, please send the patches to me! I will consider
- including them to the official version. It's nice to minimize the
- need of third-party patching.
-
- One exception: Don't request or send patches to change the whole
- source package to C89. I find C99 substantially nicer to write and
- maintain. However, the public library headers must be in C89 to
- avoid frustrating those who maintain programs, which are strictly
- in C89 or C++.
-
-
-2. configure options
---------------------
-
- In most cases, the defaults are what you want. Many of the options
- below are useful only when building a size-optimized version of
- liblzma or command line tools.
-
- --enable-encoders=LIST
- --disable-encoders
- Specify a comma-separated LIST of filter encoders to
- build. See "./configure --help" for exact list of
- available filter encoders. The default is to build all
- supported encoders.
-
- If LIST is empty or --disable-encoders is used, no filter
- encoders will be built and also the code shared between
- encoders will be omitted.
-
- Disabling encoders will remove some symbols from the
- liblzma ABI, so this option should be used only when it
- is known to not cause problems.
-
- --enable-decoders=LIST
- --disable-decoders
- This is like --enable-encoders but for decoders. The
- default is to build all supported decoders.
-
- --enable-match-finders=LIST
- liblzma includes two categories of match finders:
- hash chains and binary trees. Hash chains (hc3 and hc4)
- are quite fast but they don't provide the best compression
- ratio. Binary trees (bt2, bt3 and bt4) give excellent
- compression ratio, but they are slower and need more
- memory than hash chains.
-
- You need to enable at least one match finder to build the
- LZMA1 or LZMA2 filter encoders. Usually hash chains are
- used only in the fast mode, while binary trees are used to
- when the best compression ratio is wanted.
-
- The default is to build all the match finders if LZMA1
- or LZMA2 filter encoders are being built.
-
- --enable-checks=LIST
- liblzma support multiple integrity checks. CRC32 is
- mandatory, and cannot be omitted. See "./configure --help"
- for exact list of available integrity check types.
-
- liblzma and the command line tools can decompress files
- which use unsupported integrity check type, but naturally
- the file integrity cannot be verified in that case.
-
- Disabling integrity checks may remove some symbols from
- the liblzma ABI, so this option should be used only when
- it is known to not cause problems.
-
- --disable-xz
- --disable-xzdec
- --disable-lzmadec
- --disable-lzmainfo
- Don't build and install the command line tool mentioned
- in the option name.
-
- NOTE: Disabling xz will skip some tests in "make check".
-
- NOTE: If xzdec is disabled and lzmadec is left enabled,
- a dangling man page symlink lzmadec.1 -> xzdec.1 is
- created.
-
- --disable-lzma-links
- Don't create symlinks for LZMA Utils compatibility.
- This includes lzma, unlzma, and lzcat. If scripts are
- installed, also lzdiff, lzcmp, lzgrep, lzegrep, lzfgrep,
- lzmore, and lzless will be omitted if this option is used.
-
- --disable-scripts
- Don't install the scripts xzdiff, xzgrep, xzmore, xzless,
- and their symlinks.
-
- --disable-doc
- Don't install the documentation files to $docdir
- (often /usr/doc/xz or /usr/local/doc/xz). Man pages
- will still be installed. The $docdir can be changed
- with --docdir=DIR.
-
- --disable-assembler
- liblzma includes some assembler optimizations. Currently
- there is only assembler code for CRC32 and CRC64 for
- 32-bit x86.
-
- All the assembler code in liblzma is position-independent
- code, which is suitable for use in shared libraries and
- position-independent executables. So far only i386
- instructions are used, but the code is optimized for i686
- class CPUs. If you are compiling liblzma exclusively for
- pre-i686 systems, you may want to disable the assembler
- code.
-
- --enable-unaligned-access
- Allow liblzma to use unaligned memory access for 16-bit
- and 32-bit loads and stores. This should be enabled only
- when the hardware supports this, i.e. when unaligned
- access is fast. Some operating system kernels emulate
- unaligned access, which is extremely slow. This option
- shouldn't be used on systems that rely on such emulation.
-
- Unaligned access is enabled by default on x86, x86-64,
- and big endian PowerPC.
-
- --enable-small
- Reduce the size of liblzma by selecting smaller but
- semantically equivalent version of some functions, and
- omit precomputed lookup tables. This option tends to
- make liblzma slightly slower.
-
- Note that while omitting the precomputed tables makes
- liblzma smaller on disk, the tables are still needed at
- run time, and need to be computed at startup. This also
- means that the RAM holding the tables won't be shared
- between applications linked against shared liblzma.
-
- This option doesn't modify CFLAGS to tell the compiler
- to optimize for size. You need to add -Os or equivalent
- flag(s) to CFLAGS manually.
-
- --enable-assume-ram=SIZE
- On the most common operating systems, XZ Utils is able to
- detect the amount of physical memory on the system. This
- information is used by the options --memlimit-compress,
- --memlimit-decompress, and --memlimit when setting the
- limit to a percentage of total RAM.
-
- On some systems, there is no code to detect the amount of
- RAM though. Using --enable-assume-ram one can set how much
- memory to assume on these systems. SIZE is given as MiB.
- The default is 128 MiB.
-
- Feel free to send patches to add support for detecting
- the amount of RAM on the operating system you use. See
- src/common/tuklib_physmem.c for details.
-
- --disable-threads
- Disable threading support. This makes some things
- thread-unsafe, meaning that if multithreaded application
- calls liblzma functions from more than one thread,
- something bad may happen.
-
- Use this option if threading support causes you trouble,
- or if you know that you will use liblzma only from
- single-threaded applications and want to avoid dependency
- on libpthread.
-
- --enable-debug
- This enables the assert() macro and possibly some other
- run-time consistency checks. It makes the code slower, so
- you normally don't want to have this enabled.
-
- --enable-werror
- If building with GCC, make all compiler warnings an error,
- that abort the compilation. This may help catching bugs,
- and should work on most systems. This has no effect on the
- resulting binaries.
-
-
-2.1. Static vs. dynamic linking of liblzma
-
- On 32-bit x86, linking against static liblzma can give a minor
- speed improvement. Static libraries on x86 are usually compiled as
- position-dependent code (non-PIC) and shared libraries are built as
- position-independent code (PIC). PIC wastes one register, which can
- make the code slightly slower compared to a non-PIC version. (Note
- that this doesn't apply to x86-64.)
-
- If you want to link xz against static liblzma, the simplest way
- is to pass --disable-shared to configure. If you want also shared
- liblzma, run configure again and run "make install" only for
- src/liblzma.
-
-
-2.2. Optimizing xzdec and lzmadec
-
- xzdec and lzmadec are intended to be relatively small instead of
- optimizing for the best speed. Thus, it is a good idea to build
- xzdec and lzmadec separately:
-
- - To link the tools against static liblzma, pass --disable-shared
- to configure.
-
- - To select somewhat size-optimized variant of some things in
- liblzma, pass --enable-small to configure.
-
- - Tell the compiler to optimize for size instead of speed.
- E.g. with GCC, put -Os into CFLAGS.
-
- - xzdec and lzmadec will never use multithreading capabilities of
- liblzma. You can avoid dependency on libpthread by passing
- --disable-threads to configure.
-
- - There are and will be no translated messages for xzdec and
- lzmadec, so it is fine to pass also --disable-nls to configure.
-
- - Only decoder code is needed, so you can speed up the build
- slightly by passing --disable-encoders to configure. This
- shouldn't affect the final size of the executables though,
- because the linker is able to omit the encoder code anyway.
-
- If you have no use for xzdec or lzmadec, you can disable them with
- --disable-xzdec and --disable-lzmadec.
-
-
-3. xzgrep and other scripts
----------------------------
-
-3.1. Dependencies
-
- POSIX shell (sh) and bunch of other standard POSIX tools are required
- to run the scripts. The configure script tries to find a POSIX
- compliant sh, but if it fails, you can force the shell by passing
- gl_cv_posix_shell=/path/to/posix-sh as an argument to the configure
- script.
-
- Some of the scripts require also mktemp. The original mktemp can be
- found from <http://www.mktemp.org/>. On GNU, most will use the mktemp
- program from GNU coreutils instead of the original implementation.
- Both mktemp versions are fine for XZ Utils (and practically for
- everything else too).
-
-
-3.2. PATH
-
- The scripts assume that the required tools (standard POSIX utilities,
- mktemp, and xz) are in PATH; the scripts don't set the PATH themselves.
- Some people like this while some think this is a bug. Those in the
- latter group can easily patch the scripts before running the configure
- script by taking advantage of a placeholder line in the scripts.
-
- For example, to make the scripts prefix /usr/bin:/bin to PATH:
-
- perl -pi -e 's|^#SET_PATH.*$|PATH=/usr/bin:/bin:\$PATH|' \
- src/scripts/xz*.in
-
-
-4. Troubleshooting
-------------------
-
-4.1. "No C99 compiler was found."
-
- You need a C99 compiler to build XZ Utils. If the configure script
- cannot find a C99 compiler and you think you have such a compiler
- installed, set the compiler command by passing CC=/path/to/c99 as
- an argument to the configure script.
-
- If you get this error even when you think your compiler supports C99,
- you can override the test by passing ac_cv_prog_cc_c99= as an argument
- to the configure script. The test for C99 compiler is not perfect (and
- it is not as easy to make it perfect as it sounds), so sometimes this
- may be needed. You will get a compile error if your compiler doesn't
- support enough C99.
-
-
-4.2. "No POSIX conforming shell (sh) was found."
-
- xzgrep and other scripts need a shell that (roughly) conforms
- to POSIX. The configure script tries to find such a shell. If
- it fails, you can force the shell to be used by passing
- gl_cv_posix_shell=/path/to/posix-sh as an argument to the configure
- script.
-
-
-4.3. configure works but build fails at crc32_x86.S
-
- The easy fix is to pass --disable-assembler to the configure script.
-
- The configure script determines if assembler code can be used by
- looking at the configure triplet; there is currently no check if
- the assembler code can actually actually be built. The x86 assembler
- code should work on x86 GNU/Linux, *BSDs, Solaris, Darwin, MinGW,
- Cygwin, and DJGPP. On other x86 systems, there may be problems and
- the assembler code may need to be disabled with the configure option.
-
- If you get this error when building for x86-64, you have specified or
- the configure script has misguessed your architecture. Pass the
- correct configure triplet using the --build=CPU-COMPANY-SYSTEM option
- (see INSTALL.generic).
-
-
-4.4. Lots of warnings about symbol visibility
-
- On some systems where symbol visibility isn't supported, GCC may
- still accept the visibility options and attributes, which will make
- configure think that visibility is supported. This will result in
- many compiler warnings. You can avoid the warnings by forcing the
- visibility support off by passing gl_cv_cc_visibility=no as an
- argument to the configure script. This has no effect on the
- resulting binaries, but fewer warnings looks nicer and may allow
- using --enable-werror.
-
-
-4.5. "make check" fails
-
- If the other tests pass but test_scripts.sh fails, then the problem
- is in the scripts in src/scripts. Comparing the contents of
- tests/xzgrep_test_output to tests/xzgrep_expected_output might
- give a good idea about problems in xzgrep. One possibility is that
- some tools are missing from the current PATH or the tools lack
- support for some POSIX features. This can happen at least on
- Solaris where the tools in /bin may be ancient but good enough
- tools are available in /usr/xpg4/bin or /usr/xpg6/bin. One fix
- for this problem is described in section 3.2 of this file.
-
- If tests other than test_scripts.sh fail, a likely reason is that
- libtool links the test programs against an installed version of
- liblzma instead of the version that was just built. This is
- obviously a bug which seems to happen on some platforms.
- A workaround is to uninstall the old liblzma versions first.
-
- If the problem isn't any of those described above, then it's likely
- a bug in XZ Utils or in the compiler. See the platform-specific
- notes in this file for possible known problems. Please report
- a bug if you cannot solve the problem. See README for contact
- information.
-
-
-4.6. liblzma.so (or similar) not found when running xz
-
- If you installed the package with "make install" and get an error
- about liblzma.so (or a similarly named file) being missing, try
- running "ldconfig" to update the run-time linker cache (if your
- operating system has such a command).
-
Deleted: vendor/xz/dist/INSTALL.generic
===================================================================
--- vendor/xz/dist/INSTALL.generic 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/INSTALL.generic 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,365 +0,0 @@
-Installation Instructions
-*************************
-
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
-
- Copying and distribution of this file, with or without modification,
-are permitted in any medium without royalty provided the copyright
-notice and this notice are preserved. This file is offered as-is,
-without warranty of any kind.
-
-Basic Installation
-==================
-
- Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package. The following
-more-detailed instructions are generic; see the `README' file for
-instructions specific to this package. Some packages provide this
-`INSTALL' file but do not implement all of the features documented
-below. The lack of an optional feature in a given package is not
-necessarily a bug. More recommendations for GNU packages can be found
-in *note Makefile Conventions: (standards)Makefile Conventions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
- It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
- The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You need `configure.ac' if
-you want to change it or regenerate `configure' using a newer version
-of `autoconf'.
-
- The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system.
-
- Running `configure' might take a while. While running, it prints
- some messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package, generally using the just-built uninstalled binaries.
-
- 4. Type `make install' to install the programs and any data files and
- documentation. When installing into a prefix owned by root, it is
- recommended that the package be configured and built as a regular
- user, and only the `make install' phase executed with root
- privileges.
-
- 5. Optionally, type `make installcheck' to repeat any self-tests, but
- this time using the binaries in their final installed location.
- This target does not install anything. Running this target as a
- regular user, particularly if the prior `make install' required
- root privileges, verifies that the installation completed
- correctly.
-
- 6. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
- 7. Often, you can also type `make uninstall' to remove the installed
- files again. In practice, not all packages have tested that
- uninstallation works correctly, even though it is required by the
- GNU Coding Standards.
-
- 8. Some packages, particularly those that use Automake, provide `make
- distcheck', which can by used by developers to test that all other
- targets like `make install' and `make uninstall' work correctly.
- This target is generally not run by end users.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
-for details on some of the pertinent environment variables.
-
- You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment. Here
-is an example:
-
- ./configure CC=c99 CFLAGS=-g LIBS=-lposix
-
- *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you can use GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'. This
-is known as a "VPATH" build.
-
- With a non-GNU `make', it is safer to compile the package for one
-architecture at a time in the source code directory. After you have
-installed the package for one architecture, use `make distclean' before
-reconfiguring for another architecture.
-
- On MacOS X 10.5 and later systems, you can create libraries and
-executables that work on multiple system types--known as "fat" or
-"universal" binaries--by specifying multiple `-arch' options to the
-compiler but only a single `-arch' option to the preprocessor. Like
-this:
-
- ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
- CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
- CPP="gcc -E" CXXCPP="g++ -E"
-
- This is not guaranteed to produce working output in all cases, you
-may have to build one architecture at a time and combine the results
-using the `lipo' tool if you have problems.
-
-Installation Names
-==================
-
- By default, `make install' installs the package's commands under
-`/usr/local/bin', include files under `/usr/local/include', etc. You
-can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX', where PREFIX must be an
-absolute file name.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-pass the option `--exec-prefix=PREFIX' to `configure', the package uses
-PREFIX as the prefix for installing programs and libraries.
-Documentation and other data files still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=DIR' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them. In general, the
-default for these options is expressed in terms of `${prefix}', so that
-specifying just `--prefix' will affect all of the other directory
-specifications that were not explicitly provided.
-
- The most portable way to affect installation locations is to pass the
-correct locations to `configure'; however, many packages provide one or
-both of the following shortcuts of passing variable assignments to the
-`make install' command line to change installation locations without
-having to reconfigure or recompile.
-
- The first method involves providing an override variable for each
-affected directory. For example, `make install
-prefix=/alternate/directory' will choose an alternate location for all
-directory configuration variables that were expressed in terms of
-`${prefix}'. Any directories that were specified during `configure',
-but not in terms of `${prefix}', must each be overridden at install
-time for the entire installation to be relocated. The approach of
-makefile variable overrides for each directory variable is required by
-the GNU Coding Standards, and ideally causes no recompilation.
-However, some platforms have known limitations with the semantics of
-shared libraries that end up requiring recompilation when using this
-method, particularly noticeable in packages that use GNU Libtool.
-
- The second method involves providing the `DESTDIR' variable. For
-example, `make install DESTDIR=/alternate/directory' will prepend
-`/alternate/directory' before all installation names. The approach of
-`DESTDIR' overrides is not required by the GNU Coding Standards, and
-does not work on platforms that have drive letters. On the other hand,
-it does better at avoiding recompilation issues, and works well even
-when some directory options were not specified in terms of `${prefix}'
-at `configure' time.
-
-Optional Features
-=================
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
- Some packages offer the ability to configure how verbose the
-execution of `make' will be. For these packages, running `./configure
---enable-silent-rules' sets the default to minimal output, which can be
-overridden with `make V=1'; while running `./configure
---disable-silent-rules' sets the default to verbose, which can be
-overridden with `make V=0'.
-
-Particular systems
-==================
-
- On HP-UX, the default C compiler is not ANSI C compatible. If GNU
-CC is not installed, it is recommended to use the following options in
-order to use an ANSI C compiler:
-
- ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
-
-and if that doesn't work, install pre-built binaries of GCC for HP-UX.
-
- On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
-parse its `<wchar.h>' header file. The option `-nodtk' can be used as
-a workaround. If GNU CC is not installed, it is therefore recommended
-to try
-
- ./configure CC="cc"
-
-and if that doesn't work, try
-
- ./configure CC="cc -nodtk"
-
- On Solaris, don't put `/usr/ucb' early in your `PATH'. This
-directory contains several dysfunctional programs; working variants of
-these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
-in your `PATH', put it _after_ `/usr/bin'.
-
- On Haiku, software installed for all users goes in `/boot/common',
-not `/usr/local'. It is recommended to use the following options:
-
- ./configure --prefix=/boot/common
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
-`--build=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
- CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
- OS
- KERNEL-OS
-
- See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
- If you are _building_ compiler tools for cross-compiling, you should
-use the option `--target=TYPE' to select the type of system they will
-produce code for.
-
- If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
- Variables not defined in a site shell script can be set in the
-environment passed to `configure'. However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost. In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'. For example:
-
- ./configure CC=/usr/local2/bin/gcc
-
-causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).
-
-Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf bug. Until the bug is fixed you can use this workaround:
-
- CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
-
-`configure' Invocation
-======================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--help'
-`-h'
- Print a summary of all of the options to `configure', and exit.
-
-`--help=short'
-`--help=recursive'
- Print a summary of the options unique to this package's
- `configure', and exit. The `short' variant lists options used
- only in the top level, while the `recursive' variant lists options
- also present in any nested packages.
-
-`--version'
-`-V'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`--cache-file=FILE'
- Enable the cache: use and save the results of the tests in FILE,
- traditionally `config.cache'. FILE defaults to `/dev/null' to
- disable caching.
-
-`--config-cache'
-`-C'
- Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--prefix=DIR'
- Use DIR as the installation prefix. *note Installation Names::
- for more details, including other options available for fine-tuning
- the installation locations.
-
-`--no-create'
-`-n'
- Run the configure checks, but stop before creating any output
- files.
-
-`configure' also accepts some other, not widely useful, options. Run
-`configure --help' for more details.
-
Deleted: vendor/xz/dist/NEWS
===================================================================
--- vendor/xz/dist/NEWS 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/NEWS 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,245 +0,0 @@
-
-XZ Utils Release Notes
-======================
-
-5.0.8 (2014-12-21)
-
- * Fixed an old bug in xzgrep that affected OpenBSD and probably
- a few other operating systems too.
-
- * Updated French and German translations.
-
- * Added support for detecting the amount of RAM on AmigaOS/AROS.
-
- * Minor build system updates.
-
-
-5.0.7 (2014-09-20)
-
- * Fix regressions introduced in 5.0.6:
-
- - Fix building with non-GNU make.
-
- - Fix invalid Libs.private value in liblzma.pc which broke
- static linking against liblzma if the linker flags were
- taken from pkg-config.
-
-
-5.0.6 (2014-09-14)
-
- * xzgrep now exits with status 0 if at least one file matched.
-
- * A few minor portability and build system fixes
-
-
-5.0.5 (2013-06-30)
-
- * lzmadec and liblzma's lzma_alone_decoder(): Support decompressing
- .lzma files that have less common settings in the headers
- (dictionary size other than 2^n or 2^n + 2^(n-1), or uncompressed
- size greater than 256 GiB). The limitations existed to avoid false
- positives when detecting .lzma files. The lc + lp <= 4 limitation
- still remains since liblzma's LZMA decoder has that limitation.
-
- NOTE: xz's .lzma support or liblzma's lzma_auto_decoder() are NOT
- affected by this change. They still consider uncommon .lzma headers
- as not being in the .lzma format. Changing this would give way too
- many false positives.
-
- * xz:
-
- - Interaction of preset and custom filter chain options was
- made less illogical. This affects only certain less typical
- uses cases so few people are expected to notice this change.
-
- Now when a custom filter chain option (e.g. --lzma2) is
- specified, all preset options (-0 ... -9, -e) earlier are on
- the command line are completely forgotten. Similarly, when
- a preset option is specified, all custom filter chain options
- earlier on the command line are completely forgotten.
-
- Example 1: "xz -9 --lzma2=preset=5 -e" is equivalent to "xz -e"
- which is equivalent to "xz -6e". Earlier -e didn't put xz back
- into preset mode and thus the example command was equivalent
- to "xz --lzma2=preset=5".
-
- Example 2: "xz -9e --lzma2=preset=5 -7" is equivalent to
- "xz -7". Earlier a custom filter chain option didn't make
- xz forget the -e option so the example was equivalent to
- "xz -7e".
-
- - Fixes and improvements to error handling.
-
- - Various fixes to the man page.
-
- * xzless: Fixed to work with "less" versions 448 and later.
-
- * xzgrep: Made -h an alias for --no-filename.
-
- * Include the previously missing debug/translation.bash which can
- be useful for translators.
-
- * Include a build script for Mac OS X. This has been in the Git
- repository since 2010 but due to a mistake in Makefile.am the
- script hasn't been included in a release tarball before.
-
-
-5.0.4 (2012-06-22)
-
- * liblzma:
-
- - Fix lzma_index_init(). It could crash if memory allocation
- failed.
-
- - Fix the possibility of an incorrect LZMA_BUF_ERROR when a BCJ
- filter is used and the application only provides exactly as
- much output space as is the uncompressed size of the file.
-
- - Fix a bug in doc/examples_old/xz_pipe_decompress.c. It didn't
- check if the last call to lzma_code() really returned
- LZMA_STREAM_END, which made the program think that truncated
- files are valid.
-
- - New example programs in doc/examples (old programs are now in
- doc/examples_old). These have more comments and more detailed
- error handling.
-
- * Fix "xz -lvv foo.xz". It could crash on some corrupted files.
-
- * Fix output of "xz --robot -lv" and "xz --robot -lvv" which
- incorrectly printed the filename also in the "foo (x/x)" format.
-
- * Fix exit status of "xzdiff foo.xz bar.xz".
-
- * Fix exit status of "xzgrep foo binary_file".
-
- * Fix portability to EBCDIC systems.
-
- * Fix a configure issue on AIX with the XL C compiler. See INSTALL
- for details.
-
- * Update French, German, Italian, and Polish translations.
-
-
-5.0.3 (2011-05-21)
-
- * liblzma fixes:
-
- - A memory leak was fixed.
-
- - lzma_stream_buffer_encode() no longer creates an empty .xz
- Block if encoding an empty buffer. Such an empty Block with
- LZMA2 data would trigger a bug in 5.0.1 and older (see the
- first bullet point in 5.0.2 notes). When releasing 5.0.2,
- I thought that no encoder creates this kind of files but
- I was wrong.
-
- - Validate function arguments better in a few functions. Most
- importantly, specifying an unsupported integrity check to
- lzma_stream_buffer_encode() no longer creates a corrupt .xz
- file. Probably no application tries to do that, so this
- shouldn't be a big problem in practice.
-
- - Document that lzma_block_buffer_encode(),
- lzma_easy_buffer_encode(), lzma_stream_encoder(), and
- lzma_stream_buffer_encode() may return LZMA_UNSUPPORTED_CHECK.
-
- - The return values of the _memusage() functions are now
- documented better.
-
- * Fix command name detection in xzgrep. xzegrep and xzfgrep now
- correctly use egrep and fgrep instead of grep.
-
- * French translation was added.
-
-
-5.0.2 (2011-04-01)
-
- * LZMA2 decompressor now correctly accepts LZMA2 streams with no
- uncompressed data. Previously it considered them corrupt. The
- bug can affect applications that use raw LZMA2 streams. It is
- very unlikely to affect .xz files because no compressor creates
- .xz files with empty LZMA2 streams. (Empty .xz files are a
- different thing than empty LZMA2 streams.)
-
- * "xz --suffix=.foo filename.foo" now refuses to compress the
- file due to it already having the suffix .foo. It was already
- documented on the man page, but the code lacked the test.
-
- * "xzgrep -l foo bar.xz" works now.
-
- * Polish translation was added.
-
-
-5.0.1 (2011-01-29)
-
- * xz --force now (de)compresses files that have setuid, setgid,
- or sticky bit set and files that have multiple hard links.
- The man page had it documented this way already, but the code
- had a bug.
-
- * gzip and bzip2 support in xzdiff was fixed.
-
- * Portability fixes
-
- * Minor fix to Czech translation
-
-
-5.0.0 (2010-10-23)
-
- Only the most important changes compared to 4.999.9beta are listed
- here. One change is especially important:
-
- * The memory usage limit is now disabled by default. Some scripts
- written before this change may have used --memory=max on xz command
- line or in XZ_OPT. THESE USES OF --memory=max SHOULD BE REMOVED
- NOW, because they interfere with user's ability to set the memory
- usage limit himself. If user-specified limit causes problems to
- your script, blame the user.
-
- Other significant changes:
-
- * Added support for XZ_DEFAULTS environment variable. This variable
- allows users to set default options for xz, e.g. default memory
- usage limit or default compression level. Scripts that use xz
- must never set or unset XZ_DEFAULTS. Scripts should use XZ_OPT
- instead if they need a way to pass options to xz via an
- environment variable.
-
- * The compression settings associated with the preset levels
- -0 ... -9 have been changed. --extreme was changed a little too.
- It is now less likely to make compression worse, but with some
- files the new --extreme may compress slightly worse than the old
- --extreme.
-
- * If a preset level (-0 ... -9) is specified after a custom filter
- chain options have been used (e.g. --lzma2), the custom filter
- chain will be forgotten. Earlier the preset options were
- completely ignored after custom filter chain options had been
- seen.
-
- * xz will create sparse files when decompressing if the uncompressed
- data contains long sequences of binary zeros. This is done even
- when writing to standard output that is connected to a regular
- file and certain additional conditions are met to make it safe.
-
- * Support for "xz --list" was added. Combine with --verbose or
- --verbose --verbose (-vv) for detailed output.
-
- * I had hoped that liblzma API would have been stable after
- 4.999.9beta, but there have been a couple of changes in the
- advanced features, which don't affect most applications:
-
- - Index handling code was revised. If you were using the old
- API, you will get a compiler error (so it's easy to notice).
-
- - A subtle but important change was made to the Block handling
- API. lzma_block.version has to be initialized even for
- lzma_block_header_decode(). Code that doesn't do it will work
- for now, but might break in the future, which makes this API
- change easy to miss.
-
- * The major soname has been bumped to 5.0.0. liblzma API and ABI
- are now stable, so the need to recompile programs linking against
- liblzma shouldn't arise soon.
-
Deleted: vendor/xz/dist/PACKAGERS
===================================================================
--- vendor/xz/dist/PACKAGERS 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/PACKAGERS 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,231 +0,0 @@
-
-Information to packagers of XZ Utils
-====================================
-
- 0. Preface
- 1. Package naming
- 2. Package description
- 3. License
- 4. configure options
- 5. Additional documentation
- 6. Extra files
- 7. Installing XZ Utils and LZMA Utils in parallel
- 8. Example
-
-
-0. Preface
-----------
-
- This document is meant for people who create and maintain XZ Utils
- packages for operating system distributions. The focus is on GNU/Linux
- systems, but most things apply to other systems too.
-
- While the standard "configure && make DESTDIR=$PKG install" should
- give a pretty good package, there are some details which packagers
- may want to tweak.
-
- Packagers should also read the INSTALL file.
-
-
-1. Package naming
------------------
-
- The preferred name for the XZ Utils package is "xz", because that's
- the name of the upstream tarball. Naturally you may have good reasons
- to use some other name; I won't get angry about it. ;-) It's just nice
- to be able to point people to the correct package name without asking
- what distro they have.
-
- If your distro policy is to split things into small pieces, here is
- one suggestion:
-
- xz xz, xzdec, scripts (xzdiff, xzgrep, etc.), docs
- xz-lzma lzma, unlzma, lzcat, lzgrep etc. symlinks and
- lzmadec binary for compatibility with LZMA Utils
- liblzma liblzma.so.*
- liblzma-devel liblzma.so, liblzma.a, API headers
-
-
-2. Package description
-----------------------
-
- Here is a suggestion which you may use as the package description.
- If you can use only one-line description, pick only the first line.
- Naturally, feel free to use some other description if you find it
- better, and maybe send it to me too.
-
- Library and command line tools for XZ and LZMA compressed files
-
- XZ Utils provide a general purpose data compression library
- and command line tools. The native file format is the .xz
- format, but also the legacy .lzma format is supported. The .xz
- format supports multiple compression algorithms, of which LZMA2
- is currently the primary algorithm. With typical files, XZ Utils
- create about 30 % smaller files than gzip.
-
- If you are splitting XZ Utils into multiple packages, here are some
- suggestions for package descriptions:
-
- xz:
-
- Command line tools for XZ and LZMA compressed files
-
- This package includes the xz compression tool and other command
- line tools from XZ Utils. xz has command line syntax similar to
- that of gzip. The native file format is the .xz format, but also
- the legacy .lzma format is supported. The .xz format supports
- multiple compression algorithms, of which LZMA2 is currently the
- primary algorithm. With typical files, XZ Utils create about 30 %
- smaller files than gzip.
-
- Note that this package doesn't include the files needed for
- LZMA Utils 4.32.x compatibility. Install also the xz-lzma
- package to make XZ Utils emulate LZMA Utils 4.32.x.
-
- xz-lzma:
-
- LZMA Utils emulation with XZ Utils
-
- This package includes executables and symlinks to make
- XZ Utils emulate lzma, unlzma, lzcat, and other command
- line tools found from the legacy LZMA Utils 4.32.x package.
-
- liblzma:
-
- Library for XZ and LZMA compressed files
-
- liblzma is a general purpose data compression library with
- an API similar to that of zlib. liblzma supports multiple
- algorithms, of which LZMA2 is currently the primary algorithm.
- The native file format is .xz, but also the legacy .lzma
- format and raw streams (no headers at all) are supported.
-
- This package includes the shared library.
-
- liblzma-devel:
-
- Library for XZ and LZMA compressed files
-
- This package includes the API headers, static library, and
- other development files related to liblzma.
-
-
-3. License
-----------
-
- If the package manager supports a license field, you probably should
- put GPLv2+ there (GNU GPL v2 or later). The interesting parts of
- XZ Utils are in the public domain, but some less important files
- ending up into the binary package are under GPLv2+. So it is simplest
- to just say GPLv2+ if you cannot specify "public domain and GPLv2+".
-
- If you split XZ Utils into multiple packages as described earlier
- in this file, liblzma and liblzma-dev packages will contain only
- public domain code (from XZ Utils at least; compiler or linker may
- add some third-party code, which may be copyrighted).
-
-
-4. configure options
---------------------
-
- Unless you are building a package for a distribution that is meant
- only for embedded systems, don't use the following configure options:
-
- --enable-debug
- --enable-encoders (*)
- --enable-decoders
- --enable-match-finders
- --enable-checks
- --enable-small (*)
- --disable-threads (*)
-
- (*) These are OK when building xzdec and lzmadec as described
- in INSTALL.
-
- xzdec and lzmadec don't provide any functionality that isn't already
- available in the xz tool. Shipping xzdec and lzmadec without size
- optimization and statically-linked liblzma isn't very useful. Doing
- that would give users the xzdec man page, which may make it easier
- for people to find out that such tools exists, but the executables
- wouldn't have any advantage over the full-featured xz.
-
-
-5. Additional documentation
----------------------------
-
- "make install" copies some additional documentation to $docdir
- (--docdir in configure). There is a copy of the GNU GPL v2, which
- can be replaced with a symlink if your distro ships with shared
- copies of the common license texts.
-
- liblzma API is currently only documented using Doxygen tags in the
- API headers. It hasn't been tested much how good results Doxygen
- is able to make from the tags (e.g. Doxyfile might need tweaking,
- the tagging may need to be improved etc.), so it might be simpler
- to just let people read docs directly from the .h files for now,
- and also save quite a bit in package size at the same time.
-
-
-6. Extra files
---------------
-
- The "extra" directory contains some small extra tools or other files.
- The exact set of extra files can vary between XZ Utils releases. The
- extra files have only limited use or they are too dangerous to be
- put directly to $bindir (7z2lzma.sh is a good example, since it can
- silently create corrupt output if certain conditions are not met).
-
- If you feel like it, you may copy the extra directory under the doc
- directory (e.g. /usr/share/doc/xz/extra). Maybe some people will find
- them useful. However, most people needing these tools probably are
- able to find them from the source package too.
-
- The "debug" directory contains some tools that are useful only when
- hacking on XZ Utils. Don't package these tools.
-
-
-7. Installing XZ Utils and LZMA Utils in parallel
--------------------------------------------------
-
- XZ Utils and LZMA Utils 4.32.x can be installed in parallel by
- omitting the compatibility symlinks (lzma, unlzma, lzcat, lzgrep etc.)
- from the XZ Utils package. It's probably a good idea to still package
- the symlinks into a separate package so that users may choose if they
- want to use XZ Utils or LZMA Utils for handling .lzma files.
-
-
-8. Example
-----------
-
- Here is an example for i686 GNU/Linux that
- - links xz and lzmainfo against shared liblzma;
- - links size-optimized xzdec and lzmadec against static liblzma
- while avoiding libpthread dependency;
- - includes only shared liblzma in the final package; and
- - copies also the "extra" directory to the package.
-
- PKG=/tmp/xz-pkg
- tar xf xz-x.y.z.tar.gz
- cd xz-x.y.z
- ./configure \
- --prefix=/usr \
- --disable-static \
- --disable-xzdec \
- --disable-lzmadec \
- CFLAGS='-march=i686 -mtune=generic -O2'
- make
- make DESTDIR=$PKG install-strip
- make clean
- ./configure \
- --prefix=/usr \
- --disable-shared \
- --disable-nls \
- --disable-encoders \
- --enable-small \
- --disable-threads \
- CFLAGS='-march=i686 -mtune=generic -Os'
- make -C src/liblzma
- make -C src/xzdec
- make -C src/xzdec DESTDIR=$PKG install-strip
- cp -a extra $PKG/usr/share/doc/xz
-
Modified: vendor/xz/dist/THANKS
===================================================================
--- vendor/xz/dist/THANKS 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/THANKS 2016-10-15 16:14:07 UTC (rev 9176)
@@ -21,6 +21,7 @@
- Milo Casagrande
- Marek Černocký
- Tomer Chachamu
+ - Gabi Davar
- Chris Donawa
- Andrew Dudman
- Markus Duft
@@ -29,19 +30,28 @@
- Gilles Espinasse
- Denis Excoffier
- Michael Felt
+ - Michael Fox
- Mike Frysinger
- Daniel Richard G.
+ - Bill Glessner
- Jason Gorski
- Juan Manuel Guerrero
+ - Diederik de Haas
- Joachim Henke
+ - Christian Hesse
+ - Vincenzo Innocente
- Peter Ivanov
- Jouk Jansen
+ - Jun I Jin
- Per Øyvind Karlsen
- Thomas Klausner
- Richard Koch
- Ville Koskinen
+ - Jan Kratochvil
+ - Christian Kujau
- Stephan Kulow
- Peter Lawler
+ - James M Leddy
- Hin-Tak Leung
- Andraž 'ruskie' Levstik
- Cary Lewis
@@ -50,6 +60,7 @@
- Bela Lubkin
- Gregory Margo
- Jim Meyering
+ - Arkadiusz Miskiewicz
- Conley Moorhous
- Rafał Mużyło
- Adrien Nader
@@ -58,16 +69,20 @@
- Andre Noll
- Peter O'Gorman
- Peter Pallinger
+ - Rui Paulo
- Igor Pavlov
- Diego Elio Pettenò
- Elbert Pol
- Mikko Pouru
+ - Trần Ngọc Quân
- Pavel Raiskup
+ - Ole André Vadla Ravnås
- Robert Readman
- Bernhard Reutner-Fischer
- Eric S. Raymond
- Cristian Rodríguez
- Christian von Roques
+ - Torsten Rupp
- Jukka Salmi
- Alexandre Sauvé
- Benno Schulenberg
@@ -74,13 +89,16 @@
- Andreas Schwab
- Dan Shechter
- Stuart Shelton
+ - Brad Smith
- Jonathan Stott
- Dan Stromberg
+ - Vincent Torri
- Paul Townsend
- Mohammed Adnène Trojette
- Alexey Tourbin
- Patrick J. Volkerding
- Martin Väth
+ - Adam Walling
- Christian Weisgerber
- Bert Wesarg
- Fredrik Wikstrom
Modified: vendor/xz/dist/TODO
===================================================================
--- vendor/xz/dist/TODO 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/TODO 2016-10-15 16:14:07 UTC (rev 9176)
@@ -28,14 +28,36 @@
time and calculated (de)compression speed won't make sense in the
progress indicator (xz --verbose).
+ If liblzma has created threads and fork() gets called, liblzma
+ code will break in the child process unless it calls exec() and
+ doesn't touch liblzma.
+
Missing features
----------------
+ Add support for storing metadata in .xz files. A preliminary
+ idea is to create a new Stream type for metadata. When both
+ metadata and data are wanted in the same .xz file, two or more
+ Streams would be concatenated.
+
+ The state stored in lzma_stream should be cloneable, which would
+ be mostly useful when using a preset dictionary in LZMA2, but
+ it may have other uses too. Compare to deflateCopy() in zlib.
+
+ Support LZMA_FINISH in raw decoder to indicate end of LZMA1 and
+ other streams that don't have an end of payload marker.
+
+ Adjust dictionary size when the input file size is known.
+ Maybe do this only if an option is given.
+
xz doesn't support copying extended attributes, access control
lists etc. from source to target file.
- Multithreaded compression
+ Multithreaded compression:
+ - Reduce memory usage of the current method.
+ - Implement threaded match finders.
+ - Implement pigz-style threading in LZMA2.
Multithreaded decompression
@@ -46,18 +68,44 @@
It will be a separate library that supports uncompressed, .gz,
.bz2, .lzma, and .xz files.
+ Support changing lzma_options_lzma.mode with lzma_filters_update().
+
+ Support LZMA_FULL_FLUSH for lzma_stream_decoder() to stop at
+ Block and Stream boundaries.
+
lzma_strerror() to convert lzma_ret to human readable form?
This is tricky, because the same error codes are used with
slightly different meanings, and this cannot be fixed anymore.
+ Make it possible to adjust LZMA2 options in the middle of a Block
+ so that the encoding speed vs. compression ratio can be optimized
+ when the compressed data is streamed over network.
+ Improved BCJ filters. The current filters are small but they aren't
+ so great when compressing binary packages that contain various file
+ types. Specifically, they make things worse if there are static
+ libraries or Linux kernel modules. The filtering could also be
+ more effective (without getting overly complex), for example,
+ streamable variant BCJ2 from 7-Zip could be implemented.
+
+ Filter that autodetects specific data types in the input stream
+ and applies appropriate filters for the corrects parts of the input.
+ Perhaps combine this with the BCJ filter improvement point above.
+
+ Long-range LZ77 method as a separate filter or as a new LZMA2
+ match finder.
+
+
Documentation
-------------
- Some tutorial is needed for liblzma. I have planned to write some
- extremely well commented example programs, which would work as
- a tutorial. I suppose the Doxygen tags are quite OK as a quick
- reference once one is familiar with the liblzma API.
+ More tutorial programs are needed for liblzma.
Document the LZMA1 and LZMA2 algorithms.
+
+Miscellaneous
+------------
+
+ Try to get the media type for .xz registered at IANA.
+
Deleted: vendor/xz/dist/src/common/common_w32res.rc
===================================================================
--- vendor/xz/dist/src/common/common_w32res.rc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/common/common_w32res.rc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,50 +0,0 @@
-/*
- * Author: Lasse Collin
- *
- * This file has been put into the public domain.
- * You can do whatever you want with this file.
- */
-
-#include <winresrc.h>
-#include "config.h"
-#define LZMA_H_INTERNAL
-#define LZMA_H_INTERNAL_RC
-#include "lzma/version.h"
-
-#ifndef MY_BUILD
-# define MY_BUILD 0
-#endif
-#define MY_VERSION LZMA_VERSION_MAJOR,LZMA_VERSION_MINOR,LZMA_VERSION_PATCH,MY_BUILD
-
-#define MY_FILENAME MY_NAME MY_SUFFIX
-#define MY_COMPANY "The Tukaani Project <http://tukaani.org/>"
-#define MY_PRODUCT PACKAGE_NAME " <" PACKAGE_URL ">"
-
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION MY_VERSION
- PRODUCTVERSION MY_VERSION
- FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
- FILEFLAGS 0
- FILEOS VOS_NT_WINDOWS32
- FILETYPE MY_TYPE
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "CompanyName", MY_COMPANY
- VALUE "FileDescription", MY_DESC
- VALUE "FileVersion", LZMA_VERSION_STRING
- VALUE "InternalName", MY_NAME
- VALUE "OriginalFilename", MY_FILENAME
- VALUE "ProductName", MY_PRODUCT
- VALUE "ProductVersion", LZMA_VERSION_STRING
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
Modified: vendor/xz/dist/src/common/mythread.h
===================================================================
--- vendor/xz/dist/src/common/mythread.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/common/mythread.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,7 +1,7 @@
///////////////////////////////////////////////////////////////////////////////
//
/// \file mythread.h
-/// \brief Wrappers for threads
+/// \brief Some threading related helper macros and functions
//
// Author: Lasse Collin
//
@@ -10,33 +10,512 @@
//
///////////////////////////////////////////////////////////////////////////////
+#ifndef MYTHREAD_H
+#define MYTHREAD_H
+
#include "sysdefs.h"
+// If any type of threading is enabled, #define MYTHREAD_ENABLED.
+#if defined(MYTHREAD_POSIX) || defined(MYTHREAD_WIN95) \
+ || defined(MYTHREAD_VISTA)
+# define MYTHREAD_ENABLED 1
+#endif
-#ifdef HAVE_PTHREAD
-# include <pthread.h>
-# define mythread_once(func) \
+#ifdef MYTHREAD_ENABLED
+
+////////////////////////////////////////
+// Shared between all threading types //
+////////////////////////////////////////
+
+// Locks a mutex for a duration of a block.
+//
+// Perform mythread_mutex_lock(&mutex) in the beginning of a block
+// and mythread_mutex_unlock(&mutex) at the end of the block. "break"
+// may be used to unlock the mutex and jump out of the block.
+// mythread_sync blocks may be nested.
+//
+// Example:
+//
+// mythread_sync(mutex) {
+// foo();
+// if (some_error)
+// break; // Skips bar()
+// bar();
+// }
+//
+// At least GCC optimizes the loops completely away so it doesn't slow
+// things down at all compared to plain mythread_mutex_lock(&mutex)
+// and mythread_mutex_unlock(&mutex) calls.
+//
+#define mythread_sync(mutex) mythread_sync_helper1(mutex, __LINE__)
+#define mythread_sync_helper1(mutex, line) mythread_sync_helper2(mutex, line)
+#define mythread_sync_helper2(mutex, line) \
+ for (unsigned int mythread_i_ ## line = 0; \
+ mythread_i_ ## line \
+ ? (mythread_mutex_unlock(&(mutex)), 0) \
+ : (mythread_mutex_lock(&(mutex)), 1); \
+ mythread_i_ ## line = 1) \
+ for (unsigned int mythread_j_ ## line = 0; \
+ !mythread_j_ ## line; \
+ mythread_j_ ## line = 1)
+#endif
+
+
+#if !defined(MYTHREAD_ENABLED)
+
+//////////////////
+// No threading //
+//////////////////
+
+// Calls the given function once. This isn't thread safe.
+#define mythread_once(func) \
+do { \
+ static bool once_ = false; \
+ if (!once_) { \
+ func(); \
+ once_ = true; \
+ } \
+} while (0)
+
+
+#if !(defined(_WIN32) && !defined(__CYGWIN__))
+// Use sigprocmask() to set the signal mask in single-threaded programs.
+#include <signal.h>
+
+static inline void
+mythread_sigmask(int how, const sigset_t *restrict set,
+ sigset_t *restrict oset)
+{
+ int ret = sigprocmask(how, set, oset);
+ assert(ret == 0);
+ (void)ret;
+}
+#endif
+
+
+#elif defined(MYTHREAD_POSIX)
+
+////////////////////
+// Using pthreads //
+////////////////////
+
+#include <sys/time.h>
+#include <pthread.h>
+#include <signal.h>
+#include <time.h>
+#include <errno.h>
+
+#define MYTHREAD_RET_TYPE void *
+#define MYTHREAD_RET_VALUE NULL
+
+typedef pthread_t mythread;
+typedef pthread_mutex_t mythread_mutex;
+
+typedef struct {
+ pthread_cond_t cond;
+#ifdef HAVE_CLOCK_GETTIME
+ // Clock ID (CLOCK_REALTIME or CLOCK_MONOTONIC) associated with
+ // the condition variable.
+ clockid_t clk_id;
+#endif
+} mythread_cond;
+
+typedef struct timespec mythread_condtime;
+
+
+// Calls the given function once in a thread-safe way.
+#define mythread_once(func) \
do { \
static pthread_once_t once_ = PTHREAD_ONCE_INIT; \
pthread_once(&once_, &func); \
} while (0)
-# define mythread_sigmask(how, set, oset) \
- pthread_sigmask(how, set, oset)
+// Use pthread_sigmask() to set the signal mask in multi-threaded programs.
+// Do nothing on OpenVMS since it lacks pthread_sigmask().
+static inline void
+mythread_sigmask(int how, const sigset_t *restrict set,
+ sigset_t *restrict oset)
+{
+#ifdef __VMS
+ (void)how;
+ (void)set;
+ (void)oset;
#else
+ int ret = pthread_sigmask(how, set, oset);
+ assert(ret == 0);
+ (void)ret;
+#endif
+}
-# define mythread_once(func) \
+
+// Creates a new thread with all signals blocked. Returns zero on success
+// and non-zero on error.
+static inline int
+mythread_create(mythread *thread, void *(*func)(void *arg), void *arg)
+{
+ sigset_t old;
+ sigset_t all;
+ sigfillset(&all);
+
+ mythread_sigmask(SIG_SETMASK, &all, &old);
+ const int ret = pthread_create(thread, NULL, func, arg);
+ mythread_sigmask(SIG_SETMASK, &old, NULL);
+
+ return ret;
+}
+
+// Joins a thread. Returns zero on success and non-zero on error.
+static inline int
+mythread_join(mythread thread)
+{
+ return pthread_join(thread, NULL);
+}
+
+
+// Initiatlizes a mutex. Returns zero on success and non-zero on error.
+static inline int
+mythread_mutex_init(mythread_mutex *mutex)
+{
+ return pthread_mutex_init(mutex, NULL);
+}
+
+static inline void
+mythread_mutex_destroy(mythread_mutex *mutex)
+{
+ int ret = pthread_mutex_destroy(mutex);
+ assert(ret == 0);
+ (void)ret;
+}
+
+static inline void
+mythread_mutex_lock(mythread_mutex *mutex)
+{
+ int ret = pthread_mutex_lock(mutex);
+ assert(ret == 0);
+ (void)ret;
+}
+
+static inline void
+mythread_mutex_unlock(mythread_mutex *mutex)
+{
+ int ret = pthread_mutex_unlock(mutex);
+ assert(ret == 0);
+ (void)ret;
+}
+
+
+// Initializes a condition variable.
+//
+// Using CLOCK_MONOTONIC instead of the default CLOCK_REALTIME makes the
+// timeout in pthread_cond_timedwait() work correctly also if system time
+// is suddenly changed. Unfortunately CLOCK_MONOTONIC isn't available
+// everywhere while the default CLOCK_REALTIME is, so the default is
+// used if CLOCK_MONOTONIC isn't available.
+//
+// If clock_gettime() isn't available at all, gettimeofday() will be used.
+static inline int
+mythread_cond_init(mythread_cond *mycond)
+{
+#ifdef HAVE_CLOCK_GETTIME
+ // NOTE: HAVE_DECL_CLOCK_MONOTONIC is always defined to 0 or 1.
+# if defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && HAVE_DECL_CLOCK_MONOTONIC
+ struct timespec ts;
+ pthread_condattr_t condattr;
+
+ // POSIX doesn't seem to *require* that pthread_condattr_setclock()
+ // will fail if given an unsupported clock ID. Test that
+ // CLOCK_MONOTONIC really is supported using clock_gettime().
+ if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0
+ && pthread_condattr_init(&condattr) == 0) {
+ int ret = pthread_condattr_setclock(
+ &condattr, CLOCK_MONOTONIC);
+ if (ret == 0)
+ ret = pthread_cond_init(&mycond->cond, &condattr);
+
+ pthread_condattr_destroy(&condattr);
+
+ if (ret == 0) {
+ mycond->clk_id = CLOCK_MONOTONIC;
+ return 0;
+ }
+ }
+
+ // If anything above fails, fall back to the default CLOCK_REALTIME.
+ // POSIX requires that all implementations of clock_gettime() must
+ // support at least CLOCK_REALTIME.
+# endif
+
+ mycond->clk_id = CLOCK_REALTIME;
+#endif
+
+ return pthread_cond_init(&mycond->cond, NULL);
+}
+
+static inline void
+mythread_cond_destroy(mythread_cond *cond)
+{
+ int ret = pthread_cond_destroy(&cond->cond);
+ assert(ret == 0);
+ (void)ret;
+}
+
+static inline void
+mythread_cond_signal(mythread_cond *cond)
+{
+ int ret = pthread_cond_signal(&cond->cond);
+ assert(ret == 0);
+ (void)ret;
+}
+
+static inline void
+mythread_cond_wait(mythread_cond *cond, mythread_mutex *mutex)
+{
+ int ret = pthread_cond_wait(&cond->cond, mutex);
+ assert(ret == 0);
+ (void)ret;
+}
+
+// Waits on a condition or until a timeout expires. If the timeout expires,
+// non-zero is returned, otherwise zero is returned.
+static inline int
+mythread_cond_timedwait(mythread_cond *cond, mythread_mutex *mutex,
+ const mythread_condtime *condtime)
+{
+ int ret = pthread_cond_timedwait(&cond->cond, mutex, condtime);
+ assert(ret == 0 || ret == ETIMEDOUT);
+ return ret;
+}
+
+// Sets condtime to the absolute time that is timeout_ms milliseconds
+// in the future. The type of the clock to use is taken from cond.
+static inline void
+mythread_condtime_set(mythread_condtime *condtime, const mythread_cond *cond,
+ uint32_t timeout_ms)
+{
+ condtime->tv_sec = timeout_ms / 1000;
+ condtime->tv_nsec = (timeout_ms % 1000) * 1000000;
+
+#ifdef HAVE_CLOCK_GETTIME
+ struct timespec now;
+ int ret = clock_gettime(cond->clk_id, &now);
+ assert(ret == 0);
+ (void)ret;
+
+ condtime->tv_sec += now.tv_sec;
+ condtime->tv_nsec += now.tv_nsec;
+#else
+ (void)cond;
+
+ struct timeval now;
+ gettimeofday(&now, NULL);
+
+ condtime->tv_sec += now.tv_sec;
+ condtime->tv_nsec += now.tv_usec * 1000L;
+#endif
+
+ // tv_nsec must stay in the range [0, 999_999_999].
+ if (condtime->tv_nsec >= 1000000000L) {
+ condtime->tv_nsec -= 1000000000L;
+ ++condtime->tv_sec;
+ }
+}
+
+
+#elif defined(MYTHREAD_WIN95) || defined(MYTHREAD_VISTA)
+
+/////////////////////
+// Windows threads //
+/////////////////////
+
+#define WIN32_LEAN_AND_MEAN
+#ifdef MYTHREAD_VISTA
+# undef _WIN32_WINNT
+# define _WIN32_WINNT 0x0600
+#endif
+#include <windows.h>
+#include <process.h>
+
+#define MYTHREAD_RET_TYPE unsigned int __stdcall
+#define MYTHREAD_RET_VALUE 0
+
+typedef HANDLE mythread;
+typedef CRITICAL_SECTION mythread_mutex;
+
+#ifdef MYTHREAD_WIN95
+typedef HANDLE mythread_cond;
+#else
+typedef CONDITION_VARIABLE mythread_cond;
+#endif
+
+typedef struct {
+ // Tick count (milliseconds) in the beginning of the timeout.
+ // NOTE: This is 32 bits so it wraps around after 49.7 days.
+ // Multi-day timeouts may not work as expected.
+ DWORD start;
+
+ // Length of the timeout in milliseconds. The timeout expires
+ // when the current tick count minus "start" is equal or greater
+ // than "timeout".
+ DWORD timeout;
+} mythread_condtime;
+
+
+// mythread_once() is only available with Vista threads.
+#ifdef MYTHREAD_VISTA
+#define mythread_once(func) \
do { \
- static bool once_ = false; \
- if (!once_) { \
+ static INIT_ONCE once_ = INIT_ONCE_STATIC_INIT; \
+ BOOL pending_; \
+ if (!InitOnceBeginInitialize(&once_, 0, &pending_, NULL)) \
+ abort(); \
+ if (pending_) \
func(); \
- once_ = true; \
- } \
+ if (!InitOnceComplete(&once, 0, NULL)) \
+ abort(); \
} while (0)
+#endif
-# define mythread_sigmask(how, set, oset) \
- sigprocmask(how, set, oset)
+// mythread_sigmask() isn't available on Windows. Even a dummy version would
+// make no sense because the other POSIX signal functions are missing anyway.
+
+
+static inline int
+mythread_create(mythread *thread,
+ unsigned int (__stdcall *func)(void *arg), void *arg)
+{
+ uintptr_t ret = _beginthreadex(NULL, 0, func, arg, 0, NULL);
+ if (ret == 0)
+ return -1;
+
+ *thread = (HANDLE)ret;
+ return 0;
+}
+
+static inline int
+mythread_join(mythread thread)
+{
+ int ret = 0;
+
+ if (WaitForSingleObject(thread, INFINITE) != WAIT_OBJECT_0)
+ ret = -1;
+
+ if (!CloseHandle(thread))
+ ret = -1;
+
+ return ret;
+}
+
+
+static inline int
+mythread_mutex_init(mythread_mutex *mutex)
+{
+ InitializeCriticalSection(mutex);
+ return 0;
+}
+
+static inline void
+mythread_mutex_destroy(mythread_mutex *mutex)
+{
+ DeleteCriticalSection(mutex);
+}
+
+static inline void
+mythread_mutex_lock(mythread_mutex *mutex)
+{
+ EnterCriticalSection(mutex);
+}
+
+static inline void
+mythread_mutex_unlock(mythread_mutex *mutex)
+{
+ LeaveCriticalSection(mutex);
+}
+
+
+static inline int
+mythread_cond_init(mythread_cond *cond)
+{
+#ifdef MYTHREAD_WIN95
+ *cond = CreateEvent(NULL, FALSE, FALSE, NULL);
+ return *cond == NULL ? -1 : 0;
+#else
+ InitializeConditionVariable(cond);
+ return 0;
#endif
+}
+
+static inline void
+mythread_cond_destroy(mythread_cond *cond)
+{
+#ifdef MYTHREAD_WIN95
+ CloseHandle(*cond);
+#else
+ (void)cond;
+#endif
+}
+
+static inline void
+mythread_cond_signal(mythread_cond *cond)
+{
+#ifdef MYTHREAD_WIN95
+ SetEvent(*cond);
+#else
+ WakeConditionVariable(cond);
+#endif
+}
+
+static inline void
+mythread_cond_wait(mythread_cond *cond, mythread_mutex *mutex)
+{
+#ifdef MYTHREAD_WIN95
+ LeaveCriticalSection(mutex);
+ WaitForSingleObject(*cond, INFINITE);
+ EnterCriticalSection(mutex);
+#else
+ BOOL ret = SleepConditionVariableCS(cond, mutex, INFINITE);
+ assert(ret);
+ (void)ret;
+#endif
+}
+
+static inline int
+mythread_cond_timedwait(mythread_cond *cond, mythread_mutex *mutex,
+ const mythread_condtime *condtime)
+{
+#ifdef MYTHREAD_WIN95
+ LeaveCriticalSection(mutex);
+#endif
+
+ DWORD elapsed = GetTickCount() - condtime->start;
+ DWORD timeout = elapsed >= condtime->timeout
+ ? 0 : condtime->timeout - elapsed;
+
+#ifdef MYTHREAD_WIN95
+ DWORD ret = WaitForSingleObject(*cond, timeout);
+ assert(ret == WAIT_OBJECT_0 || ret == WAIT_TIMEOUT);
+
+ EnterCriticalSection(mutex);
+
+ return ret == WAIT_TIMEOUT;
+#else
+ BOOL ret = SleepConditionVariableCS(cond, mutex, timeout);
+ assert(ret || GetLastError() == ERROR_TIMEOUT);
+ return !ret;
+#endif
+}
+
+static inline void
+mythread_condtime_set(mythread_condtime *condtime, const mythread_cond *cond,
+ uint32_t timeout)
+{
+ (void)cond;
+ condtime->start = GetTickCount();
+ condtime->timeout = timeout;
+}
+
+#endif
+
+#endif
Modified: vendor/xz/dist/src/common/sysdefs.h
===================================================================
--- vendor/xz/dist/src/common/sysdefs.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/common/sysdefs.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -165,6 +165,16 @@
# include <memory.h>
#endif
+// As of MSVC 2013, inline and restrict are supported with
+// non-standard keywords.
+#if defined(_WIN32) && defined(_MSC_VER)
+# ifndef inline
+# define inline __inline
+# endif
+# ifndef restrict
+# define restrict __restrict
+# endif
+#endif
////////////
// Macros //
Modified: vendor/xz/dist/src/common/tuklib_cpucores.c
===================================================================
--- vendor/xz/dist/src/common/tuklib_cpucores.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/common/tuklib_cpucores.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -12,7 +12,18 @@
#include "tuklib_cpucores.h"
-#if defined(TUKLIB_CPUCORES_SYSCTL)
+#if defined(_WIN32) || defined(__CYGWIN__)
+# ifndef _WIN32_WINNT
+# define _WIN32_WINNT 0x0500
+# endif
+# include <windows.h>
+
+// FreeBSD
+#elif defined(TUKLIB_CPUCORES_CPUSET)
+# include <sys/param.h>
+# include <sys/cpuset.h>
+
+#elif defined(TUKLIB_CPUCORES_SYSCTL)
# ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
# endif
@@ -33,7 +44,25 @@
{
uint32_t ret = 0;
-#if defined(TUKLIB_CPUCORES_SYSCTL)
+#if defined(_WIN32) || defined(__CYGWIN__)
+ SYSTEM_INFO sysinfo;
+ GetSystemInfo(&sysinfo);
+ ret = sysinfo.dwNumberOfProcessors;
+
+#elif defined(TUKLIB_CPUCORES_CPUSET)
+ cpuset_t set;
+ if (cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, -1,
+ sizeof(set), &set) == 0) {
+# ifdef CPU_COUNT
+ ret = CPU_COUNT(&set);
+# else
+ for (unsigned i = 0; i < CPU_SETSIZE; ++i)
+ if (CPU_ISSET(i, &set))
+ ++ret;
+# endif
+ }
+
+#elif defined(TUKLIB_CPUCORES_SYSCTL)
int name[2] = { CTL_HW, HW_NCPU };
int cpus;
size_t cpus_size = sizeof(cpus);
Modified: vendor/xz/dist/src/common/tuklib_integer.h
===================================================================
--- vendor/xz/dist/src/common/tuklib_integer.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/common/tuklib_integer.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -321,8 +321,8 @@
static inline void
unaligned_write16be(uint8_t *buf, uint16_t num)
{
- buf[0] = num >> 8;
- buf[1] = num;
+ buf[0] = (uint8_t)(num >> 8);
+ buf[1] = (uint8_t)num;
return;
}
@@ -330,8 +330,8 @@
static inline void
unaligned_write16le(uint8_t *buf, uint16_t num)
{
- buf[0] = num;
- buf[1] = num >> 8;
+ buf[0] = (uint8_t)num;
+ buf[1] = (uint8_t)(num >> 8);
return;
}
@@ -339,10 +339,10 @@
static inline void
unaligned_write32be(uint8_t *buf, uint32_t num)
{
- buf[0] = num >> 24;
- buf[1] = num >> 16;
- buf[2] = num >> 8;
- buf[3] = num;
+ buf[0] = (uint8_t)(num >> 24);
+ buf[1] = (uint8_t)(num >> 16);
+ buf[2] = (uint8_t)(num >> 8);
+ buf[3] = (uint8_t)num;
return;
}
@@ -350,10 +350,10 @@
static inline void
unaligned_write32le(uint8_t *buf, uint32_t num)
{
- buf[0] = num;
- buf[1] = num >> 8;
- buf[2] = num >> 16;
- buf[3] = num >> 24;
+ buf[0] = (uint8_t)num;
+ buf[1] = (uint8_t)(num >> 8);
+ buf[2] = (uint8_t)(num >> 16);
+ buf[3] = (uint8_t)(num >> 24);
return;
}
Modified: vendor/xz/dist/src/common/tuklib_physmem.c
===================================================================
--- vendor/xz/dist/src/common/tuklib_physmem.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/common/tuklib_physmem.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -37,7 +37,10 @@
# define __USE_INLINE__
# include <proto/exec.h>
-// AIX
+#elif defined(__QNX__)
+# include <sys/syspage.h>
+# include <string.h>
+
#elif defined(TUKLIB_PHYSMEM_AIX)
# include <sys/systemcfg.h>
@@ -126,6 +129,15 @@
#elif defined(AMIGA) || defined(__AROS__)
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)
ret = _system_configuration.physmem;
Modified: vendor/xz/dist/src/liblzma/api/lzma/base.h
===================================================================
--- vendor/xz/dist/src/liblzma/api/lzma/base.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/api/lzma/base.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -240,12 +240,12 @@
/**
* \brief The `action' argument for lzma_code()
*
- * After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, or LZMA_FINISH,
- * the same `action' must is used until lzma_code() returns LZMA_STREAM_END.
- * Also, the amount of input (that is, strm->avail_in) must not be modified
- * by the application until lzma_code() returns LZMA_STREAM_END. Changing the
- * `action' or modifying the amount of input will make lzma_code() return
- * LZMA_PROG_ERROR.
+ * After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER,
+ * or LZMA_FINISH, the same `action' must is used until lzma_code() returns
+ * LZMA_STREAM_END. Also, the amount of input (that is, strm->avail_in) must
+ * not be modified by the application until lzma_code() returns
+ * LZMA_STREAM_END. Changing the `action' or modifying the amount of input
+ * will make lzma_code() return LZMA_PROG_ERROR.
*/
typedef enum {
LZMA_RUN = 0,
@@ -293,7 +293,7 @@
*
* All the input data going to the current Block must have
* been given to the encoder (the last bytes can still be
- * pending in* next_in). Call lzma_code() with LZMA_FULL_FLUSH
+ * pending in *next_in). Call lzma_code() with LZMA_FULL_FLUSH
* until it returns LZMA_STREAM_END. Then continue normally
* with LZMA_RUN or finish the Stream with LZMA_FINISH.
*
@@ -302,6 +302,29 @@
* no unfinished Block, no empty Block is created.
*/
+ LZMA_FULL_BARRIER = 4,
+ /**<
+ * \brief Finish encoding of the current Block
+ *
+ * This is like LZMA_FULL_FLUSH except that this doesn't
+ * necessarily wait until all the input has been made
+ * available via the output buffer. That is, lzma_code()
+ * might return LZMA_STREAM_END as soon as all the input
+ * has been consumed (avail_in == 0).
+ *
+ * LZMA_FULL_BARRIER is useful with a threaded encoder if
+ * one wants to split the .xz Stream into Blocks at specific
+ * offsets but doesn't care if the output isn't flushed
+ * immediately. Using LZMA_FULL_BARRIER allows keeping
+ * the threads busy while LZMA_FULL_FLUSH would make
+ * lzma_code() wait until all the threads have finished
+ * until more data could be passed to the encoder.
+ *
+ * With a lzma_stream initialized with the single-threaded
+ * lzma_stream_encoder() or lzma_easy_encoder(),
+ * LZMA_FULL_BARRIER is an alias for LZMA_FULL_FLUSH.
+ */
+
LZMA_FINISH = 3
/**<
* \brief Finish the coding operation
@@ -332,11 +355,19 @@
* malloc() and free(). C++ users should note that the custom memory
* handling functions must not throw exceptions.
*
- * liblzma doesn't make an internal copy of lzma_allocator. Thus, it is
- * OK to change these function pointers in the middle of the coding
- * process, but obviously it must be done carefully to make sure that the
- * replacement `free' can deallocate memory allocated by the earlier
- * `alloc' function(s).
+ * Single-threaded mode only: liblzma doesn't make an internal copy of
+ * lzma_allocator. Thus, it is OK to change these function pointers in
+ * the middle of the coding process, but obviously it must be done
+ * carefully to make sure that the replacement `free' can deallocate
+ * memory allocated by the earlier `alloc' function(s).
+ *
+ * Multithreaded mode: liblzma might internally store pointers to the
+ * lzma_allocator given via the lzma_stream structure. The application
+ * must not change the allocator pointer in lzma_stream or the contents
+ * of the pointed lzma_allocator structure until lzma_end() has been used
+ * to free the memory associated with that lzma_stream. The allocation
+ * functions might be called simultaneously from multiple threads, and
+ * thus they must be thread safe.
*/
typedef struct {
/**
@@ -448,7 +479,8 @@
*
* Application may modify the values of total_in and total_out as it wants.
* They are updated by liblzma to match the amount of data read and
- * written, but aren't used for anything else.
+ * written but aren't used for anything else except as a possible return
+ * values from lzma_get_progress().
*/
typedef struct {
const uint8_t *next_in; /**< Pointer to the next input byte. */
@@ -464,8 +496,10 @@
*
* In most cases this is NULL which makes liblzma use
* the standard malloc() and free().
+ *
+ * \note In 5.0.x this is not a const pointer.
*/
- lzma_allocator *allocator;
+ const lzma_allocator *allocator;
/** Internal state is not visible to applications. */
lzma_internal *internal;
@@ -547,6 +581,25 @@
/**
+ * \brief Get progress information
+ *
+ * In single-threaded mode, applications can get progress information from
+ * strm->total_in and strm->total_out. In multi-threaded mode this is less
+ * useful because a significant amount of both input and output data gets
+ * buffered internally by liblzma. This makes total_in and total_out give
+ * misleading information and also makes the progress indicator updates
+ * non-smooth.
+ *
+ * This function gives realistic progress information also in multi-threaded
+ * mode by taking into account the progress made by each thread. In
+ * single-threaded mode *progress_in and *progress_out are set to
+ * strm->total_in and strm->total_out, respectively.
+ */
+extern LZMA_API(void) lzma_get_progress(lzma_stream *strm,
+ uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow;
+
+
+/**
* \brief Get the memory usage of decoder filter chain
*
* This function is currently supported only when *strm has been initialized
Modified: vendor/xz/dist/src/liblzma/api/lzma/block.h
===================================================================
--- vendor/xz/dist/src/liblzma/api/lzma/block.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/api/lzma/block.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -31,12 +31,17 @@
/**
* \brief Block format version
*
- * To prevent API and ABI breakages if new features are needed in
- * the Block field, a version number is used to indicate which
- * fields in this structure are in use. For now, version must always
- * be zero. With non-zero version, most Block related functions will
- * return LZMA_OPTIONS_ERROR.
+ * To prevent API and ABI breakages when new features are needed,
+ * a version number is used to indicate which fields in this
+ * structure are in use:
+ * - liblzma >= 5.0.0: version = 0 is supported.
+ * - liblzma >= 5.1.4beta: Support for version = 1 was added,
+ * which adds the ignore_check field.
*
+ * If version is greater than one, most Block related functions
+ * will return LZMA_OPTIONS_ERROR (lzma_block_header_decode() works
+ * with any version value).
+ *
* Read by:
* - All functions that take pointer to lzma_block as argument,
* including lzma_block_header_decode().
@@ -233,7 +238,28 @@
lzma_reserved_enum reserved_enum2;
lzma_reserved_enum reserved_enum3;
lzma_reserved_enum reserved_enum4;
- lzma_bool reserved_bool1;
+
+ /**
+ * \brief A flag to Block decoder to not verify the Check field
+ *
+ * This field is supported by liblzma >= 5.1.4beta if .version >= 1.
+ *
+ * If this is set to true, the integrity check won't be calculated
+ * and verified. Unless you know what you are doing, you should
+ * leave this to false. (A reason to set this to true is when the
+ * file integrity is verified externally anyway and you want to
+ * speed up the decompression, which matters mostly when using
+ * SHA-256 as the integrity check.)
+ *
+ * If .version >= 1, read by:
+ * - lzma_block_decoder()
+ * - lzma_block_buffer_decode()
+ *
+ * Written by (.version is ignored):
+ * - lzma_block_header_decode() always sets this to false
+ */
+ lzma_bool ignore_check;
+
lzma_bool reserved_bool2;
lzma_bool reserved_bool3;
lzma_bool reserved_bool4;
@@ -310,10 +336,14 @@
/**
* \brief Decode Block Header
*
- * block->version should be set to the highest value supported by the
- * application; currently the only possible version is zero. This function
- * will set version to the lowest value that still supports all the features
- * required by the Block Header.
+ * block->version should (usually) be set to the highest value supported
+ * by the application. If the application sets block->version to a value
+ * higher than supported by the current liblzma version, this function will
+ * downgrade block->version to the highest value supported by it. Thus one
+ * should check the value of block->version after calling this function if
+ * block->version was set to a non-zero value and the application doesn't
+ * otherwise know that the liblzma version being used is new enough to
+ * support the specified block->version.
*
* The size of the Block Header must have already been decoded with
* lzma_block_header_size_decode() macro and stored to block->header_size.
@@ -344,7 +374,7 @@
* block->header_size is invalid or block->filters is NULL.
*/
extern LZMA_API(lzma_ret) lzma_block_header_decode(lzma_block *block,
- lzma_allocator *allocator, const uint8_t *in)
+ const lzma_allocator *allocator, const uint8_t *in)
lzma_nothrow lzma_attr_warn_unused_result;
@@ -493,7 +523,7 @@
* - LZMA_PROG_ERROR
*/
extern LZMA_API(lzma_ret) lzma_block_buffer_encode(
- lzma_block *block, lzma_allocator *allocator,
+ lzma_block *block, const lzma_allocator *allocator,
const uint8_t *in, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
lzma_nothrow lzma_attr_warn_unused_result;
@@ -500,6 +530,24 @@
/**
+ * \brief Single-call uncompressed .xz Block encoder
+ *
+ * This is like lzma_block_buffer_encode() except this doesn't try to
+ * compress the data and instead encodes the data using LZMA2 uncompressed
+ * chunks. The required output buffer size can be determined with
+ * lzma_block_buffer_bound().
+ *
+ * Since the data won't be compressed, this function ignores block->filters.
+ * This function doesn't take lzma_allocator because this function doesn't
+ * allocate any memory from the heap.
+ */
+extern LZMA_API(lzma_ret) lzma_block_uncomp_encode(lzma_block *block,
+ const uint8_t *in, size_t in_size,
+ uint8_t *out, size_t *out_pos, size_t out_size)
+ lzma_nothrow lzma_attr_warn_unused_result;
+
+
+/**
* \brief Single-call .xz Block decoder
*
* This is single-call equivalent of lzma_block_decoder(), and requires that
@@ -527,7 +575,7 @@
* - LZMA_PROG_ERROR
*/
extern LZMA_API(lzma_ret) lzma_block_buffer_decode(
- lzma_block *block, lzma_allocator *allocator,
+ lzma_block *block, const lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
lzma_nothrow;
Modified: vendor/xz/dist/src/liblzma/api/lzma/container.h
===================================================================
--- vendor/xz/dist/src/liblzma/api/lzma/container.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/api/lzma/container.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -61,6 +61,131 @@
/**
+ * \brief Multithreading options
+ */
+typedef struct {
+ /**
+ * \brief Flags
+ *
+ * Set this to zero if no flags are wanted.
+ *
+ * No flags are currently supported.
+ */
+ uint32_t flags;
+
+ /**
+ * \brief Number of worker threads to use
+ */
+ uint32_t threads;
+
+ /**
+ * \brief Maximum uncompressed size of a Block
+ *
+ * The encoder will start a new .xz Block every block_size bytes.
+ * Using LZMA_FULL_FLUSH or LZMA_FULL_BARRIER with lzma_code()
+ * the caller may tell liblzma to start a new Block earlier.
+ *
+ * With LZMA2, a recommended block size is 2-4 times the LZMA2
+ * dictionary size. With very small dictionaries, it is recommended
+ * to use at least 1 MiB block size for good compression ratio, even
+ * if this is more than four times the dictionary size. Note that
+ * these are only recommendations for typical use cases; feel free
+ * to use other values. Just keep in mind that using a block size
+ * less than the LZMA2 dictionary size is waste of RAM.
+ *
+ * Set this to 0 to let liblzma choose the block size depending
+ * on the compression options. For LZMA2 it will be 3*dict_size
+ * or 1 MiB, whichever is more.
+ *
+ * For each thread, about 3 * block_size bytes of memory will be
+ * allocated. This may change in later liblzma versions. If so,
+ * the memory usage will probably be reduced, not increased.
+ */
+ uint64_t block_size;
+
+ /**
+ * \brief Timeout to allow lzma_code() to return early
+ *
+ * Multithreading can make liblzma to consume input and produce
+ * output in a very bursty way: it may first read a lot of input
+ * to fill internal buffers, then no input or output occurs for
+ * a while.
+ *
+ * In single-threaded mode, lzma_code() won't return until it has
+ * either consumed all the input or filled the output buffer. If
+ * this is done in multithreaded mode, it may cause a call
+ * lzma_code() to take even tens of seconds, which isn't acceptable
+ * in all applications.
+ *
+ * To avoid very long blocking times in lzma_code(), a timeout
+ * (in milliseconds) may be set here. If lzma_code() would block
+ * longer than this number of milliseconds, it will return with
+ * LZMA_OK. Reasonable values are 100 ms or more. The xz command
+ * line tool uses 300 ms.
+ *
+ * If long blocking times are fine for you, set timeout to a special
+ * value of 0, which will disable the timeout mechanism and will make
+ * lzma_code() block until all the input is consumed or the output
+ * buffer has been filled.
+ *
+ * \note Even with a timeout, lzma_code() might sometimes take
+ * somewhat long time to return. No timing guarantees
+ * are made.
+ */
+ uint32_t timeout;
+
+ /**
+ * \brief Compression preset (level and possible flags)
+ *
+ * The preset is set just like with lzma_easy_encoder().
+ * The preset is ignored if filters below is non-NULL.
+ */
+ uint32_t preset;
+
+ /**
+ * \brief Filter chain (alternative to a preset)
+ *
+ * If this is NULL, the preset above is used. Otherwise the preset
+ * is ignored and the filter chain specified here is used.
+ */
+ const lzma_filter *filters;
+
+ /**
+ * \brief Integrity check type
+ *
+ * See check.h for available checks. The xz command line tool
+ * defaults to LZMA_CHECK_CRC64, which is a good choice if you
+ * are unsure.
+ */
+ lzma_check check;
+
+ /*
+ * Reserved space to allow possible future extensions without
+ * breaking the ABI. You should not touch these, because the names
+ * of these variables may change. These are and will never be used
+ * with the currently supported options, so it is safe to leave these
+ * uninitialized.
+ */
+ lzma_reserved_enum reserved_enum1;
+ lzma_reserved_enum reserved_enum2;
+ lzma_reserved_enum reserved_enum3;
+ uint32_t reserved_int1;
+ uint32_t reserved_int2;
+ uint32_t reserved_int3;
+ uint32_t reserved_int4;
+ uint64_t reserved_int5;
+ uint64_t reserved_int6;
+ uint64_t reserved_int7;
+ uint64_t reserved_int8;
+ void *reserved_ptr1;
+ void *reserved_ptr2;
+ void *reserved_ptr3;
+ void *reserved_ptr4;
+
+} lzma_mt;
+
+
+/**
* \brief Calculate approximate memory usage of easy encoder
*
* This function is a wrapper for lzma_raw_encoder_memusage().
@@ -165,7 +290,8 @@
*/
extern LZMA_API(lzma_ret) lzma_easy_buffer_encode(
uint32_t preset, lzma_check check,
- lzma_allocator *allocator, const uint8_t *in, size_t in_size,
+ const lzma_allocator *allocator,
+ const uint8_t *in, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow;
@@ -191,6 +317,49 @@
/**
+ * \brief Calculate approximate memory usage of multithreaded .xz encoder
+ *
+ * Since doing the encoding in threaded mode doesn't affect the memory
+ * requirements of single-threaded decompressor, you can use
+ * lzma_easy_decoder_memusage(options->preset) or
+ * lzma_raw_decoder_memusage(options->filters) to calculate
+ * the decompressor memory requirements.
+ *
+ * \param options Compression options
+ *
+ * \return Number of bytes of memory required for encoding with the
+ * given options. If an error occurs, for example due to
+ * unsupported preset or filter chain, UINT64_MAX is returned.
+ */
+extern LZMA_API(uint64_t) lzma_stream_encoder_mt_memusage(
+ const lzma_mt *options) lzma_nothrow lzma_attr_pure;
+
+
+/**
+ * \brief Initialize multithreaded .xz Stream encoder
+ *
+ * This provides the functionality of lzma_easy_encoder() and
+ * lzma_stream_encoder() as a single function for multithreaded use.
+ *
+ * The supported actions for lzma_code() are LZMA_RUN, LZMA_FULL_FLUSH,
+ * LZMA_FULL_BARRIER, and LZMA_FINISH. Support for LZMA_SYNC_FLUSH might be
+ * added in the future.
+ *
+ * \param strm Pointer to properly prepared lzma_stream
+ * \param options Pointer to multithreaded compression options
+ *
+ * \return - LZMA_OK
+ * - LZMA_MEM_ERROR
+ * - LZMA_UNSUPPORTED_CHECK
+ * - LZMA_OPTIONS_ERROR
+ * - LZMA_PROG_ERROR
+ */
+extern LZMA_API(lzma_ret) lzma_stream_encoder_mt(
+ lzma_stream *strm, const lzma_mt *options)
+ lzma_nothrow lzma_attr_warn_unused_result;
+
+
+/**
* \brief Initialize .lzma encoder (legacy file format)
*
* The .lzma format is sometimes called the LZMA_Alone format, which is the
@@ -269,7 +438,8 @@
*/
extern LZMA_API(lzma_ret) lzma_stream_buffer_encode(
lzma_filter *filters, lzma_check check,
- lzma_allocator *allocator, const uint8_t *in, size_t in_size,
+ const lzma_allocator *allocator,
+ const uint8_t *in, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
lzma_nothrow lzma_attr_warn_unused_result;
@@ -305,6 +475,30 @@
/**
+ * This flag makes lzma_code() not calculate and verify the integrity check
+ * of the compressed data in .xz files. This means that invalid integrity
+ * check values won't be detected and LZMA_DATA_ERROR won't be returned in
+ * such cases.
+ *
+ * This flag only affects the checks of the compressed data itself; the CRC32
+ * values in the .xz headers will still be verified normally.
+ *
+ * Don't use this flag unless you know what you are doing. Possible reasons
+ * to use this flag:
+ *
+ * - Trying to recover data from a corrupt .xz file.
+ *
+ * - Speeding up decompression, which matters mostly with SHA-256
+ * or with files that have compressed extremely well. It's recommended
+ * to not use this flag for this purpose unless the file integrity is
+ * verified externally in some other way.
+ *
+ * Support for this flag was added in liblzma 5.1.4beta.
+ */
+#define LZMA_IGNORE_CHECK UINT32_C(0x10)
+
+
+/**
* This flag enables decoding of concatenated files with file formats that
* allow concatenating compressed files as is. From the formats currently
* supported by liblzma, only the .xz format allows concatenated files.
@@ -418,7 +612,8 @@
* - LZMA_PROG_ERROR
*/
extern LZMA_API(lzma_ret) lzma_stream_buffer_decode(
- uint64_t *memlimit, uint32_t flags, lzma_allocator *allocator,
+ uint64_t *memlimit, uint32_t flags,
+ const lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
lzma_nothrow lzma_attr_warn_unused_result;
Modified: vendor/xz/dist/src/liblzma/api/lzma/filter.h
===================================================================
--- vendor/xz/dist/src/liblzma/api/lzma/filter.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/api/lzma/filter.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -116,8 +116,9 @@
* is not NULL.
* - LZMA_PROG_ERROR: src or dest is NULL.
*/
-extern LZMA_API(lzma_ret) lzma_filters_copy(const lzma_filter *src,
- lzma_filter *dest, lzma_allocator *allocator) lzma_nothrow;
+extern LZMA_API(lzma_ret) lzma_filters_copy(
+ const lzma_filter *src, lzma_filter *dest,
+ const lzma_allocator *allocator) lzma_nothrow;
/**
@@ -256,7 +257,7 @@
* won't necessarily meet that bound.)
*/
extern LZMA_API(lzma_ret) lzma_raw_buffer_encode(
- const lzma_filter *filters, lzma_allocator *allocator,
+ const lzma_filter *filters, const lzma_allocator *allocator,
const uint8_t *in, size_t in_size, uint8_t *out,
size_t *out_pos, size_t out_size) lzma_nothrow;
@@ -280,7 +281,7 @@
* which no data is written to is out[out_size].
*/
extern LZMA_API(lzma_ret) lzma_raw_buffer_decode(
- const lzma_filter *filters, lzma_allocator *allocator,
+ const lzma_filter *filters, const lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow;
@@ -356,7 +357,7 @@
* - LZMA_MEM_ERROR
*/
extern LZMA_API(lzma_ret) lzma_properties_decode(
- lzma_filter *filter, lzma_allocator *allocator,
+ lzma_filter *filter, const lzma_allocator *allocator,
const uint8_t *props, size_t props_size) lzma_nothrow;
@@ -419,6 +420,6 @@
* - LZMA_PROG_ERROR
*/
extern LZMA_API(lzma_ret) lzma_filter_flags_decode(
- lzma_filter *filter, lzma_allocator *allocator,
+ lzma_filter *filter, const lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size)
lzma_nothrow lzma_attr_warn_unused_result;
Modified: vendor/xz/dist/src/liblzma/api/lzma/hardware.h
===================================================================
--- vendor/xz/dist/src/liblzma/api/lzma/hardware.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/api/lzma/hardware.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -48,3 +48,17 @@
* of RAM on the specific operating system.
*/
extern LZMA_API(uint64_t) lzma_physmem(void) lzma_nothrow;
+
+
+/**
+ * \brief Get the number of processor cores or threads
+ *
+ * This function may be useful when determining how many threads to use.
+ * If the hardware supports more than one thread per CPU core, the number
+ * of hardware threads is returned if that information is available.
+ *
+ * \brief On success, the number of available CPU threads or cores is
+ * returned. If this information isn't available or an error
+ * occurs, zero is returned.
+ */
+extern LZMA_API(uint32_t) lzma_cputhreads(void) lzma_nothrow;
Modified: vendor/xz/dist/src/liblzma/api/lzma/index.h
===================================================================
--- vendor/xz/dist/src/liblzma/api/lzma/index.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/api/lzma/index.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -303,7 +303,7 @@
* \return On success, a pointer to an empty initialized lzma_index is
* returned. If allocation fails, NULL is returned.
*/
-extern LZMA_API(lzma_index *) lzma_index_init(lzma_allocator *allocator)
+extern LZMA_API(lzma_index *) lzma_index_init(const lzma_allocator *allocator)
lzma_nothrow;
@@ -312,8 +312,8 @@
*
* If i is NULL, this does nothing.
*/
-extern LZMA_API(void) lzma_index_end(lzma_index *i, lzma_allocator *allocator)
- lzma_nothrow;
+extern LZMA_API(void) lzma_index_end(
+ lzma_index *i, const lzma_allocator *allocator) lzma_nothrow;
/**
@@ -341,7 +341,7 @@
* - LZMA_PROG_ERROR
*/
extern LZMA_API(lzma_ret) lzma_index_append(
- lzma_index *i, lzma_allocator *allocator,
+ lzma_index *i, const lzma_allocator *allocator,
lzma_vli unpadded_size, lzma_vli uncompressed_size)
lzma_nothrow lzma_attr_warn_unused_result;
@@ -564,8 +564,8 @@
* - LZMA_MEM_ERROR
* - LZMA_PROG_ERROR
*/
-extern LZMA_API(lzma_ret) lzma_index_cat(
- lzma_index *dest, lzma_index *src, lzma_allocator *allocator)
+extern LZMA_API(lzma_ret) lzma_index_cat(lzma_index *dest, lzma_index *src,
+ const lzma_allocator *allocator)
lzma_nothrow lzma_attr_warn_unused_result;
@@ -575,7 +575,7 @@
* \return A copy of the lzma_index, or NULL if memory allocation failed.
*/
extern LZMA_API(lzma_index *) lzma_index_dup(
- const lzma_index *i, lzma_allocator *allocator)
+ const lzma_index *i, const lzma_allocator *allocator)
lzma_nothrow lzma_attr_warn_unused_result;
@@ -677,6 +677,6 @@
* - LZMA_PROG_ERROR
*/
extern LZMA_API(lzma_ret) lzma_index_buffer_decode(lzma_index **i,
- uint64_t *memlimit, lzma_allocator *allocator,
+ uint64_t *memlimit, const lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size)
lzma_nothrow;
Modified: vendor/xz/dist/src/liblzma/api/lzma/index_hash.h
===================================================================
--- vendor/xz/dist/src/liblzma/api/lzma/index_hash.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/api/lzma/index_hash.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -37,7 +37,7 @@
* pointer than the index_hash that was given as an argument.
*/
extern LZMA_API(lzma_index_hash *) lzma_index_hash_init(
- lzma_index_hash *index_hash, lzma_allocator *allocator)
+ lzma_index_hash *index_hash, const lzma_allocator *allocator)
lzma_nothrow lzma_attr_warn_unused_result;
@@ -45,7 +45,7 @@
* \brief Deallocate lzma_index_hash structure
*/
extern LZMA_API(void) lzma_index_hash_end(
- lzma_index_hash *index_hash, lzma_allocator *allocator)
+ lzma_index_hash *index_hash, const lzma_allocator *allocator)
lzma_nothrow;
Deleted: vendor/xz/dist/src/liblzma/api/lzma/lzma.h
===================================================================
--- vendor/xz/dist/src/liblzma/api/lzma/lzma.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/api/lzma/lzma.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,420 +0,0 @@
-/**
- * \file lzma/lzma.h
- * \brief LZMA1 and LZMA2 filters
- */
-
-/*
- * Author: Lasse Collin
- *
- * This file has been put into the public domain.
- * You can do whatever you want with this file.
- *
- * See ../lzma.h for information about liblzma as a whole.
- */
-
-#ifndef LZMA_H_INTERNAL
-# error Never include this file directly. Use <lzma.h> instead.
-#endif
-
-
-/**
- * \brief LZMA1 Filter ID
- *
- * LZMA1 is the very same thing as what was called just LZMA in LZMA Utils,
- * 7-Zip, and LZMA SDK. It's called LZMA1 here to prevent developers from
- * accidentally using LZMA when they actually want LZMA2.
- *
- * LZMA1 shouldn't be used for new applications unless you _really_ know
- * what you are doing. LZMA2 is almost always a better choice.
- */
-#define LZMA_FILTER_LZMA1 LZMA_VLI_C(0x4000000000000001)
-
-/**
- * \brief LZMA2 Filter ID
- *
- * Usually you want this instead of LZMA1. Compared to LZMA1, LZMA2 adds
- * support for LZMA_SYNC_FLUSH, uncompressed chunks (smaller expansion
- * when trying to compress uncompressible data), possibility to change
- * lc/lp/pb in the middle of encoding, and some other internal improvements.
- */
-#define LZMA_FILTER_LZMA2 LZMA_VLI_C(0x21)
-
-
-/**
- * \brief Match finders
- *
- * Match finder has major effect on both speed and compression ratio.
- * Usually hash chains are faster than binary trees.
- *
- * If you will use LZMA_SYNC_FLUSH often, the hash chains may be a better
- * choice, because binary trees get much higher compression ratio penalty
- * with LZMA_SYNC_FLUSH.
- *
- * The memory usage formulas are only rough estimates, which are closest to
- * reality when dict_size is a power of two. The formulas are more complex
- * in reality, and can also change a little between liblzma versions. Use
- * lzma_raw_encoder_memusage() to get more accurate estimate of memory usage.
- */
-typedef enum {
- LZMA_MF_HC3 = 0x03,
- /**<
- * \brief Hash Chain with 2- and 3-byte hashing
- *
- * Minimum nice_len: 3
- *
- * Memory usage:
- * - dict_size <= 16 MiB: dict_size * 7.5
- * - dict_size > 16 MiB: dict_size * 5.5 + 64 MiB
- */
-
- LZMA_MF_HC4 = 0x04,
- /**<
- * \brief Hash Chain with 2-, 3-, and 4-byte hashing
- *
- * Minimum nice_len: 4
- *
- * Memory usage:
- * - dict_size <= 32 MiB: dict_size * 7.5
- * - dict_size > 32 MiB: dict_size * 6.5
- */
-
- LZMA_MF_BT2 = 0x12,
- /**<
- * \brief Binary Tree with 2-byte hashing
- *
- * Minimum nice_len: 2
- *
- * Memory usage: dict_size * 9.5
- */
-
- LZMA_MF_BT3 = 0x13,
- /**<
- * \brief Binary Tree with 2- and 3-byte hashing
- *
- * Minimum nice_len: 3
- *
- * Memory usage:
- * - dict_size <= 16 MiB: dict_size * 11.5
- * - dict_size > 16 MiB: dict_size * 9.5 + 64 MiB
- */
-
- LZMA_MF_BT4 = 0x14
- /**<
- * \brief Binary Tree with 2-, 3-, and 4-byte hashing
- *
- * Minimum nice_len: 4
- *
- * Memory usage:
- * - dict_size <= 32 MiB: dict_size * 11.5
- * - dict_size > 32 MiB: dict_size * 10.5
- */
-} lzma_match_finder;
-
-
-/**
- * \brief Test if given match finder is supported
- *
- * Return true if the given match finder is supported by this liblzma build.
- * Otherwise false is returned. It is safe to call this with a value that
- * isn't listed in lzma_match_finder enumeration; the return value will be
- * false.
- *
- * There is no way to list which match finders are available in this
- * particular liblzma version and build. It would be useless, because
- * a new match finder, which the application developer wasn't aware,
- * could require giving additional options to the encoder that the older
- * match finders don't need.
- */
-extern LZMA_API(lzma_bool) lzma_mf_is_supported(lzma_match_finder match_finder)
- lzma_nothrow lzma_attr_const;
-
-
-/**
- * \brief Compression modes
- *
- * This selects the function used to analyze the data produced by the match
- * finder.
- */
-typedef enum {
- LZMA_MODE_FAST = 1,
- /**<
- * \brief Fast compression
- *
- * Fast mode is usually at its best when combined with
- * a hash chain match finder.
- */
-
- LZMA_MODE_NORMAL = 2
- /**<
- * \brief Normal compression
- *
- * This is usually notably slower than fast mode. Use this
- * together with binary tree match finders to expose the
- * full potential of the LZMA1 or LZMA2 encoder.
- */
-} lzma_mode;
-
-
-/**
- * \brief Test if given compression mode is supported
- *
- * Return true if the given compression mode is supported by this liblzma
- * build. Otherwise false is returned. It is safe to call this with a value
- * that isn't listed in lzma_mode enumeration; the return value will be false.
- *
- * There is no way to list which modes are available in this particular
- * liblzma version and build. It would be useless, because a new compression
- * mode, which the application developer wasn't aware, could require giving
- * additional options to the encoder that the older modes don't need.
- */
-extern LZMA_API(lzma_bool) lzma_mode_is_supported(lzma_mode mode)
- lzma_nothrow lzma_attr_const;
-
-
-/**
- * \brief Options specific to the LZMA1 and LZMA2 filters
- *
- * Since LZMA1 and LZMA2 share most of the code, it's simplest to share
- * the options structure too. For encoding, all but the reserved variables
- * need to be initialized unless specifically mentioned otherwise.
- * lzma_lzma_preset() can be used to get a good starting point.
- *
- * For raw decoding, both LZMA1 and LZMA2 need dict_size, preset_dict, and
- * preset_dict_size (if preset_dict != NULL). LZMA1 needs also lc, lp, and pb.
- */
-typedef struct {
- /**
- * \brief Dictionary size in bytes
- *
- * Dictionary size indicates how many bytes of the recently processed
- * uncompressed data is kept in memory. One method to reduce size of
- * the uncompressed data is to store distance-length pairs, which
- * indicate what data to repeat from the dictionary buffer. Thus,
- * the bigger the dictionary, the better the compression ratio
- * usually is.
- *
- * Maximum size of the dictionary depends on multiple things:
- * - Memory usage limit
- * - Available address space (not a problem on 64-bit systems)
- * - Selected match finder (encoder only)
- *
- * Currently the maximum dictionary size for encoding is 1.5 GiB
- * (i.e. (UINT32_C(1) << 30) + (UINT32_C(1) << 29)) even on 64-bit
- * systems for certain match finder implementation reasons. In the
- * future, there may be match finders that support bigger
- * dictionaries.
- *
- * Decoder already supports dictionaries up to 4 GiB - 1 B (i.e.
- * UINT32_MAX), so increasing the maximum dictionary size of the
- * encoder won't cause problems for old decoders.
- *
- * Because extremely small dictionaries sizes would have unneeded
- * overhead in the decoder, the minimum dictionary size is 4096 bytes.
- *
- * \note When decoding, too big dictionary does no other harm
- * than wasting memory.
- */
- uint32_t dict_size;
-# define LZMA_DICT_SIZE_MIN UINT32_C(4096)
-# define LZMA_DICT_SIZE_DEFAULT (UINT32_C(1) << 23)
-
- /**
- * \brief Pointer to an initial dictionary
- *
- * It is possible to initialize the LZ77 history window using
- * a preset dictionary. It is useful when compressing many
- * similar, relatively small chunks of data independently from
- * each other. The preset dictionary should contain typical
- * strings that occur in the files being compressed. The most
- * probable strings should be near the end of the preset dictionary.
- *
- * This feature should be used only in special situations. For
- * now, it works correctly only with raw encoding and decoding.
- * Currently none of the container formats supported by
- * liblzma allow preset dictionary when decoding, thus if
- * you create a .xz or .lzma file with preset dictionary, it
- * cannot be decoded with the regular decoder functions. In the
- * future, the .xz format will likely get support for preset
- * dictionary though.
- */
- const uint8_t *preset_dict;
-
- /**
- * \brief Size of the preset dictionary
- *
- * Specifies the size of the preset dictionary. If the size is
- * bigger than dict_size, only the last dict_size bytes are
- * processed.
- *
- * This variable is read only when preset_dict is not NULL.
- * If preset_dict is not NULL but preset_dict_size is zero,
- * no preset dictionary is used (identical to only setting
- * preset_dict to NULL).
- */
- uint32_t preset_dict_size;
-
- /**
- * \brief Number of literal context bits
- *
- * How many of the highest bits of the previous uncompressed
- * eight-bit byte (also known as `literal') are taken into
- * account when predicting the bits of the next literal.
- *
- * E.g. in typical English text, an upper-case letter is
- * often followed by a lower-case letter, and a lower-case
- * letter is usually followed by another lower-case letter.
- * In the US-ASCII character set, the highest three bits are 010
- * for upper-case letters and 011 for lower-case letters.
- * When lc is at least 3, the literal coding can take advantage of
- * this property in the uncompressed data.
- *
- * There is a limit that applies to literal context bits and literal
- * position bits together: lc + lp <= 4. Without this limit the
- * decoding could become very slow, which could have security related
- * results in some cases like email servers doing virus scanning.
- * This limit also simplifies the internal implementation in liblzma.
- *
- * There may be LZMA1 streams that have lc + lp > 4 (maximum possible
- * lc would be 8). It is not possible to decode such streams with
- * liblzma.
- */
- uint32_t lc;
-# define LZMA_LCLP_MIN 0
-# define LZMA_LCLP_MAX 4
-# define LZMA_LC_DEFAULT 3
-
- /**
- * \brief Number of literal position bits
- *
- * lp affects what kind of alignment in the uncompressed data is
- * assumed when encoding literals. A literal is a single 8-bit byte.
- * See pb below for more information about alignment.
- */
- uint32_t lp;
-# define LZMA_LP_DEFAULT 0
-
- /**
- * \brief Number of position bits
- *
- * pb affects what kind of alignment in the uncompressed data is
- * assumed in general. The default means four-byte alignment
- * (2^ pb =2^2=4), which is often a good choice when there's
- * no better guess.
- *
- * When the aligment is known, setting pb accordingly may reduce
- * the file size a little. E.g. with text files having one-byte
- * alignment (US-ASCII, ISO-8859-*, UTF-8), setting pb=0 can
- * improve compression slightly. For UTF-16 text, pb=1 is a good
- * choice. If the alignment is an odd number like 3 bytes, pb=0
- * might be the best choice.
- *
- * Even though the assumed alignment can be adjusted with pb and
- * lp, LZMA1 and LZMA2 still slightly favor 16-byte alignment.
- * It might be worth taking into account when designing file formats
- * that are likely to be often compressed with LZMA1 or LZMA2.
- */
- uint32_t pb;
-# define LZMA_PB_MIN 0
-# define LZMA_PB_MAX 4
-# define LZMA_PB_DEFAULT 2
-
- /** Compression mode */
- lzma_mode mode;
-
- /**
- * \brief Nice length of a match
- *
- * This determines how many bytes the encoder compares from the match
- * candidates when looking for the best match. Once a match of at
- * least nice_len bytes long is found, the encoder stops looking for
- * better candidates and encodes the match. (Naturally, if the found
- * match is actually longer than nice_len, the actual length is
- * encoded; it's not truncated to nice_len.)
- *
- * Bigger values usually increase the compression ratio and
- * compression time. For most files, 32 to 128 is a good value,
- * which gives very good compression ratio at good speed.
- *
- * The exact minimum value depends on the match finder. The maximum
- * is 273, which is the maximum length of a match that LZMA1 and
- * LZMA2 can encode.
- */
- uint32_t nice_len;
-
- /** Match finder ID */
- lzma_match_finder mf;
-
- /**
- * \brief Maximum search depth in the match finder
- *
- * For every input byte, match finder searches through the hash chain
- * or binary tree in a loop, each iteration going one step deeper in
- * the chain or tree. The searching stops if
- * - a match of at least nice_len bytes long is found;
- * - all match candidates from the hash chain or binary tree have
- * been checked; or
- * - maximum search depth is reached.
- *
- * Maximum search depth is needed to prevent the match finder from
- * wasting too much time in case there are lots of short match
- * candidates. On the other hand, stopping the search before all
- * candidates have been checked can reduce compression ratio.
- *
- * Setting depth to zero tells liblzma to use an automatic default
- * value, that depends on the selected match finder and nice_len.
- * The default is in the range [4, 200] or so (it may vary between
- * liblzma versions).
- *
- * Using a bigger depth value than the default can increase
- * compression ratio in some cases. There is no strict maximum value,
- * but high values (thousands or millions) should be used with care:
- * the encoder could remain fast enough with typical input, but
- * malicious input could cause the match finder to slow down
- * dramatically, possibly creating a denial of service attack.
- */
- uint32_t depth;
-
- /*
- * Reserved space to allow possible future extensions without
- * breaking the ABI. You should not touch these, because the names
- * of these variables may change. These are and will never be used
- * with the currently supported options, so it is safe to leave these
- * uninitialized.
- */
- uint32_t reserved_int1;
- uint32_t reserved_int2;
- uint32_t reserved_int3;
- uint32_t reserved_int4;
- uint32_t reserved_int5;
- uint32_t reserved_int6;
- uint32_t reserved_int7;
- uint32_t reserved_int8;
- lzma_reserved_enum reserved_enum1;
- lzma_reserved_enum reserved_enum2;
- lzma_reserved_enum reserved_enum3;
- lzma_reserved_enum reserved_enum4;
- void *reserved_ptr1;
- void *reserved_ptr2;
-
-} lzma_options_lzma;
-
-
-/**
- * \brief Set a compression preset to lzma_options_lzma structure
- *
- * 0 is the fastest and 9 is the slowest. These match the switches -0 .. -9
- * of the xz command line tool. In addition, it is possible to bitwise-or
- * flags to the preset. Currently only LZMA_PRESET_EXTREME is supported.
- * The flags are defined in container.h, because the flags are used also
- * with lzma_easy_encoder().
- *
- * The preset values are subject to changes between liblzma versions.
- *
- * This function is available only if LZMA1 or LZMA2 encoder has been enabled
- * when building liblzma.
- *
- * \return On success, false is returned. If the preset is not
- * supported, true is returned.
- */
-extern LZMA_API(lzma_bool) lzma_lzma_preset(
- lzma_options_lzma *options, uint32_t preset) lzma_nothrow;
Added: vendor/xz/dist/src/liblzma/api/lzma/lzma12.h
===================================================================
--- vendor/xz/dist/src/liblzma/api/lzma/lzma12.h (rev 0)
+++ vendor/xz/dist/src/liblzma/api/lzma/lzma12.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -0,0 +1,420 @@
+/**
+ * \file lzma/lzma12.h
+ * \brief LZMA1 and LZMA2 filters
+ */
+
+/*
+ * Author: Lasse Collin
+ *
+ * This file has been put into the public domain.
+ * You can do whatever you want with this file.
+ *
+ * See ../lzma.h for information about liblzma as a whole.
+ */
+
+#ifndef LZMA_H_INTERNAL
+# error Never include this file directly. Use <lzma.h> instead.
+#endif
+
+
+/**
+ * \brief LZMA1 Filter ID
+ *
+ * LZMA1 is the very same thing as what was called just LZMA in LZMA Utils,
+ * 7-Zip, and LZMA SDK. It's called LZMA1 here to prevent developers from
+ * accidentally using LZMA when they actually want LZMA2.
+ *
+ * LZMA1 shouldn't be used for new applications unless you _really_ know
+ * what you are doing. LZMA2 is almost always a better choice.
+ */
+#define LZMA_FILTER_LZMA1 LZMA_VLI_C(0x4000000000000001)
+
+/**
+ * \brief LZMA2 Filter ID
+ *
+ * Usually you want this instead of LZMA1. Compared to LZMA1, LZMA2 adds
+ * support for LZMA_SYNC_FLUSH, uncompressed chunks (smaller expansion
+ * when trying to compress uncompressible data), possibility to change
+ * lc/lp/pb in the middle of encoding, and some other internal improvements.
+ */
+#define LZMA_FILTER_LZMA2 LZMA_VLI_C(0x21)
+
+
+/**
+ * \brief Match finders
+ *
+ * Match finder has major effect on both speed and compression ratio.
+ * Usually hash chains are faster than binary trees.
+ *
+ * If you will use LZMA_SYNC_FLUSH often, the hash chains may be a better
+ * choice, because binary trees get much higher compression ratio penalty
+ * with LZMA_SYNC_FLUSH.
+ *
+ * The memory usage formulas are only rough estimates, which are closest to
+ * reality when dict_size is a power of two. The formulas are more complex
+ * in reality, and can also change a little between liblzma versions. Use
+ * lzma_raw_encoder_memusage() to get more accurate estimate of memory usage.
+ */
+typedef enum {
+ LZMA_MF_HC3 = 0x03,
+ /**<
+ * \brief Hash Chain with 2- and 3-byte hashing
+ *
+ * Minimum nice_len: 3
+ *
+ * Memory usage:
+ * - dict_size <= 16 MiB: dict_size * 7.5
+ * - dict_size > 16 MiB: dict_size * 5.5 + 64 MiB
+ */
+
+ LZMA_MF_HC4 = 0x04,
+ /**<
+ * \brief Hash Chain with 2-, 3-, and 4-byte hashing
+ *
+ * Minimum nice_len: 4
+ *
+ * Memory usage:
+ * - dict_size <= 32 MiB: dict_size * 7.5
+ * - dict_size > 32 MiB: dict_size * 6.5
+ */
+
+ LZMA_MF_BT2 = 0x12,
+ /**<
+ * \brief Binary Tree with 2-byte hashing
+ *
+ * Minimum nice_len: 2
+ *
+ * Memory usage: dict_size * 9.5
+ */
+
+ LZMA_MF_BT3 = 0x13,
+ /**<
+ * \brief Binary Tree with 2- and 3-byte hashing
+ *
+ * Minimum nice_len: 3
+ *
+ * Memory usage:
+ * - dict_size <= 16 MiB: dict_size * 11.5
+ * - dict_size > 16 MiB: dict_size * 9.5 + 64 MiB
+ */
+
+ LZMA_MF_BT4 = 0x14
+ /**<
+ * \brief Binary Tree with 2-, 3-, and 4-byte hashing
+ *
+ * Minimum nice_len: 4
+ *
+ * Memory usage:
+ * - dict_size <= 32 MiB: dict_size * 11.5
+ * - dict_size > 32 MiB: dict_size * 10.5
+ */
+} lzma_match_finder;
+
+
+/**
+ * \brief Test if given match finder is supported
+ *
+ * Return true if the given match finder is supported by this liblzma build.
+ * Otherwise false is returned. It is safe to call this with a value that
+ * isn't listed in lzma_match_finder enumeration; the return value will be
+ * false.
+ *
+ * There is no way to list which match finders are available in this
+ * particular liblzma version and build. It would be useless, because
+ * a new match finder, which the application developer wasn't aware,
+ * could require giving additional options to the encoder that the older
+ * match finders don't need.
+ */
+extern LZMA_API(lzma_bool) lzma_mf_is_supported(lzma_match_finder match_finder)
+ lzma_nothrow lzma_attr_const;
+
+
+/**
+ * \brief Compression modes
+ *
+ * This selects the function used to analyze the data produced by the match
+ * finder.
+ */
+typedef enum {
+ LZMA_MODE_FAST = 1,
+ /**<
+ * \brief Fast compression
+ *
+ * Fast mode is usually at its best when combined with
+ * a hash chain match finder.
+ */
+
+ LZMA_MODE_NORMAL = 2
+ /**<
+ * \brief Normal compression
+ *
+ * This is usually notably slower than fast mode. Use this
+ * together with binary tree match finders to expose the
+ * full potential of the LZMA1 or LZMA2 encoder.
+ */
+} lzma_mode;
+
+
+/**
+ * \brief Test if given compression mode is supported
+ *
+ * Return true if the given compression mode is supported by this liblzma
+ * build. Otherwise false is returned. It is safe to call this with a value
+ * that isn't listed in lzma_mode enumeration; the return value will be false.
+ *
+ * There is no way to list which modes are available in this particular
+ * liblzma version and build. It would be useless, because a new compression
+ * mode, which the application developer wasn't aware, could require giving
+ * additional options to the encoder that the older modes don't need.
+ */
+extern LZMA_API(lzma_bool) lzma_mode_is_supported(lzma_mode mode)
+ lzma_nothrow lzma_attr_const;
+
+
+/**
+ * \brief Options specific to the LZMA1 and LZMA2 filters
+ *
+ * Since LZMA1 and LZMA2 share most of the code, it's simplest to share
+ * the options structure too. For encoding, all but the reserved variables
+ * need to be initialized unless specifically mentioned otherwise.
+ * lzma_lzma_preset() can be used to get a good starting point.
+ *
+ * For raw decoding, both LZMA1 and LZMA2 need dict_size, preset_dict, and
+ * preset_dict_size (if preset_dict != NULL). LZMA1 needs also lc, lp, and pb.
+ */
+typedef struct {
+ /**
+ * \brief Dictionary size in bytes
+ *
+ * Dictionary size indicates how many bytes of the recently processed
+ * uncompressed data is kept in memory. One method to reduce size of
+ * the uncompressed data is to store distance-length pairs, which
+ * indicate what data to repeat from the dictionary buffer. Thus,
+ * the bigger the dictionary, the better the compression ratio
+ * usually is.
+ *
+ * Maximum size of the dictionary depends on multiple things:
+ * - Memory usage limit
+ * - Available address space (not a problem on 64-bit systems)
+ * - Selected match finder (encoder only)
+ *
+ * Currently the maximum dictionary size for encoding is 1.5 GiB
+ * (i.e. (UINT32_C(1) << 30) + (UINT32_C(1) << 29)) even on 64-bit
+ * systems for certain match finder implementation reasons. In the
+ * future, there may be match finders that support bigger
+ * dictionaries.
+ *
+ * Decoder already supports dictionaries up to 4 GiB - 1 B (i.e.
+ * UINT32_MAX), so increasing the maximum dictionary size of the
+ * encoder won't cause problems for old decoders.
+ *
+ * Because extremely small dictionaries sizes would have unneeded
+ * overhead in the decoder, the minimum dictionary size is 4096 bytes.
+ *
+ * \note When decoding, too big dictionary does no other harm
+ * than wasting memory.
+ */
+ uint32_t dict_size;
+# define LZMA_DICT_SIZE_MIN UINT32_C(4096)
+# define LZMA_DICT_SIZE_DEFAULT (UINT32_C(1) << 23)
+
+ /**
+ * \brief Pointer to an initial dictionary
+ *
+ * It is possible to initialize the LZ77 history window using
+ * a preset dictionary. It is useful when compressing many
+ * similar, relatively small chunks of data independently from
+ * each other. The preset dictionary should contain typical
+ * strings that occur in the files being compressed. The most
+ * probable strings should be near the end of the preset dictionary.
+ *
+ * This feature should be used only in special situations. For
+ * now, it works correctly only with raw encoding and decoding.
+ * Currently none of the container formats supported by
+ * liblzma allow preset dictionary when decoding, thus if
+ * you create a .xz or .lzma file with preset dictionary, it
+ * cannot be decoded with the regular decoder functions. In the
+ * future, the .xz format will likely get support for preset
+ * dictionary though.
+ */
+ const uint8_t *preset_dict;
+
+ /**
+ * \brief Size of the preset dictionary
+ *
+ * Specifies the size of the preset dictionary. If the size is
+ * bigger than dict_size, only the last dict_size bytes are
+ * processed.
+ *
+ * This variable is read only when preset_dict is not NULL.
+ * If preset_dict is not NULL but preset_dict_size is zero,
+ * no preset dictionary is used (identical to only setting
+ * preset_dict to NULL).
+ */
+ uint32_t preset_dict_size;
+
+ /**
+ * \brief Number of literal context bits
+ *
+ * How many of the highest bits of the previous uncompressed
+ * eight-bit byte (also known as `literal') are taken into
+ * account when predicting the bits of the next literal.
+ *
+ * E.g. in typical English text, an upper-case letter is
+ * often followed by a lower-case letter, and a lower-case
+ * letter is usually followed by another lower-case letter.
+ * In the US-ASCII character set, the highest three bits are 010
+ * for upper-case letters and 011 for lower-case letters.
+ * When lc is at least 3, the literal coding can take advantage of
+ * this property in the uncompressed data.
+ *
+ * There is a limit that applies to literal context bits and literal
+ * position bits together: lc + lp <= 4. Without this limit the
+ * decoding could become very slow, which could have security related
+ * results in some cases like email servers doing virus scanning.
+ * This limit also simplifies the internal implementation in liblzma.
+ *
+ * There may be LZMA1 streams that have lc + lp > 4 (maximum possible
+ * lc would be 8). It is not possible to decode such streams with
+ * liblzma.
+ */
+ uint32_t lc;
+# define LZMA_LCLP_MIN 0
+# define LZMA_LCLP_MAX 4
+# define LZMA_LC_DEFAULT 3
+
+ /**
+ * \brief Number of literal position bits
+ *
+ * lp affects what kind of alignment in the uncompressed data is
+ * assumed when encoding literals. A literal is a single 8-bit byte.
+ * See pb below for more information about alignment.
+ */
+ uint32_t lp;
+# define LZMA_LP_DEFAULT 0
+
+ /**
+ * \brief Number of position bits
+ *
+ * pb affects what kind of alignment in the uncompressed data is
+ * assumed in general. The default means four-byte alignment
+ * (2^ pb =2^2=4), which is often a good choice when there's
+ * no better guess.
+ *
+ * When the aligment is known, setting pb accordingly may reduce
+ * the file size a little. E.g. with text files having one-byte
+ * alignment (US-ASCII, ISO-8859-*, UTF-8), setting pb=0 can
+ * improve compression slightly. For UTF-16 text, pb=1 is a good
+ * choice. If the alignment is an odd number like 3 bytes, pb=0
+ * might be the best choice.
+ *
+ * Even though the assumed alignment can be adjusted with pb and
+ * lp, LZMA1 and LZMA2 still slightly favor 16-byte alignment.
+ * It might be worth taking into account when designing file formats
+ * that are likely to be often compressed with LZMA1 or LZMA2.
+ */
+ uint32_t pb;
+# define LZMA_PB_MIN 0
+# define LZMA_PB_MAX 4
+# define LZMA_PB_DEFAULT 2
+
+ /** Compression mode */
+ lzma_mode mode;
+
+ /**
+ * \brief Nice length of a match
+ *
+ * This determines how many bytes the encoder compares from the match
+ * candidates when looking for the best match. Once a match of at
+ * least nice_len bytes long is found, the encoder stops looking for
+ * better candidates and encodes the match. (Naturally, if the found
+ * match is actually longer than nice_len, the actual length is
+ * encoded; it's not truncated to nice_len.)
+ *
+ * Bigger values usually increase the compression ratio and
+ * compression time. For most files, 32 to 128 is a good value,
+ * which gives very good compression ratio at good speed.
+ *
+ * The exact minimum value depends on the match finder. The maximum
+ * is 273, which is the maximum length of a match that LZMA1 and
+ * LZMA2 can encode.
+ */
+ uint32_t nice_len;
+
+ /** Match finder ID */
+ lzma_match_finder mf;
+
+ /**
+ * \brief Maximum search depth in the match finder
+ *
+ * For every input byte, match finder searches through the hash chain
+ * or binary tree in a loop, each iteration going one step deeper in
+ * the chain or tree. The searching stops if
+ * - a match of at least nice_len bytes long is found;
+ * - all match candidates from the hash chain or binary tree have
+ * been checked; or
+ * - maximum search depth is reached.
+ *
+ * Maximum search depth is needed to prevent the match finder from
+ * wasting too much time in case there are lots of short match
+ * candidates. On the other hand, stopping the search before all
+ * candidates have been checked can reduce compression ratio.
+ *
+ * Setting depth to zero tells liblzma to use an automatic default
+ * value, that depends on the selected match finder and nice_len.
+ * The default is in the range [4, 200] or so (it may vary between
+ * liblzma versions).
+ *
+ * Using a bigger depth value than the default can increase
+ * compression ratio in some cases. There is no strict maximum value,
+ * but high values (thousands or millions) should be used with care:
+ * the encoder could remain fast enough with typical input, but
+ * malicious input could cause the match finder to slow down
+ * dramatically, possibly creating a denial of service attack.
+ */
+ uint32_t depth;
+
+ /*
+ * Reserved space to allow possible future extensions without
+ * breaking the ABI. You should not touch these, because the names
+ * of these variables may change. These are and will never be used
+ * with the currently supported options, so it is safe to leave these
+ * uninitialized.
+ */
+ uint32_t reserved_int1;
+ uint32_t reserved_int2;
+ uint32_t reserved_int3;
+ uint32_t reserved_int4;
+ uint32_t reserved_int5;
+ uint32_t reserved_int6;
+ uint32_t reserved_int7;
+ uint32_t reserved_int8;
+ lzma_reserved_enum reserved_enum1;
+ lzma_reserved_enum reserved_enum2;
+ lzma_reserved_enum reserved_enum3;
+ lzma_reserved_enum reserved_enum4;
+ void *reserved_ptr1;
+ void *reserved_ptr2;
+
+} lzma_options_lzma;
+
+
+/**
+ * \brief Set a compression preset to lzma_options_lzma structure
+ *
+ * 0 is the fastest and 9 is the slowest. These match the switches -0 .. -9
+ * of the xz command line tool. In addition, it is possible to bitwise-or
+ * flags to the preset. Currently only LZMA_PRESET_EXTREME is supported.
+ * The flags are defined in container.h, because the flags are used also
+ * with lzma_easy_encoder().
+ *
+ * The preset values are subject to changes between liblzma versions.
+ *
+ * This function is available only if LZMA1 or LZMA2 encoder has been enabled
+ * when building liblzma.
+ *
+ * \return On success, false is returned. If the preset is not
+ * supported, true is returned.
+ */
+extern LZMA_API(lzma_bool) lzma_lzma_preset(
+ lzma_options_lzma *options, uint32_t preset) lzma_nothrow;
Modified: vendor/xz/dist/src/liblzma/api/lzma/version.h
===================================================================
--- vendor/xz/dist/src/liblzma/api/lzma/version.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/api/lzma/version.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -21,8 +21,8 @@
* Version number split into components
*/
#define LZMA_VERSION_MAJOR 5
-#define LZMA_VERSION_MINOR 0
-#define LZMA_VERSION_PATCH 8
+#define LZMA_VERSION_MINOR 2
+#define LZMA_VERSION_PATCH 2
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
#ifndef LZMA_VERSION_COMMIT
Modified: vendor/xz/dist/src/liblzma/api/lzma.h
===================================================================
--- vendor/xz/dist/src/liblzma/api/lzma.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/api/lzma.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -82,12 +82,20 @@
# if !defined(UINT32_C) || !defined(UINT64_C) \
|| !defined(UINT32_MAX) || !defined(UINT64_MAX)
/*
- * MSVC has no C99 support, and thus it cannot be used to
- * compile liblzma. The liblzma API has to still be usable
- * from MSVC, so we need to define the required standard
- * integer types here.
+ * MSVC versions older than 2013 have no C99 support, and
+ * thus they cannot be used to compile liblzma. Using an
+ * existing liblzma.dll with old MSVC can work though(*),
+ * 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 __int32 uint32_t;
typedef unsigned __int64 uint64_t;
@@ -286,7 +294,7 @@
#include "lzma/filter.h"
#include "lzma/bcj.h"
#include "lzma/delta.h"
-#include "lzma/lzma.h"
+#include "lzma/lzma12.h"
/* Container formats */
#include "lzma/container.h"
Deleted: vendor/xz/dist/src/liblzma/check/Makefile.inc
===================================================================
--- vendor/xz/dist/src/liblzma/check/Makefile.inc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/check/Makefile.inc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,51 +0,0 @@
-##
-## Author: Lasse Collin
-##
-## This file has been put into the public domain.
-## You can do whatever you want with this file.
-##
-
-EXTRA_DIST += \
- check/crc32_tablegen.c \
- check/crc64_tablegen.c
-
-liblzma_la_SOURCES += \
- check/check.c \
- check/check.h \
- check/crc_macros.h
-
-if COND_CHECK_CRC32
-if COND_SMALL
-liblzma_la_SOURCES += check/crc32_small.c
-else
-liblzma_la_SOURCES += \
- check/crc32_table.c \
- check/crc32_table_le.h \
- check/crc32_table_be.h
-if COND_ASM_X86
-liblzma_la_SOURCES += check/crc32_x86.S
-else
-liblzma_la_SOURCES += check/crc32_fast.c
-endif
-endif
-endif
-
-if COND_CHECK_CRC64
-if COND_SMALL
-liblzma_la_SOURCES += check/crc64_small.c
-else
-liblzma_la_SOURCES += \
- check/crc64_table.c \
- check/crc64_table_le.h \
- check/crc64_table_be.h
-if COND_ASM_X86
-liblzma_la_SOURCES += check/crc64_x86.S
-else
-liblzma_la_SOURCES += check/crc64_fast.c
-endif
-endif
-endif
-
-if COND_CHECK_SHA256
-liblzma_la_SOURCES += check/sha256.c
-endif
Modified: vendor/xz/dist/src/liblzma/check/check.h
===================================================================
--- vendor/xz/dist/src/liblzma/check/check.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/check/check.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -15,7 +15,44 @@
#include "common.h"
+#if defined(HAVE_COMMONCRYPTO_COMMONDIGEST_H)
+# include <CommonCrypto/CommonDigest.h>
+#elif defined(HAVE_SHA256_H)
+# include <sys/types.h>
+# include <sha256.h>
+#elif defined(HAVE_SHA2_H)
+# include <sys/types.h>
+# include <sha2.h>
+#elif defined(HAVE_MINIX_SHA2_H)
+# include <sys/types.h>
+# include <minix/sha2.h>
+#endif
+#if defined(HAVE_CC_SHA256_CTX)
+typedef CC_SHA256_CTX lzma_sha256_state;
+#elif defined(HAVE_SHA256_CTX)
+typedef SHA256_CTX lzma_sha256_state;
+#elif defined(HAVE_SHA2_CTX)
+typedef SHA2_CTX lzma_sha256_state;
+#else
+/// State for the internal SHA-256 implementation
+typedef struct {
+ /// Internal state
+ uint32_t state[8];
+
+ /// Size of the message excluding padding
+ uint64_t size;
+} lzma_sha256_state;
+#endif
+
+#if defined(HAVE_CC_SHA256_INIT)
+# define LZMA_SHA256FUNC(x) CC_SHA256_ ## x
+#elif defined(HAVE_SHA256_INIT)
+# define LZMA_SHA256FUNC(x) SHA256_ ## x
+#elif defined(HAVE_SHA256INIT)
+# define LZMA_SHA256FUNC(x) SHA256 ## x
+#endif
+
// Index hashing needs the best possible hash function (preferably
// a cryptographic hash) for maximum reliability.
#if defined(HAVE_CHECK_SHA256)
@@ -43,14 +80,7 @@
union {
uint32_t crc32;
uint64_t crc64;
-
- struct {
- /// Internal state
- uint32_t state[8];
-
- /// Size of the message excluding padding
- uint64_t size;
- } sha256;
+ lzma_sha256_state sha256;
} state;
} lzma_check_state;
@@ -82,6 +112,8 @@
extern void lzma_check_finish(lzma_check_state *check, lzma_check type);
+#ifndef LZMA_SHA256FUNC
+
/// Prepare SHA-256 state for new input.
extern void lzma_sha256_init(lzma_check_state *check);
@@ -92,4 +124,39 @@
/// Finish the SHA-256 calculation and store the result to check->buffer.u8.
extern void lzma_sha256_finish(lzma_check_state *check);
+
+#else
+
+static inline void
+lzma_sha256_init(lzma_check_state *check)
+{
+ LZMA_SHA256FUNC(Init)(&check->state.sha256);
+}
+
+
+static inline void
+lzma_sha256_update(const uint8_t *buf, size_t size, lzma_check_state *check)
+{
+#if defined(HAVE_CC_SHA256_INIT) && SIZE_MAX > UINT32_MAX
+ // Darwin's CC_SHA256_Update takes uint32_t as the buffer size,
+ // so use a loop to support size_t.
+ while (size > UINT32_MAX) {
+ LZMA_SHA256FUNC(Update)(&check->state.sha256, buf, UINT32_MAX);
+ buf += UINT32_MAX;
+ size -= UINT32_MAX;
+ }
#endif
+
+ LZMA_SHA256FUNC(Update)(&check->state.sha256, buf, size);
+}
+
+
+static inline void
+lzma_sha256_finish(lzma_check_state *check)
+{
+ LZMA_SHA256FUNC(Final)(check->buffer.u8, &check->state.sha256);
+}
+
+#endif
+
+#endif
Modified: vendor/xz/dist/src/liblzma/check/sha256.c
===================================================================
--- vendor/xz/dist/src/liblzma/check/sha256.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/check/sha256.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -21,22 +21,22 @@
//
///////////////////////////////////////////////////////////////////////////////
-// Avoid bogus warnings in transform().
-#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 2) || __GNUC__ > 4
-# pragma GCC diagnostic ignored "-Wuninitialized"
-#endif
-
#include "check.h"
-// At least on x86, GCC is able to optimize this to a rotate instruction.
-#define rotr_32(num, amount) ((num) >> (amount) | (num) << (32 - (amount)))
+// Rotate a uint32_t. GCC can optimize this to a rotate instruction
+// at least on x86.
+static inline uint32_t
+rotr_32(uint32_t num, unsigned amount)
+{
+ return (num >> amount) | (num << (32 - amount));
+}
-#define blk0(i) (W[i] = data[i])
+#define blk0(i) (W[i] = conv32be(data[i]))
#define blk2(i) (W[i & 15] += s1(W[(i - 2) & 15]) + W[(i - 7) & 15] \
+ s0(W[(i - 15) & 15]))
#define Ch(x, y, z) (z ^ (x & (y ^ z)))
-#define Maj(x, y, z) ((x & y) | (z & (x | y)))
+#define Maj(x, y, z) ((x & (y ^ z)) + (y & z))
#define a(i) T[(0 - i) & 7]
#define b(i) T[(1 - i) & 7]
@@ -47,16 +47,17 @@
#define g(i) T[(6 - i) & 7]
#define h(i) T[(7 - i) & 7]
-#define R(i) \
- h(i) += S1(e(i)) + Ch(e(i), f(i), g(i)) + SHA256_K[i + j] \
- + (j ? blk2(i) : blk0(i)); \
+#define R(i, j, blk) \
+ h(i) += S1(e(i)) + Ch(e(i), f(i), g(i)) + SHA256_K[i + j] + blk; \
d(i) += h(i); \
h(i) += S0(a(i)) + Maj(a(i), b(i), c(i))
+#define R0(i) R(i, 0, blk0(i))
+#define R2(i) R(i, j, blk2(i))
-#define S0(x) (rotr_32(x, 2) ^ rotr_32(x, 13) ^ rotr_32(x, 22))
-#define S1(x) (rotr_32(x, 6) ^ rotr_32(x, 11) ^ rotr_32(x, 25))
-#define s0(x) (rotr_32(x, 7) ^ rotr_32(x, 18) ^ (x >> 3))
-#define s1(x) (rotr_32(x, 17) ^ rotr_32(x, 19) ^ (x >> 10))
+#define S0(x) rotr_32(x ^ rotr_32(x ^ rotr_32(x, 9), 11), 2)
+#define S1(x) rotr_32(x ^ rotr_32(x ^ rotr_32(x, 14), 5), 6)
+#define s0(x) (rotr_32(x ^ rotr_32(x, 11), 7) ^ (x >> 3))
+#define s1(x) (rotr_32(x ^ rotr_32(x, 2), 17) ^ (x >> 10))
static const uint32_t SHA256_K[64] = {
@@ -88,12 +89,18 @@
// Copy state[] to working vars.
memcpy(T, state, sizeof(T));
- // 64 operations, partially loop unrolled
- for (unsigned int j = 0; j < 64; j += 16) {
- R( 0); R( 1); R( 2); R( 3);
- R( 4); R( 5); R( 6); R( 7);
- R( 8); R( 9); R(10); R(11);
- R(12); R(13); R(14); R(15);
+ // The first 16 operations unrolled
+ R0( 0); R0( 1); R0( 2); R0( 3);
+ R0( 4); R0( 5); R0( 6); R0( 7);
+ R0( 8); R0( 9); R0(10); R0(11);
+ R0(12); R0(13); R0(14); R0(15);
+
+ // The remaining 48 operations partially unrolled
+ for (unsigned int j = 16; j < 64; j += 16) {
+ R2( 0); R2( 1); R2( 2); R2( 3);
+ R2( 4); R2( 5); R2( 6); R2( 7);
+ R2( 8); R2( 9); R2(10); R2(11);
+ R2(12); R2(13); R2(14); R2(15);
}
// Add the working vars back into state[].
@@ -111,18 +118,7 @@
static void
process(lzma_check_state *check)
{
-#ifdef WORDS_BIGENDIAN
transform(check->state.sha256.state, check->buffer.u32);
-
-#else
- uint32_t data[16];
-
- for (size_t i = 0; i < 16; ++i)
- data[i] = bswap32(check->buffer.u32[i]);
-
- transform(check->state.sha256.state, data);
-#endif
-
return;
}
Deleted: vendor/xz/dist/src/liblzma/common/Makefile.inc
===================================================================
--- vendor/xz/dist/src/liblzma/common/Makefile.inc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/Makefile.inc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,67 +0,0 @@
-##
-## Author: Lasse Collin
-##
-## This file has been put into the public domain.
-## You can do whatever you want with this file.
-##
-
-liblzma_la_SOURCES += \
- common/common.c \
- common/common.h \
- common/block_util.c \
- common/easy_preset.c \
- common/easy_preset.h \
- common/filter_common.c \
- common/filter_common.h \
- common/hardware_physmem.c \
- common/index.c \
- common/index.h \
- common/stream_flags_common.c \
- common/stream_flags_common.h \
- common/vli_size.c
-
-if COND_MAIN_ENCODER
-liblzma_la_SOURCES += \
- common/alone_encoder.c \
- common/block_buffer_encoder.c \
- common/block_encoder.c \
- common/block_encoder.h \
- common/block_header_encoder.c \
- common/easy_buffer_encoder.c \
- common/easy_encoder.c \
- common/easy_encoder_memusage.c \
- common/filter_buffer_encoder.c \
- common/filter_encoder.c \
- common/filter_encoder.h \
- common/filter_flags_encoder.c \
- common/index_encoder.c \
- common/index_encoder.h \
- common/stream_buffer_encoder.c \
- common/stream_encoder.c \
- common/stream_encoder.h \
- common/stream_flags_encoder.c \
- common/vli_encoder.c
-endif
-
-if COND_MAIN_DECODER
-liblzma_la_SOURCES += \
- common/alone_decoder.c \
- common/alone_decoder.h \
- common/auto_decoder.c \
- common/block_buffer_decoder.c \
- common/block_decoder.c \
- common/block_decoder.h \
- common/block_header_decoder.c \
- common/easy_decoder_memusage.c \
- common/filter_buffer_decoder.c \
- common/filter_decoder.c \
- common/filter_decoder.h \
- common/filter_flags_decoder.c \
- common/index_decoder.c \
- common/index_hash.c \
- common/stream_buffer_decoder.c \
- common/stream_decoder.c \
- common/stream_decoder.h \
- common/stream_flags_decoder.c \
- common/vli_decoder.c
-endif
Modified: vendor/xz/dist/src/liblzma/common/alone_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/alone_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/alone_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -51,7 +51,7 @@
static lzma_ret
alone_decode(lzma_coder *coder,
- lzma_allocator *allocator lzma_attribute((__unused__)),
+ const lzma_allocator *allocator lzma_attribute((__unused__)),
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size,
@@ -166,7 +166,7 @@
static void
-alone_decoder_end(lzma_coder *coder, lzma_allocator *allocator)
+alone_decoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_next_end(&coder->next, allocator);
lzma_free(coder, allocator);
@@ -193,7 +193,7 @@
extern lzma_ret
-lzma_alone_decoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_alone_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
uint64_t memlimit, bool picky)
{
lzma_next_coder_init(&lzma_alone_decoder_init, next, allocator);
Modified: vendor/xz/dist/src/liblzma/common/alone_decoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/alone_decoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/alone_decoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -17,7 +17,7 @@
extern lzma_ret lzma_alone_decoder_init(
- lzma_next_coder *next, lzma_allocator *allocator,
+ lzma_next_coder *next, const lzma_allocator *allocator,
uint64_t memlimit, bool picky);
#endif
Modified: vendor/xz/dist/src/liblzma/common/alone_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/alone_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/alone_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -32,7 +32,7 @@
static lzma_ret
alone_encode(lzma_coder *coder,
- lzma_allocator *allocator lzma_attribute((__unused__)),
+ const lzma_allocator *allocator lzma_attribute((__unused__)),
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size,
@@ -65,7 +65,7 @@
static void
-alone_encoder_end(lzma_coder *coder, lzma_allocator *allocator)
+alone_encoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_next_end(&coder->next, allocator);
lzma_free(coder, allocator);
@@ -75,7 +75,7 @@
// At least for now, this is not used by any internal function.
static lzma_ret
-alone_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+alone_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_options_lzma *options)
{
lzma_next_coder_init(&alone_encoder_init, next, allocator);
@@ -137,7 +137,7 @@
/*
extern lzma_ret
-lzma_alone_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_alone_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_options_alone *options)
{
lzma_next_coder_init(&alone_encoder_init, next, allocator, options);
Modified: vendor/xz/dist/src/liblzma/common/auto_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/auto_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/auto_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -30,7 +30,7 @@
static lzma_ret
-auto_decode(lzma_coder *coder, lzma_allocator *allocator,
+auto_decode(lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size, lzma_action action)
@@ -100,7 +100,7 @@
static void
-auto_decoder_end(lzma_coder *coder, lzma_allocator *allocator)
+auto_decoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_next_end(&coder->next, allocator);
lzma_free(coder, allocator);
@@ -143,7 +143,7 @@
static lzma_ret
-auto_decoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+auto_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
uint64_t memlimit, uint32_t flags)
{
lzma_next_coder_init(&auto_decoder_init, next, allocator);
Modified: vendor/xz/dist/src/liblzma/common/block_buffer_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/block_buffer_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/block_buffer_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -14,7 +14,7 @@
extern LZMA_API(lzma_ret)
-lzma_block_buffer_decode(lzma_block *block, lzma_allocator *allocator,
+lzma_block_buffer_decode(lzma_block *block, const lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
{
Modified: vendor/xz/dist/src/liblzma/common/block_buffer_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/block_buffer_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/block_buffer_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -10,6 +10,7 @@
//
///////////////////////////////////////////////////////////////////////////////
+#include "block_buffer_encoder.h"
#include "block_encoder.h"
#include "filter_encoder.h"
#include "lzma2_encoder.h"
@@ -28,8 +29,8 @@
+ LZMA_CHECK_SIZE_MAX + 3) & ~3)
-static lzma_vli
-lzma2_bound(lzma_vli uncompressed_size)
+static uint64_t
+lzma2_bound(uint64_t uncompressed_size)
{
// Prevent integer overflow in overhead calculation.
if (uncompressed_size > COMPRESSED_SIZE_MAX)
@@ -39,7 +40,7 @@
// uncompressed_size up to the next multiple of LZMA2_CHUNK_MAX,
// multiply by the size of per-chunk header, and add one byte for
// the end marker.
- const lzma_vli overhead = ((uncompressed_size + LZMA2_CHUNK_MAX - 1)
+ const uint64_t overhead = ((uncompressed_size + LZMA2_CHUNK_MAX - 1)
/ LZMA2_CHUNK_MAX)
* LZMA2_HEADER_UNCOMPRESSED + 1;
@@ -51,30 +52,36 @@
}
-extern LZMA_API(size_t)
-lzma_block_buffer_bound(size_t uncompressed_size)
+extern uint64_t
+lzma_block_buffer_bound64(uint64_t uncompressed_size)
{
- // For now, if the data doesn't compress, we always use uncompressed
- // chunks of LZMA2. In future we may use Subblock filter too, but
- // but for simplicity we probably will still use the same bound
- // calculation even though Subblock filter would have slightly less
- // overhead.
- lzma_vli lzma2_size = lzma2_bound(uncompressed_size);
+ // If the data doesn't compress, we always use uncompressed
+ // LZMA2 chunks.
+ uint64_t lzma2_size = lzma2_bound(uncompressed_size);
if (lzma2_size == 0)
return 0;
// Take Block Padding into account.
- lzma2_size = (lzma2_size + 3) & ~LZMA_VLI_C(3);
+ lzma2_size = (lzma2_size + 3) & ~UINT64_C(3);
-#if SIZE_MAX < LZMA_VLI_MAX
- // Catch the possible integer overflow on 32-bit systems. There's no
- // overflow on 64-bit systems, because lzma2_bound() already takes
+ // No risk of integer overflow because lzma2_bound() already takes
// into account the size of the headers in the Block.
- if (SIZE_MAX - HEADERS_BOUND < lzma2_size)
+ return HEADERS_BOUND + lzma2_size;
+}
+
+
+extern LZMA_API(size_t)
+lzma_block_buffer_bound(size_t uncompressed_size)
+{
+ uint64_t ret = lzma_block_buffer_bound64(uncompressed_size);
+
+#if SIZE_MAX < UINT64_MAX
+ // Catch the possible integer overflow on 32-bit systems.
+ if (ret > SIZE_MAX)
return 0;
#endif
- return HEADERS_BOUND + lzma2_size;
+ return ret;
}
@@ -82,9 +89,6 @@
block_encode_uncompressed(lzma_block *block, const uint8_t *in, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
{
- // TODO: Figure out if the last filter is LZMA2 or Subblock and use
- // that filter to encode the uncompressed chunks.
-
// Use LZMA2 uncompressed chunks. We wouldn't need a dictionary at
// all, but LZMA2 always requires a dictionary, so use the minimum
// value to minimize memory usage of the decoder.
@@ -160,16 +164,11 @@
static lzma_ret
-block_encode_normal(lzma_block *block, lzma_allocator *allocator,
+block_encode_normal(lzma_block *block, const lzma_allocator *allocator,
const uint8_t *in, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
{
// Find out the size of the Block Header.
- block->compressed_size = lzma2_bound(in_size);
- if (block->compressed_size == 0)
- return LZMA_DATA_ERROR;
-
- block->uncompressed_size = in_size;
return_if_error(lzma_block_header_size(block));
// Reserve space for the Block Header and skip it for now.
@@ -221,10 +220,11 @@
}
-extern LZMA_API(lzma_ret)
-lzma_block_buffer_encode(lzma_block *block, lzma_allocator *allocator,
+static lzma_ret
+block_buffer_encode(lzma_block *block, const lzma_allocator *allocator,
const uint8_t *in, size_t in_size,
- uint8_t *out, size_t *out_pos, size_t out_size)
+ uint8_t *out, size_t *out_pos, size_t out_size,
+ bool try_to_compress)
{
// Validate the arguments.
if (block == NULL || (in == NULL && in_size != 0) || out == NULL
@@ -233,11 +233,11 @@
// The contents of the structure may depend on the version so
// check the version before validating the contents of *block.
- if (block->version != 0)
+ if (block->version > 1)
return LZMA_OPTIONS_ERROR;
if ((unsigned int)(block->check) > LZMA_CHECK_ID_MAX
- || block->filters == NULL)
+ || (try_to_compress && block->filters == NULL))
return LZMA_PROG_ERROR;
if (!lzma_check_is_supported(block->check))
@@ -258,9 +258,19 @@
out_size -= check_size;
+ // Initialize block->uncompressed_size and calculate the worst-case
+ // value for block->compressed_size.
+ block->uncompressed_size = in_size;
+ block->compressed_size = lzma2_bound(in_size);
+ if (block->compressed_size == 0)
+ return LZMA_DATA_ERROR;
+
// Do the actual compression.
- const lzma_ret ret = block_encode_normal(block, allocator,
- in, in_size, out, out_pos, out_size);
+ lzma_ret ret = LZMA_BUF_ERROR;
+ if (try_to_compress)
+ ret = block_encode_normal(block, allocator,
+ in, in_size, out, out_pos, out_size);
+
if (ret != LZMA_OK) {
// If the error was something else than output buffer
// becoming full, return the error now.
@@ -303,3 +313,25 @@
return LZMA_OK;
}
+
+
+extern LZMA_API(lzma_ret)
+lzma_block_buffer_encode(lzma_block *block, const lzma_allocator *allocator,
+ const uint8_t *in, size_t in_size,
+ uint8_t *out, size_t *out_pos, size_t out_size)
+{
+ return block_buffer_encode(block, allocator,
+ in, in_size, out, out_pos, out_size, true);
+}
+
+
+extern LZMA_API(lzma_ret)
+lzma_block_uncomp_encode(lzma_block *block,
+ const uint8_t *in, size_t in_size,
+ uint8_t *out, size_t *out_pos, size_t out_size)
+{
+ // It won't allocate any memory from heap so no need
+ // for lzma_allocator.
+ return block_buffer_encode(block, NULL,
+ in, in_size, out, out_pos, out_size, false);
+}
Added: vendor/xz/dist/src/liblzma/common/block_buffer_encoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/block_buffer_encoder.h (rev 0)
+++ vendor/xz/dist/src/liblzma/common/block_buffer_encoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+/// \file block_buffer_encoder.h
+/// \brief Single-call .xz Block encoder
+//
+// Author: Lasse Collin
+//
+// This file has been put into the public domain.
+// You can do whatever you want with this file.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef LZMA_BLOCK_BUFFER_ENCODER_H
+#define LZMA_BLOCK_BUFFER_ENCODER_H
+
+#include "common.h"
+
+
+/// uint64_t version of lzma_block_buffer_bound(). It is used by
+/// stream_encoder_mt.c. Probably the original lzma_block_buffer_bound()
+/// should have been 64-bit, but fixing it would break the ABI.
+extern uint64_t lzma_block_buffer_bound64(uint64_t uncompressed_size);
+
+#endif
Modified: vendor/xz/dist/src/liblzma/common/block_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/block_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/block_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -45,6 +45,9 @@
/// Check of the uncompressed data
lzma_check_state check;
+
+ /// True if the integrity check won't be calculated and verified.
+ bool ignore_check;
};
@@ -71,7 +74,7 @@
static lzma_ret
-block_decode(lzma_coder *coder, lzma_allocator *allocator,
+block_decode(lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size, lzma_action action)
@@ -97,8 +100,9 @@
coder->block->uncompressed_size))
return LZMA_DATA_ERROR;
- lzma_check_update(&coder->check, coder->block->check,
- out + out_start, out_used);
+ if (!coder->ignore_check)
+ lzma_check_update(&coder->check, coder->block->check,
+ out + out_start, out_used);
if (ret != LZMA_STREAM_END)
return ret;
@@ -140,7 +144,9 @@
if (coder->block->check == LZMA_CHECK_NONE)
return LZMA_STREAM_END;
- lzma_check_finish(&coder->check, coder->block->check);
+ if (!coder->ignore_check)
+ lzma_check_finish(&coder->check, coder->block->check);
+
coder->sequence = SEQ_CHECK;
// Fall through
@@ -155,7 +161,8 @@
// Validate the Check only if we support it.
// coder->check.buffer may be uninitialized
// when the Check ID is not supported.
- if (lzma_check_is_supported(coder->block->check)
+ if (!coder->ignore_check
+ && lzma_check_is_supported(coder->block->check)
&& memcmp(coder->block->raw_check,
coder->check.buffer.u8,
check_size) != 0)
@@ -170,7 +177,7 @@
static void
-block_decoder_end(lzma_coder *coder, lzma_allocator *allocator)
+block_decoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_next_end(&coder->next, allocator);
lzma_free(coder, allocator);
@@ -179,7 +186,7 @@
extern lzma_ret
-lzma_block_decoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_block_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
lzma_block *block)
{
lzma_next_coder_init(&lzma_block_decoder_init, next, allocator);
@@ -224,6 +231,9 @@
next->coder->check_pos = 0;
lzma_check_init(&next->coder->check, block->check);
+ next->coder->ignore_check = block->version >= 1
+ ? block->ignore_check : false;
+
// Initialize the filter chain.
return lzma_raw_decoder_init(&next->coder->next, allocator,
block->filters);
Modified: vendor/xz/dist/src/liblzma/common/block_decoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/block_decoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/block_decoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -17,6 +17,6 @@
extern lzma_ret lzma_block_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, lzma_block *block);
+ const lzma_allocator *allocator, lzma_block *block);
#endif
Modified: vendor/xz/dist/src/liblzma/common/block_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/block_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/block_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -45,7 +45,7 @@
static lzma_ret
-block_encode(lzma_coder *coder, lzma_allocator *allocator,
+block_encode(lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size, lzma_action action)
@@ -134,7 +134,7 @@
static void
-block_encoder_end(lzma_coder *coder, lzma_allocator *allocator)
+block_encoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_next_end(&coder->next, allocator);
lzma_free(coder, allocator);
@@ -143,7 +143,7 @@
static lzma_ret
-block_encoder_update(lzma_coder *coder, lzma_allocator *allocator,
+block_encoder_update(lzma_coder *coder, const lzma_allocator *allocator,
const lzma_filter *filters lzma_attribute((__unused__)),
const lzma_filter *reversed_filters)
{
@@ -156,7 +156,7 @@
extern lzma_ret
-lzma_block_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_block_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
lzma_block *block)
{
lzma_next_coder_init(&lzma_block_encoder_init, next, allocator);
@@ -166,7 +166,7 @@
// The contents of the structure may depend on the version so
// check the version first.
- if (block->version != 0)
+ if (block->version > 1)
return LZMA_OPTIONS_ERROR;
// If the Check ID is not supported, we cannot calculate the check and
Modified: vendor/xz/dist/src/liblzma/common/block_encoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/block_encoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/block_encoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -42,6 +42,6 @@
extern lzma_ret lzma_block_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, lzma_block *block);
+ const lzma_allocator *allocator, lzma_block *block);
#endif
Modified: vendor/xz/dist/src/liblzma/common/block_header_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/block_header_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/block_header_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -15,7 +15,7 @@
static void
-free_properties(lzma_block *block, lzma_allocator *allocator)
+free_properties(lzma_block *block, const lzma_allocator *allocator)
{
// Free allocated filter options. The last array member is not
// touched after the initialization in the beginning of
@@ -32,7 +32,7 @@
extern LZMA_API(lzma_ret)
lzma_block_header_decode(lzma_block *block,
- lzma_allocator *allocator, const uint8_t *in)
+ const lzma_allocator *allocator, const uint8_t *in)
{
// NOTE: We consider the header to be corrupt not only when the
// CRC32 doesn't match, but also when variable-length integers
@@ -46,9 +46,17 @@
block->filters[i].options = NULL;
}
- // Always zero for now.
- block->version = 0;
+ // Versions 0 and 1 are supported. If a newer version was specified,
+ // we need to downgrade it.
+ if (block->version > 1)
+ block->version = 1;
+ // This isn't a Block Header option, but since the decompressor will
+ // read it if version >= 1, it's better to initialize it here than
+ // to expect the caller to do it since in almost all cases this
+ // should be false.
+ block->ignore_check = false;
+
// Validate Block Header Size and Check type. The caller must have
// already set these, so it is a programming error if this test fails.
if (lzma_block_header_size_decode(in[0]) != block->header_size
Modified: vendor/xz/dist/src/liblzma/common/block_header_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/block_header_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/block_header_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -17,7 +17,7 @@
extern LZMA_API(lzma_ret)
lzma_block_header_size(lzma_block *block)
{
- if (block->version != 0)
+ if (block->version > 1)
return LZMA_OPTIONS_ERROR;
// Block Header Size + Block Flags + CRC32.
Modified: vendor/xz/dist/src/liblzma/common/block_util.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/block_util.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/block_util.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -51,7 +51,7 @@
// NOTE: This function is used for validation too, so it is
// essential that these checks are always done even if
// Compressed Size is unknown.
- if (block == NULL || block->version != 0
+ if (block == NULL || block->version > 1
|| block->header_size < LZMA_BLOCK_HEADER_SIZE_MIN
|| block->header_size > LZMA_BLOCK_HEADER_SIZE_MAX
|| (block->header_size & 3)
Modified: vendor/xz/dist/src/liblzma/common/common.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/common.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/common.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -36,7 +36,7 @@
///////////////////////
extern void * lzma_attribute((__malloc__)) lzma_attr_alloc_size(1)
-lzma_alloc(size_t size, lzma_allocator *allocator)
+lzma_alloc(size_t size, const lzma_allocator *allocator)
{
// Some malloc() variants return NULL if called with size == 0.
if (size == 0)
@@ -53,8 +53,29 @@
}
+extern void * lzma_attribute((__malloc__)) lzma_attr_alloc_size(1)
+lzma_alloc_zero(size_t size, const lzma_allocator *allocator)
+{
+ // Some calloc() variants return NULL if called with size == 0.
+ if (size == 0)
+ size = 1;
+
+ void *ptr;
+
+ if (allocator != NULL && allocator->alloc != NULL) {
+ ptr = allocator->alloc(allocator->opaque, 1, size);
+ if (ptr != NULL)
+ memzero(ptr, size);
+ } else {
+ ptr = calloc(1, size);
+ }
+
+ return ptr;
+}
+
+
extern void
-lzma_free(void *ptr, lzma_allocator *allocator)
+lzma_free(void *ptr, const lzma_allocator *allocator)
{
if (allocator != NULL && allocator->free != NULL)
allocator->free(allocator->opaque, ptr);
@@ -88,7 +109,7 @@
extern lzma_ret
-lzma_next_filter_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_next_filter_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters)
{
lzma_next_coder_init(filters[0].init, next, allocator);
@@ -99,7 +120,7 @@
extern lzma_ret
-lzma_next_filter_update(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_next_filter_update(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter *reversed_filters)
{
// Check that the application isn't trying to change the Filter ID.
@@ -117,7 +138,7 @@
extern void
-lzma_next_end(lzma_next_coder *next, lzma_allocator *allocator)
+lzma_next_end(lzma_next_coder *next, const lzma_allocator *allocator)
{
if (next->init != (uintptr_t)(NULL)) {
// To avoid tiny end functions that simply call
@@ -156,10 +177,8 @@
strm->internal->next = LZMA_NEXT_CODER_INIT;
}
- strm->internal->supported_actions[LZMA_RUN] = false;
- strm->internal->supported_actions[LZMA_SYNC_FLUSH] = false;
- strm->internal->supported_actions[LZMA_FULL_FLUSH] = false;
- strm->internal->supported_actions[LZMA_FINISH] = false;
+ memzero(strm->internal->supported_actions,
+ sizeof(strm->internal->supported_actions));
strm->internal->sequence = ISEQ_RUN;
strm->internal->allow_buf_error = false;
@@ -178,7 +197,7 @@
|| (strm->next_out == NULL && strm->avail_out != 0)
|| strm->internal == NULL
|| strm->internal->next.code == NULL
- || (unsigned int)(action) > LZMA_FINISH
+ || (unsigned int)(action) > LZMA_ACTION_MAX
|| !strm->internal->supported_actions[action])
return LZMA_PROG_ERROR;
@@ -213,6 +232,10 @@
case LZMA_FINISH:
strm->internal->sequence = ISEQ_FINISH;
break;
+
+ case LZMA_FULL_BARRIER:
+ strm->internal->sequence = ISEQ_FULL_BARRIER;
+ break;
}
break;
@@ -240,6 +263,13 @@
break;
+ case ISEQ_FULL_BARRIER:
+ if (action != LZMA_FULL_BARRIER
+ || strm->internal->avail_in != strm->avail_in)
+ return LZMA_PROG_ERROR;
+
+ break;
+
case ISEQ_END:
return LZMA_STREAM_END;
@@ -265,7 +295,9 @@
strm->internal->avail_in = strm->avail_in;
- switch (ret) {
+ // Cast is needed to silence a warning about LZMA_TIMED_OUT, which
+ // isn't part of lzma_ret enumeration.
+ switch ((unsigned int)(ret)) {
case LZMA_OK:
// Don't return LZMA_BUF_ERROR when it happens the first time.
// This is to avoid returning LZMA_BUF_ERROR when avail_out
@@ -281,9 +313,16 @@
}
break;
+ case LZMA_TIMED_OUT:
+ strm->internal->allow_buf_error = false;
+ ret = LZMA_OK;
+ break;
+
case LZMA_STREAM_END:
if (strm->internal->sequence == ISEQ_SYNC_FLUSH
- || strm->internal->sequence == ISEQ_FULL_FLUSH)
+ || strm->internal->sequence == ISEQ_FULL_FLUSH
+ || strm->internal->sequence
+ == ISEQ_FULL_BARRIER)
strm->internal->sequence = ISEQ_RUN;
else
strm->internal->sequence = ISEQ_END;
@@ -323,6 +362,22 @@
}
+extern LZMA_API(void)
+lzma_get_progress(lzma_stream *strm,
+ uint64_t *progress_in, uint64_t *progress_out)
+{
+ if (strm->internal->next.get_progress != NULL) {
+ strm->internal->next.get_progress(strm->internal->next.coder,
+ progress_in, progress_out);
+ } else {
+ *progress_in = strm->total_in;
+ *progress_out = strm->total_out;
+ }
+
+ return;
+}
+
+
extern LZMA_API(lzma_check)
lzma_get_check(const lzma_stream *strm)
{
Modified: vendor/xz/dist/src/liblzma/common/common.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/common.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/common.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -49,6 +49,13 @@
#define LZMA_BUFFER_SIZE 4096
+/// Maximum number of worker threads within one multithreaded component.
+/// The limit exists solely to make it simpler to prevent integer overflows
+/// when allocating structures etc. This should be big enough for now...
+/// the code won't scale anywhere close to this number anyway.
+#define LZMA_THREADS_MAX 16384
+
+
/// Starting value for memory usage estimates. Instead of calculating size
/// of _every_ structure and taking into account malloc() overhead etc., we
/// add a base size to all memory usage estimates. It's not very accurate
@@ -66,9 +73,21 @@
( LZMA_TELL_NO_CHECK \
| LZMA_TELL_UNSUPPORTED_CHECK \
| LZMA_TELL_ANY_CHECK \
+ | LZMA_IGNORE_CHECK \
| LZMA_CONCATENATED )
+/// Largest valid lzma_action value as unsigned integer.
+#define LZMA_ACTION_MAX ((unsigned int)(LZMA_FULL_BARRIER))
+
+
+/// Special return value (lzma_ret) to indicate that a timeout was reached
+/// and lzma_code() must not return LZMA_BUF_ERROR. This is converted to
+/// LZMA_OK in lzma_code(). This is not in the lzma_ret enumeration because
+/// there's no need to have it in the public API.
+#define LZMA_TIMED_OUT 32
+
+
/// Type of encoder/decoder specific data; the actual structure is defined
/// differently in different coders.
typedef struct lzma_coder_s lzma_coder;
@@ -80,7 +99,7 @@
/// Type of a function used to initialize a filter encoder or decoder
typedef lzma_ret (*lzma_init_function)(
- lzma_next_coder *next, lzma_allocator *allocator,
+ lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters);
/// Type of a function to do some kind of coding work (filters, Stream,
@@ -88,7 +107,7 @@
/// input and output buffers, but for simplicity they still use this same
/// function prototype.
typedef lzma_ret (*lzma_code_function)(
- lzma_coder *coder, lzma_allocator *allocator,
+ lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size,
@@ -96,7 +115,7 @@
/// Type of a function to free the memory allocated for the coder
typedef void (*lzma_end_function)(
- lzma_coder *coder, lzma_allocator *allocator);
+ lzma_coder *coder, const lzma_allocator *allocator);
/// Raw coder validates and converts an array of lzma_filter structures to
@@ -139,6 +158,11 @@
/// lzma_next_coder.coder.
lzma_end_function end;
+ /// Pointer to a function to get progress information. If this is NULL,
+ /// lzma_stream.total_in and .total_out are used instead.
+ void (*get_progress)(lzma_coder *coder,
+ uint64_t *progress_in, uint64_t *progress_out);
+
/// Pointer to function to return the type of the integrity check.
/// Most coders won't support this.
lzma_check (*get_check)(const lzma_coder *coder);
@@ -150,7 +174,7 @@
/// Update the filter-specific options or the whole filter chain
/// in the encoder.
- lzma_ret (*update)(lzma_coder *coder, lzma_allocator *allocator,
+ lzma_ret (*update)(lzma_coder *coder, const lzma_allocator *allocator,
const lzma_filter *filters,
const lzma_filter *reversed_filters);
};
@@ -164,6 +188,7 @@
.id = LZMA_VLI_UNKNOWN, \
.code = NULL, \
.end = NULL, \
+ .get_progress = NULL, \
.get_check = NULL, \
.memconfig = NULL, \
.update = NULL, \
@@ -185,6 +210,7 @@
ISEQ_SYNC_FLUSH,
ISEQ_FULL_FLUSH,
ISEQ_FINISH,
+ ISEQ_FULL_BARRIER,
ISEQ_END,
ISEQ_ERROR,
} sequence;
@@ -195,7 +221,7 @@
size_t avail_in;
/// Indicates which lzma_action values are allowed by next.code.
- bool supported_actions[4];
+ bool supported_actions[LZMA_ACTION_MAX + 1];
/// If true, lzma_code will return LZMA_BUF_ERROR if no progress was
/// made (no input consumed and no output produced by next.code).
@@ -204,11 +230,17 @@
/// Allocates memory
-extern void *lzma_alloc(size_t size, lzma_allocator *allocator)
+extern void *lzma_alloc(size_t size, const lzma_allocator *allocator)
lzma_attribute((__malloc__)) lzma_attr_alloc_size(1);
+/// Allocates memory and zeroes it (like calloc()). This can be faster
+/// than lzma_alloc() + memzero() while being backward compatible with
+/// custom allocators.
+extern void * lzma_attribute((__malloc__)) lzma_attr_alloc_size(1)
+ lzma_alloc_zero(size_t size, const lzma_allocator *allocator);
+
/// Frees memory
-extern void lzma_free(void *ptr, lzma_allocator *allocator);
+extern void lzma_free(void *ptr, const lzma_allocator *allocator);
/// Allocates strm->internal if it is NULL, and initializes *strm and
@@ -220,17 +252,19 @@
/// than the filter being initialized now. This way the actual filter
/// initialization functions don't need to use lzma_next_coder_init macro.
extern lzma_ret lzma_next_filter_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
/// Update the next filter in the chain, if any. This checks that
/// the application is not trying to change the Filter IDs.
extern lzma_ret lzma_next_filter_update(
- lzma_next_coder *next, lzma_allocator *allocator,
+ lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter *reversed_filters);
/// Frees the memory allocated for next->coder either using next->end or,
/// if next->end is NULL, using lzma_free.
-extern void lzma_next_end(lzma_next_coder *next, lzma_allocator *allocator);
+extern void lzma_next_end(lzma_next_coder *next,
+ const lzma_allocator *allocator);
/// Copy as much data as possible from in[] to out[] and update *in_pos
Modified: vendor/xz/dist/src/liblzma/common/easy_buffer_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/easy_buffer_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/easy_buffer_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -15,8 +15,8 @@
extern LZMA_API(lzma_ret)
lzma_easy_buffer_encode(uint32_t preset, lzma_check check,
- lzma_allocator *allocator, const uint8_t *in, size_t in_size,
- uint8_t *out, size_t *out_pos, size_t out_size)
+ const lzma_allocator *allocator, const uint8_t *in,
+ size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size)
{
lzma_options_easy opt_easy;
if (lzma_easy_preset(&opt_easy, preset))
Modified: vendor/xz/dist/src/liblzma/common/easy_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/easy_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/easy_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -11,7 +11,6 @@
///////////////////////////////////////////////////////////////////////////////
#include "easy_preset.h"
-#include "stream_encoder.h"
extern LZMA_API(lzma_ret)
Modified: vendor/xz/dist/src/liblzma/common/filter_buffer_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/filter_buffer_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/filter_buffer_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -14,7 +14,8 @@
extern LZMA_API(lzma_ret)
-lzma_raw_buffer_decode(const lzma_filter *filters, lzma_allocator *allocator,
+lzma_raw_buffer_decode(
+ const lzma_filter *filters, const lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
{
Modified: vendor/xz/dist/src/liblzma/common/filter_buffer_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/filter_buffer_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/filter_buffer_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -14,9 +14,10 @@
extern LZMA_API(lzma_ret)
-lzma_raw_buffer_encode(const lzma_filter *filters, lzma_allocator *allocator,
- const uint8_t *in, size_t in_size, uint8_t *out,
- size_t *out_pos, size_t out_size)
+lzma_raw_buffer_encode(
+ const lzma_filter *filters, const lzma_allocator *allocator,
+ const uint8_t *in, size_t in_size,
+ uint8_t *out, size_t *out_pos, size_t out_size)
{
// Validate what isn't validated later in filter_common.c.
if ((in == NULL && in_size != 0) || out == NULL
Modified: vendor/xz/dist/src/liblzma/common/filter_common.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/filter_common.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/filter_common.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -123,7 +123,7 @@
extern LZMA_API(lzma_ret)
lzma_filters_copy(const lzma_filter *src, lzma_filter *dest,
- lzma_allocator *allocator)
+ const lzma_allocator *allocator)
{
if (src == NULL || dest == NULL)
return LZMA_PROG_ERROR;
@@ -239,7 +239,7 @@
extern lzma_ret
-lzma_raw_coder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_raw_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter *options,
lzma_filter_find coder_find, bool is_encoder)
{
Modified: vendor/xz/dist/src/liblzma/common/filter_common.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/filter_common.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/filter_common.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -36,7 +36,7 @@
extern lzma_ret lzma_raw_coder_init(
- lzma_next_coder *next, lzma_allocator *allocator,
+ lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter *filters,
lzma_filter_find coder_find, bool is_encoder);
Modified: vendor/xz/dist/src/liblzma/common/filter_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/filter_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/filter_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -35,7 +35,8 @@
/// \return - LZMA_OK: Properties decoded successfully.
/// - LZMA_OPTIONS_ERROR: Unsupported properties
/// - LZMA_MEM_ERROR: Memory allocation failed.
- lzma_ret (*props_decode)(void **options, lzma_allocator *allocator,
+ lzma_ret (*props_decode)(
+ void **options, const lzma_allocator *allocator,
const uint8_t *props, size_t props_size);
} lzma_filter_decoder;
@@ -136,7 +137,7 @@
extern lzma_ret
-lzma_raw_decoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_raw_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter *options)
{
return lzma_raw_coder_init(next, allocator,
@@ -165,7 +166,7 @@
extern LZMA_API(lzma_ret)
-lzma_properties_decode(lzma_filter *filter, lzma_allocator *allocator,
+lzma_properties_decode(lzma_filter *filter, const lzma_allocator *allocator,
const uint8_t *props, size_t props_size)
{
// Make it always NULL so that the caller can always safely free() it.
Modified: vendor/xz/dist/src/liblzma/common/filter_decoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/filter_decoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/filter_decoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -17,7 +17,7 @@
extern lzma_ret lzma_raw_decoder_init(
- lzma_next_coder *next, lzma_allocator *allocator,
+ lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter *options);
#endif
Modified: vendor/xz/dist/src/liblzma/common/filter_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/filter_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/filter_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -30,11 +30,11 @@
/// invalid, UINT64_MAX is returned.
uint64_t (*memusage)(const void *options);
- /// Calculates the minimum sane size for Blocks (or other types of
- /// chunks) to which the input data can be split to make
- /// multithreaded encoding possible. If this is NULL, it is assumed
- /// that the encoder is fast enough with single thread.
- lzma_vli (*chunk_size)(const void *options);
+ /// Calculates the recommended Uncompressed Size for .xz Blocks to
+ /// which the input data can be split to make multithreaded
+ /// encoding possible. If this is NULL, it is assumed that
+ /// the encoder is fast enough with single thread.
+ uint64_t (*block_size)(const void *options);
/// Tells the size of the Filter Properties field. If options are
/// invalid, UINT32_MAX is returned. If this is NULL, props_size_fixed
@@ -59,7 +59,7 @@
.id = LZMA_FILTER_LZMA1,
.init = &lzma_lzma_encoder_init,
.memusage = &lzma_lzma_encoder_memusage,
- .chunk_size = NULL, // FIXME
+ .block_size = NULL, // FIXME
.props_size_get = NULL,
.props_size_fixed = 5,
.props_encode = &lzma_lzma_props_encode,
@@ -70,7 +70,7 @@
.id = LZMA_FILTER_LZMA2,
.init = &lzma_lzma2_encoder_init,
.memusage = &lzma_lzma2_encoder_memusage,
- .chunk_size = NULL, // FIXME
+ .block_size = &lzma_lzma2_block_size, // FIXME
.props_size_get = NULL,
.props_size_fixed = 1,
.props_encode = &lzma_lzma2_props_encode,
@@ -81,7 +81,7 @@
.id = LZMA_FILTER_X86,
.init = &lzma_simple_x86_encoder_init,
.memusage = NULL,
- .chunk_size = NULL,
+ .block_size = NULL,
.props_size_get = &lzma_simple_props_size,
.props_encode = &lzma_simple_props_encode,
},
@@ -91,7 +91,7 @@
.id = LZMA_FILTER_POWERPC,
.init = &lzma_simple_powerpc_encoder_init,
.memusage = NULL,
- .chunk_size = NULL,
+ .block_size = NULL,
.props_size_get = &lzma_simple_props_size,
.props_encode = &lzma_simple_props_encode,
},
@@ -101,7 +101,7 @@
.id = LZMA_FILTER_IA64,
.init = &lzma_simple_ia64_encoder_init,
.memusage = NULL,
- .chunk_size = NULL,
+ .block_size = NULL,
.props_size_get = &lzma_simple_props_size,
.props_encode = &lzma_simple_props_encode,
},
@@ -111,7 +111,7 @@
.id = LZMA_FILTER_ARM,
.init = &lzma_simple_arm_encoder_init,
.memusage = NULL,
- .chunk_size = NULL,
+ .block_size = NULL,
.props_size_get = &lzma_simple_props_size,
.props_encode = &lzma_simple_props_encode,
},
@@ -121,7 +121,7 @@
.id = LZMA_FILTER_ARMTHUMB,
.init = &lzma_simple_armthumb_encoder_init,
.memusage = NULL,
- .chunk_size = NULL,
+ .block_size = NULL,
.props_size_get = &lzma_simple_props_size,
.props_encode = &lzma_simple_props_encode,
},
@@ -131,7 +131,7 @@
.id = LZMA_FILTER_SPARC,
.init = &lzma_simple_sparc_encoder_init,
.memusage = NULL,
- .chunk_size = NULL,
+ .block_size = NULL,
.props_size_get = &lzma_simple_props_size,
.props_encode = &lzma_simple_props_encode,
},
@@ -141,7 +141,7 @@
.id = LZMA_FILTER_DELTA,
.init = &lzma_delta_encoder_init,
.memusage = &lzma_delta_coder_memusage,
- .chunk_size = NULL,
+ .block_size = NULL,
.props_size_get = NULL,
.props_size_fixed = 1,
.props_encode = &lzma_delta_props_encode,
@@ -196,7 +196,7 @@
extern lzma_ret
-lzma_raw_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_raw_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter *options)
{
return lzma_raw_coder_init(next, allocator,
@@ -226,20 +226,19 @@
}
-/*
-extern LZMA_API(lzma_vli)
-lzma_chunk_size(const lzma_filter *filters)
+extern uint64_t
+lzma_mt_block_size(const lzma_filter *filters)
{
- lzma_vli max = 0;
+ uint64_t max = 0;
for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i) {
const lzma_filter_encoder *const fe
= encoder_find(filters[i].id);
- if (fe->chunk_size != NULL) {
- const lzma_vli size
- = fe->chunk_size(filters[i].options);
- if (size == LZMA_VLI_UNKNOWN)
- return LZMA_VLI_UNKNOWN;
+ if (fe->block_size != NULL) {
+ const uint64_t size
+ = fe->block_size(filters[i].options);
+ if (size == 0)
+ return 0;
if (size > max)
max = size;
@@ -248,7 +247,6 @@
return max;
}
-*/
extern LZMA_API(lzma_ret)
Modified: vendor/xz/dist/src/liblzma/common/filter_encoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/filter_encoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/filter_encoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -16,12 +16,12 @@
#include "common.h"
-// FIXME: Might become a part of the public API once finished.
-// extern lzma_vli lzma_chunk_size(const lzma_filter *filters);
+// FIXME: Might become a part of the public API.
+extern uint64_t lzma_mt_block_size(const lzma_filter *filters);
extern lzma_ret lzma_raw_encoder_init(
- lzma_next_coder *next, lzma_allocator *allocator,
+ lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter *filters);
#endif
Modified: vendor/xz/dist/src/liblzma/common/filter_flags_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/filter_flags_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/filter_flags_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -15,7 +15,7 @@
extern LZMA_API(lzma_ret)
lzma_filter_flags_decode(
- lzma_filter *filter, lzma_allocator *allocator,
+ lzma_filter *filter, const lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size)
{
// Set the pointer to NULL so the caller can always safely free it.
Added: vendor/xz/dist/src/liblzma/common/hardware_cputhreads.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/hardware_cputhreads.c (rev 0)
+++ vendor/xz/dist/src/liblzma/common/hardware_cputhreads.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -0,0 +1,22 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+/// \file hardware_cputhreads.c
+/// \brief Get the number of CPU threads or cores
+//
+// Author: Lasse Collin
+//
+// This file has been put into the public domain.
+// You can do whatever you want with this file.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "common.h"
+
+#include "tuklib_cpucores.h"
+
+
+extern LZMA_API(uint32_t)
+lzma_cputhreads(void)
+{
+ return tuklib_cpucores();
+}
Modified: vendor/xz/dist/src/liblzma/common/index.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/index.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/index.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -191,8 +191,8 @@
/// Helper for index_tree_end()
static void
-index_tree_node_end(index_tree_node *node, lzma_allocator *allocator,
- void (*free_func)(void *node, lzma_allocator *allocator))
+index_tree_node_end(index_tree_node *node, const lzma_allocator *allocator,
+ void (*free_func)(void *node, const lzma_allocator *allocator))
{
// The tree won't ever be very huge, so recursion should be fine.
// 20 levels in the tree is likely quite a lot already in practice.
@@ -215,8 +215,8 @@
/// to free the Record groups from each index_stream before freeing
/// the index_stream itself.
static void
-index_tree_end(index_tree *tree, lzma_allocator *allocator,
- void (*free_func)(void *node, lzma_allocator *allocator))
+index_tree_end(index_tree *tree, const lzma_allocator *allocator,
+ void (*free_func)(void *node, const lzma_allocator *allocator))
{
if (tree->root != NULL)
index_tree_node_end(tree->root, allocator, free_func);
@@ -339,8 +339,8 @@
/// Allocate and initialize a new Stream using the given base offsets.
static index_stream *
index_stream_init(lzma_vli compressed_base, lzma_vli uncompressed_base,
- lzma_vli stream_number, lzma_vli block_number_base,
- lzma_allocator *allocator)
+ uint32_t stream_number, lzma_vli block_number_base,
+ const lzma_allocator *allocator)
{
index_stream *s = lzma_alloc(sizeof(index_stream), allocator);
if (s == NULL)
@@ -368,7 +368,7 @@
/// Free the memory allocated for a Stream and its Record groups.
static void
-index_stream_end(void *node, lzma_allocator *allocator)
+index_stream_end(void *node, const lzma_allocator *allocator)
{
index_stream *s = node;
index_tree_end(&s->groups, allocator, NULL);
@@ -377,7 +377,7 @@
static lzma_index *
-index_init_plain(lzma_allocator *allocator)
+index_init_plain(const lzma_allocator *allocator)
{
lzma_index *i = lzma_alloc(sizeof(lzma_index), allocator);
if (i != NULL) {
@@ -395,7 +395,7 @@
extern LZMA_API(lzma_index *)
-lzma_index_init(lzma_allocator *allocator)
+lzma_index_init(const lzma_allocator *allocator)
{
lzma_index *i = index_init_plain(allocator);
if (i == NULL)
@@ -414,7 +414,7 @@
extern LZMA_API(void)
-lzma_index_end(lzma_index *i, lzma_allocator *allocator)
+lzma_index_end(lzma_index *i, const lzma_allocator *allocator)
{
// NOTE: If you modify this function, check also the bottom
// of lzma_index_cat().
@@ -637,7 +637,7 @@
extern LZMA_API(lzma_ret)
-lzma_index_append(lzma_index *i, lzma_allocator *allocator,
+lzma_index_append(lzma_index *i, const lzma_allocator *allocator,
lzma_vli unpadded_size, lzma_vli uncompressed_size)
{
// Validate.
@@ -765,7 +765,7 @@
extern LZMA_API(lzma_ret)
lzma_index_cat(lzma_index *restrict dest, lzma_index *restrict src,
- lzma_allocator *allocator)
+ const lzma_allocator *allocator)
{
const lzma_vli dest_file_size = lzma_index_file_size(dest);
@@ -859,7 +859,7 @@
/// Duplicate an index_stream.
static index_stream *
-index_dup_stream(const index_stream *src, lzma_allocator *allocator)
+index_dup_stream(const index_stream *src, const lzma_allocator *allocator)
{
// Catch a somewhat theoretical integer overflow.
if (src->record_count > PREALLOC_MAX)
@@ -919,7 +919,7 @@
extern LZMA_API(lzma_index *)
-lzma_index_dup(const lzma_index *src, lzma_allocator *allocator)
+lzma_index_dup(const lzma_index *src, const lzma_allocator *allocator)
{
// Allocate the base structure (no initial Stream).
lzma_index *dest = index_init_plain(allocator);
@@ -1008,6 +1008,8 @@
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.block_count = stream->record_count;
iter->stream.compressed_offset = stream->node.compressed_base;
Modified: vendor/xz/dist/src/liblzma/common/index_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/index_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/index_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -54,7 +54,7 @@
static lzma_ret
-index_decode(lzma_coder *coder, lzma_allocator *allocator,
+index_decode(lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size,
uint8_t *restrict out lzma_attribute((__unused__)),
@@ -207,7 +207,7 @@
static void
-index_decoder_end(lzma_coder *coder, lzma_allocator *allocator)
+index_decoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_index_end(coder->index, allocator);
lzma_free(coder, allocator);
@@ -234,7 +234,7 @@
static lzma_ret
-index_decoder_reset(lzma_coder *coder, lzma_allocator *allocator,
+index_decoder_reset(lzma_coder *coder, const lzma_allocator *allocator,
lzma_index **i, uint64_t memlimit)
{
// Remember the pointer given by the application. We will set it
@@ -261,7 +261,7 @@
static lzma_ret
-index_decoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+index_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
lzma_index **i, uint64_t memlimit)
{
lzma_next_coder_init(&index_decoder_init, next, allocator);
@@ -299,8 +299,8 @@
extern LZMA_API(lzma_ret)
-lzma_index_buffer_decode(
- lzma_index **i, uint64_t *memlimit, lzma_allocator *allocator,
+lzma_index_buffer_decode(lzma_index **i, uint64_t *memlimit,
+ const lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size)
{
// Sanity checks
Modified: vendor/xz/dist/src/liblzma/common/index_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/index_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/index_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -42,7 +42,7 @@
static lzma_ret
index_encode(lzma_coder *coder,
- lzma_allocator *allocator lzma_attribute((__unused__)),
+ const lzma_allocator *allocator lzma_attribute((__unused__)),
const uint8_t *restrict in lzma_attribute((__unused__)),
size_t *restrict in_pos lzma_attribute((__unused__)),
size_t in_size lzma_attribute((__unused__)),
@@ -159,7 +159,7 @@
static void
-index_encoder_end(lzma_coder *coder, lzma_allocator *allocator)
+index_encoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_free(coder, allocator);
return;
@@ -181,7 +181,7 @@
extern lzma_ret
-lzma_index_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_index_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_index *i)
{
lzma_next_coder_init(&lzma_index_encoder_init, next, allocator);
Modified: vendor/xz/dist/src/liblzma/common/index_encoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/index_encoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/index_encoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -17,7 +17,7 @@
extern lzma_ret lzma_index_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_index *i);
+ const lzma_allocator *allocator, const lzma_index *i);
#endif
Modified: vendor/xz/dist/src/liblzma/common/index_hash.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/index_hash.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/index_hash.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -70,7 +70,8 @@
extern LZMA_API(lzma_index_hash *)
-lzma_index_hash_init(lzma_index_hash *index_hash, lzma_allocator *allocator)
+lzma_index_hash_init(lzma_index_hash *index_hash,
+ const lzma_allocator *allocator)
{
if (index_hash == NULL) {
index_hash = lzma_alloc(sizeof(lzma_index_hash), allocator);
@@ -101,7 +102,8 @@
extern LZMA_API(void)
-lzma_index_hash_end(lzma_index_hash *index_hash, lzma_allocator *allocator)
+lzma_index_hash_end(lzma_index_hash *index_hash,
+ const lzma_allocator *allocator)
{
lzma_free(index_hash, allocator);
return;
Added: vendor/xz/dist/src/liblzma/common/memcmplen.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/memcmplen.h (rev 0)
+++ vendor/xz/dist/src/liblzma/common/memcmplen.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -0,0 +1,175 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+/// \file memcmplen.h
+/// \brief Optimized comparison of two buffers
+//
+// Author: Lasse Collin
+//
+// This file has been put into the public domain.
+// You can do whatever you want with this file.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef LZMA_MEMCMPLEN_H
+#define LZMA_MEMCMPLEN_H
+
+#include "common.h"
+
+#ifdef HAVE_IMMINTRIN_H
+# include <immintrin.h>
+#endif
+
+
+/// Find out how many equal bytes the two buffers have.
+///
+/// \param buf1 First buffer
+/// \param buf2 Second buffer
+/// \param len How many bytes have already been compared and will
+/// be assumed to match
+/// \param limit How many bytes to compare at most, including the
+/// already-compared bytes. This must be significantly
+/// smaller than UINT32_MAX to avoid integer overflows.
+/// Up to LZMA_MEMCMPLEN_EXTRA bytes may be read past
+/// the specified limit from both buf1 and buf2.
+///
+/// \return Number of equal bytes in the buffers is returned.
+/// This is always at least len and at most limit.
+///
+/// \note LZMA_MEMCMPLEN_EXTRA defines how many extra bytes may be read.
+/// It's rounded up to 2^n. This extra amount needs to be
+/// allocated in the buffers being used. It needs to be
+/// initialized too to keep Valgrind quiet.
+static inline uint32_t lzma_attribute((__always_inline__))
+lzma_memcmplen(const uint8_t *buf1, const uint8_t *buf2,
+ uint32_t len, uint32_t limit)
+{
+ assert(len <= limit);
+ assert(limit <= UINT32_MAX / 2);
+
+#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+ && ((TUKLIB_GNUC_REQ(3, 4) && defined(__x86_64__)) \
+ || (defined(__INTEL_COMPILER) && defined(__x86_64__)) \
+ || (defined(__INTEL_COMPILER) && defined(_M_X64)) \
+ || (defined(_MSC_VER) && defined(_M_X64)))
+ // NOTE: This will use 64-bit unaligned access which
+ // TUKLIB_FAST_UNALIGNED_ACCESS wasn't meant to permit, but
+ // it's convenient here at least as long as it's x86-64 only.
+ //
+ // I keep this x86-64 only for now since that's where I know this
+ // to be a good method. This may be fine on other 64-bit CPUs too.
+ // On big endian one should use xor instead of subtraction and switch
+ // to __builtin_clzll().
+#define LZMA_MEMCMPLEN_EXTRA 8
+ while (len < limit) {
+ const uint64_t x = *(const uint64_t *)(buf1 + len)
+ - *(const uint64_t *)(buf2 + len);
+ if (x != 0) {
+# if defined(_M_X64) // MSVC or Intel C compiler on Windows
+ unsigned long tmp;
+ _BitScanForward64(&tmp, x);
+ len += (uint32_t)tmp >> 3;
+# else // GCC, clang, or Intel C compiler
+ len += (uint32_t)__builtin_ctzll(x) >> 3;
+# endif
+ return my_min(len, limit);
+ }
+
+ len += 8;
+ }
+
+ return limit;
+
+#elif defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
+ && defined(HAVE__MM_MOVEMASK_EPI8) \
+ && ((defined(__GNUC__) && defined(__SSE2_MATH__)) \
+ || (defined(__INTEL_COMPILER) && defined(__SSE2__)) \
+ || (defined(_MSC_VER) && defined(_M_IX86_FP) \
+ && _M_IX86_FP >= 2))
+ // NOTE: Like above, this will use 128-bit unaligned access which
+ // TUKLIB_FAST_UNALIGNED_ACCESS wasn't meant to permit.
+ //
+ // SSE2 version for 32-bit and 64-bit x86. On x86-64 the above
+ // version is sometimes significantly faster and sometimes
+ // slightly slower than this SSE2 version, so this SSE2
+ // version isn't used on x86-64.
+# define LZMA_MEMCMPLEN_EXTRA 16
+ while (len < limit) {
+ const uint32_t x = 0xFFFF ^ _mm_movemask_epi8(_mm_cmpeq_epi8(
+ _mm_loadu_si128((const __m128i *)(buf1 + len)),
+ _mm_loadu_si128((const __m128i *)(buf2 + len))));
+
+ if (x != 0) {
+# if defined(__INTEL_COMPILER)
+ len += _bit_scan_forward(x);
+# elif defined(_MSC_VER)
+ unsigned long tmp;
+ _BitScanForward(&tmp, x);
+ len += tmp;
+# else
+ len += __builtin_ctz(x);
+# endif
+ return my_min(len, limit);
+ }
+
+ len += 16;
+ }
+
+ return limit;
+
+#elif defined(TUKLIB_FAST_UNALIGNED_ACCESS) && !defined(WORDS_BIGENDIAN)
+ // Generic 32-bit little endian method
+# define LZMA_MEMCMPLEN_EXTRA 4
+ while (len < limit) {
+ uint32_t x = *(const uint32_t *)(buf1 + len)
+ - *(const uint32_t *)(buf2 + len);
+ if (x != 0) {
+ if ((x & 0xFFFF) == 0) {
+ len += 2;
+ x >>= 16;
+ }
+
+ if ((x & 0xFF) == 0)
+ ++len;
+
+ return my_min(len, limit);
+ }
+
+ len += 4;
+ }
+
+ return limit;
+
+#elif defined(TUKLIB_FAST_UNALIGNED_ACCESS) && defined(WORDS_BIGENDIAN)
+ // Generic 32-bit big endian method
+# define LZMA_MEMCMPLEN_EXTRA 4
+ while (len < limit) {
+ uint32_t x = *(const uint32_t *)(buf1 + len)
+ ^ *(const uint32_t *)(buf2 + len);
+ if (x != 0) {
+ if ((x & 0xFFFF0000) == 0) {
+ len += 2;
+ x <<= 16;
+ }
+
+ if ((x & 0xFF000000) == 0)
+ ++len;
+
+ return my_min(len, limit);
+ }
+
+ len += 4;
+ }
+
+ return limit;
+
+#else
+ // Simple portable version that doesn't use unaligned access.
+# define LZMA_MEMCMPLEN_EXTRA 0
+ while (len < limit && buf1[len] == buf2[len])
+ ++len;
+
+ return len;
+#endif
+}
+
+#endif
Added: vendor/xz/dist/src/liblzma/common/outqueue.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/outqueue.c (rev 0)
+++ vendor/xz/dist/src/liblzma/common/outqueue.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -0,0 +1,184 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+/// \file outqueue.c
+/// \brief Output queue handling in multithreaded coding
+//
+// Author: Lasse Collin
+//
+// This file has been put into the public domain.
+// You can do whatever you want with this file.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "outqueue.h"
+
+
+/// This is to ease integer overflow checking: We may allocate up to
+/// 2 * LZMA_THREADS_MAX buffers and we need some extra memory for other
+/// data structures (that's the second /2).
+#define BUF_SIZE_MAX (UINT64_MAX / LZMA_THREADS_MAX / 2 / 2)
+
+
+static lzma_ret
+get_options(uint64_t *bufs_alloc_size, uint32_t *bufs_count,
+ uint64_t buf_size_max, uint32_t threads)
+{
+ if (threads > LZMA_THREADS_MAX || buf_size_max > BUF_SIZE_MAX)
+ return LZMA_OPTIONS_ERROR;
+
+ // The number of buffers is twice the number of threads.
+ // This wastes RAM but keeps the threads busy when buffers
+ // finish out of order.
+ //
+ // NOTE: If this is changed, update BUF_SIZE_MAX too.
+ *bufs_count = threads * 2;
+ *bufs_alloc_size = *bufs_count * buf_size_max;
+
+ return LZMA_OK;
+}
+
+
+extern uint64_t
+lzma_outq_memusage(uint64_t buf_size_max, uint32_t threads)
+{
+ uint64_t bufs_alloc_size;
+ uint32_t bufs_count;
+
+ if (get_options(&bufs_alloc_size, &bufs_count, buf_size_max, threads)
+ != LZMA_OK)
+ return UINT64_MAX;
+
+ return sizeof(lzma_outq) + bufs_count * sizeof(lzma_outbuf)
+ + bufs_alloc_size;
+}
+
+
+extern lzma_ret
+lzma_outq_init(lzma_outq *outq, const lzma_allocator *allocator,
+ uint64_t buf_size_max, uint32_t threads)
+{
+ uint64_t bufs_alloc_size;
+ uint32_t bufs_count;
+
+ // Set bufs_count and bufs_alloc_size.
+ return_if_error(get_options(&bufs_alloc_size, &bufs_count,
+ buf_size_max, threads));
+
+ // Allocate memory if needed.
+ if (outq->buf_size_max != buf_size_max
+ || outq->bufs_allocated != bufs_count) {
+ lzma_outq_end(outq, allocator);
+
+#if SIZE_MAX < UINT64_MAX
+ if (bufs_alloc_size > SIZE_MAX)
+ return LZMA_MEM_ERROR;
+#endif
+
+ outq->bufs = lzma_alloc(bufs_count * sizeof(lzma_outbuf),
+ allocator);
+ outq->bufs_mem = lzma_alloc((size_t)(bufs_alloc_size),
+ allocator);
+
+ if (outq->bufs == NULL || outq->bufs_mem == NULL) {
+ lzma_outq_end(outq, allocator);
+ return LZMA_MEM_ERROR;
+ }
+ }
+
+ // Initialize the rest of the main structure. Initialization of
+ // outq->bufs[] is done when they are actually needed.
+ outq->buf_size_max = (size_t)(buf_size_max);
+ outq->bufs_allocated = bufs_count;
+ outq->bufs_pos = 0;
+ outq->bufs_used = 0;
+ outq->read_pos = 0;
+
+ return LZMA_OK;
+}
+
+
+extern void
+lzma_outq_end(lzma_outq *outq, const lzma_allocator *allocator)
+{
+ lzma_free(outq->bufs, allocator);
+ outq->bufs = NULL;
+
+ lzma_free(outq->bufs_mem, allocator);
+ outq->bufs_mem = NULL;
+
+ return;
+}
+
+
+extern lzma_outbuf *
+lzma_outq_get_buf(lzma_outq *outq)
+{
+ // Caller must have checked it with lzma_outq_has_buf().
+ assert(outq->bufs_used < outq->bufs_allocated);
+
+ // Initialize the new buffer.
+ lzma_outbuf *buf = &outq->bufs[outq->bufs_pos];
+ buf->buf = outq->bufs_mem + outq->bufs_pos * outq->buf_size_max;
+ buf->size = 0;
+ buf->finished = false;
+
+ // Update the queue state.
+ if (++outq->bufs_pos == outq->bufs_allocated)
+ outq->bufs_pos = 0;
+
+ ++outq->bufs_used;
+
+ return buf;
+}
+
+
+extern bool
+lzma_outq_is_readable(const lzma_outq *outq)
+{
+ uint32_t i = outq->bufs_pos - outq->bufs_used;
+ if (outq->bufs_pos < outq->bufs_used)
+ i += outq->bufs_allocated;
+
+ return outq->bufs[i].finished;
+}
+
+
+extern lzma_ret
+lzma_outq_read(lzma_outq *restrict outq, uint8_t *restrict out,
+ size_t *restrict out_pos, size_t out_size,
+ lzma_vli *restrict unpadded_size,
+ lzma_vli *restrict uncompressed_size)
+{
+ // There must be at least one buffer from which to read.
+ if (outq->bufs_used == 0)
+ return LZMA_OK;
+
+ // Get the buffer.
+ uint32_t i = outq->bufs_pos - outq->bufs_used;
+ if (outq->bufs_pos < outq->bufs_used)
+ i += outq->bufs_allocated;
+
+ lzma_outbuf *buf = &outq->bufs[i];
+
+ // If it isn't finished yet, we cannot read from it.
+ if (!buf->finished)
+ return LZMA_OK;
+
+ // Copy from the buffer to output.
+ lzma_bufcpy(buf->buf, &outq->read_pos, buf->size,
+ out, out_pos, out_size);
+
+ // Return if we didn't get all the data from the buffer.
+ if (outq->read_pos < buf->size)
+ return LZMA_OK;
+
+ // The buffer was finished. Tell the caller its size information.
+ *unpadded_size = buf->unpadded_size;
+ *uncompressed_size = buf->uncompressed_size;
+
+ // Free this buffer for further use.
+ --outq->bufs_used;
+ outq->read_pos = 0;
+
+ return LZMA_STREAM_END;
+}
Added: vendor/xz/dist/src/liblzma/common/outqueue.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/outqueue.h (rev 0)
+++ vendor/xz/dist/src/liblzma/common/outqueue.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -0,0 +1,156 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+/// \file outqueue.h
+/// \brief Output queue handling in multithreaded coding
+//
+// Author: Lasse Collin
+//
+// This file has been put into the public domain.
+// You can do whatever you want with this file.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "common.h"
+
+
+/// Output buffer for a single thread
+typedef struct {
+ /// Pointer to the output buffer of lzma_outq.buf_size_max bytes
+ uint8_t *buf;
+
+ /// Amount of data written to buf
+ size_t size;
+
+ /// Additional size information
+ lzma_vli unpadded_size;
+ lzma_vli uncompressed_size;
+
+ /// True when no more data will be written into this buffer.
+ ///
+ /// \note This is read by another thread and thus access
+ /// to this variable needs a mutex.
+ bool finished;
+
+} lzma_outbuf;
+
+
+typedef struct {
+ /// Array of buffers that are used cyclically.
+ lzma_outbuf *bufs;
+
+ /// Memory allocated for all the buffers
+ uint8_t *bufs_mem;
+
+ /// Amount of buffer space available in each buffer
+ size_t buf_size_max;
+
+ /// Number of buffers allocated
+ uint32_t bufs_allocated;
+
+ /// Position in the bufs array. The next buffer to be taken
+ /// into use is bufs[bufs_pos].
+ uint32_t bufs_pos;
+
+ /// Number of buffers in use
+ uint32_t bufs_used;
+
+ /// Position in the buffer in lzma_outq_read()
+ size_t read_pos;
+
+} lzma_outq;
+
+
+/**
+ * \brief Calculate the memory usage of an output queue
+ *
+ * \return Approximate memory usage in bytes or UINT64_MAX on error.
+ */
+extern uint64_t lzma_outq_memusage(uint64_t buf_size_max, uint32_t threads);
+
+
+/// \brief Initialize an output queue
+///
+/// \param outq Pointer to an output queue. Before calling
+/// this function the first time, *outq should
+/// have been zeroed with memzero() so that this
+/// function knows that there are no previous
+/// allocations to free.
+/// \param allocator Pointer to allocator or NULL
+/// \param buf_size_max Maximum amount of data that a single buffer
+/// in the queue may need to store.
+/// \param threads Number of buffers that may be in use
+/// concurrently. Note that more than this number
+/// of buffers will actually get allocated to
+/// improve performance when buffers finish
+/// out of order.
+///
+/// \return - LZMA_OK
+/// - LZMA_MEM_ERROR
+///
+extern lzma_ret lzma_outq_init(
+ lzma_outq *outq, const lzma_allocator *allocator,
+ uint64_t buf_size_max, uint32_t threads);
+
+
+/// \brief Free the memory associated with the output queue
+extern void lzma_outq_end(lzma_outq *outq, const lzma_allocator *allocator);
+
+
+/// \brief Get a new buffer
+///
+/// lzma_outq_has_buf() must be used to check that there is a buffer
+/// available before calling lzma_outq_get_buf().
+///
+extern lzma_outbuf *lzma_outq_get_buf(lzma_outq *outq);
+
+
+/// \brief Test if there is data ready to be read
+///
+/// Call to this function must be protected with the same mutex that
+/// is used to protect lzma_outbuf.finished.
+///
+extern bool lzma_outq_is_readable(const lzma_outq *outq);
+
+
+/// \brief Read finished data
+///
+/// \param outq Pointer to an output queue
+/// \param out Beginning of the output buffer
+/// \param out_pos The next byte will be written to
+/// out[*out_pos].
+/// \param out_size Size of the out buffer; the first byte into
+/// which no data is written to is out[out_size].
+/// \param unpadded_size Unpadded Size from the Block encoder
+/// \param uncompressed_size Uncompressed Size from the Block encoder
+///
+/// \return - LZMA: All OK. Either no data was available or the buffer
+/// being read didn't become empty yet.
+/// - LZMA_STREAM_END: The buffer being read was finished.
+/// *unpadded_size and *uncompressed_size were set.
+///
+/// \note This reads lzma_outbuf.finished variables and thus call
+/// to this function needs to be protected with a mutex.
+///
+extern lzma_ret lzma_outq_read(lzma_outq *restrict outq,
+ uint8_t *restrict out, size_t *restrict out_pos,
+ size_t out_size, lzma_vli *restrict unpadded_size,
+ lzma_vli *restrict uncompressed_size);
+
+
+/// \brief Test if there is at least one buffer free
+///
+/// This must be used before getting a new buffer with lzma_outq_get_buf().
+///
+static inline bool
+lzma_outq_has_buf(const lzma_outq *outq)
+{
+ return outq->bufs_used < outq->bufs_allocated;
+}
+
+
+/// \brief Test if the queue is completely empty
+static inline bool
+lzma_outq_is_empty(const lzma_outq *outq)
+{
+ return outq->bufs_used == 0;
+}
Modified: vendor/xz/dist/src/liblzma/common/stream_buffer_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/stream_buffer_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/stream_buffer_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -15,7 +15,7 @@
extern LZMA_API(lzma_ret)
lzma_stream_buffer_decode(uint64_t *memlimit, uint32_t flags,
- lzma_allocator *allocator,
+ const lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
{
Modified: vendor/xz/dist/src/liblzma/common/stream_buffer_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/stream_buffer_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/stream_buffer_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -42,7 +42,8 @@
extern LZMA_API(lzma_ret)
lzma_stream_buffer_encode(lzma_filter *filters, lzma_check check,
- lzma_allocator *allocator, const uint8_t *in, size_t in_size,
+ const lzma_allocator *allocator,
+ const uint8_t *in, size_t in_size,
uint8_t *out, size_t *out_pos_ptr, size_t out_size)
{
// Sanity checks
Modified: vendor/xz/dist/src/liblzma/common/stream_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/stream_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/stream_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -57,6 +57,10 @@
/// If true, LZMA_GET_CHECK is returned after decoding Stream Header.
bool tell_any_check;
+ /// If true, we will tell the Block decoder to skip calculating
+ /// and verifying the integrity check.
+ bool ignore_check;
+
/// If true, we will decode concatenated Streams that possibly have
/// Stream Padding between or after them. LZMA_STREAM_END is returned
/// once the application isn't giving us any new input, and we aren't
@@ -80,7 +84,7 @@
static lzma_ret
-stream_decoder_reset(lzma_coder *coder, lzma_allocator *allocator)
+stream_decoder_reset(lzma_coder *coder, const lzma_allocator *allocator)
{
// Initialize the Index hash used to verify the Index.
coder->index_hash = lzma_index_hash_init(coder->index_hash, allocator);
@@ -96,7 +100,7 @@
static lzma_ret
-stream_decode(lzma_coder *coder, lzma_allocator *allocator,
+stream_decode(lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size, lzma_action action)
@@ -182,8 +186,8 @@
coder->pos = 0;
- // Version 0 is currently the only possible version.
- coder->block_options.version = 0;
+ // Version 1 is needed to support the .ignore_check option.
+ coder->block_options.version = 1;
// Set up a buffer to hold the filter chain. Block Header
// decoder will initialize all members of this array so
@@ -195,6 +199,11 @@
return_if_error(lzma_block_header_decode(&coder->block_options,
allocator, coder->buffer));
+ // If LZMA_IGNORE_CHECK was used, this flag needs to be set.
+ // It has to be set after lzma_block_header_decode() because
+ // it always resets this to false.
+ coder->block_options.ignore_check = coder->ignore_check;
+
// Check the memory usage limit.
const uint64_t memusage = lzma_raw_decoder_memusage(filters);
lzma_ret ret;
@@ -366,7 +375,7 @@
static void
-stream_decoder_end(lzma_coder *coder, lzma_allocator *allocator)
+stream_decoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_next_end(&coder->block_decoder, allocator);
lzma_index_hash_end(coder->index_hash, allocator);
@@ -401,7 +410,8 @@
extern lzma_ret
-lzma_stream_decoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_stream_decoder_init(
+ lzma_next_coder *next, const lzma_allocator *allocator,
uint64_t memlimit, uint32_t flags)
{
lzma_next_coder_init(&lzma_stream_decoder_init, next, allocator);
@@ -432,6 +442,7 @@
next->coder->tell_unsupported_check
= (flags & LZMA_TELL_UNSUPPORTED_CHECK) != 0;
next->coder->tell_any_check = (flags & LZMA_TELL_ANY_CHECK) != 0;
+ next->coder->ignore_check = (flags & LZMA_IGNORE_CHECK) != 0;
next->coder->concatenated = (flags & LZMA_CONCATENATED) != 0;
next->coder->first_stream = true;
Modified: vendor/xz/dist/src/liblzma/common/stream_decoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/stream_decoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/stream_decoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -15,7 +15,8 @@
#include "common.h"
-extern lzma_ret lzma_stream_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, uint64_t memlimit, uint32_t flags);
+extern lzma_ret lzma_stream_decoder_init(
+ lzma_next_coder *next, const lzma_allocator *allocator,
+ uint64_t memlimit, uint32_t flags);
#endif
Modified: vendor/xz/dist/src/liblzma/common/stream_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/stream_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/stream_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -10,7 +10,6 @@
//
///////////////////////////////////////////////////////////////////////////////
-#include "stream_encoder.h"
#include "block_encoder.h"
#include "index_encoder.h"
@@ -26,7 +25,7 @@
} sequence;
/// True if Block encoder has been initialized by
- /// lzma_stream_encoder_init() or stream_encoder_update()
+ /// stream_encoder_init() or stream_encoder_update()
/// and thus doesn't need to be initialized in stream_encode().
bool block_encoder_is_initialized;
@@ -60,7 +59,7 @@
static lzma_ret
-block_encoder_init(lzma_coder *coder, lzma_allocator *allocator)
+block_encoder_init(lzma_coder *coder, const lzma_allocator *allocator)
{
// Prepare the Block options. Even though Block encoder doesn't need
// compressed_size, uncompressed_size, and header_size to be
@@ -79,7 +78,7 @@
static lzma_ret
-stream_encode(lzma_coder *coder, lzma_allocator *allocator,
+stream_encode(lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size, lzma_action action)
@@ -126,7 +125,7 @@
}
// Initialize the Block encoder unless it was already
- // initialized by lzma_stream_encoder_init() or
+ // initialized by stream_encoder_init() or
// stream_encoder_update().
if (!coder->block_encoder_is_initialized)
return_if_error(block_encoder_init(coder, allocator));
@@ -147,11 +146,12 @@
}
case SEQ_BLOCK_ENCODE: {
- static const lzma_action convert[4] = {
+ static const lzma_action convert[LZMA_ACTION_MAX + 1] = {
LZMA_RUN,
LZMA_SYNC_FLUSH,
LZMA_FINISH,
LZMA_FINISH,
+ LZMA_FINISH,
};
const lzma_ret ret = coder->block_encoder.code(
@@ -209,7 +209,7 @@
static void
-stream_encoder_end(lzma_coder *coder, lzma_allocator *allocator)
+stream_encoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_next_end(&coder->block_encoder, allocator);
lzma_next_end(&coder->index_encoder, allocator);
@@ -224,7 +224,7 @@
static lzma_ret
-stream_encoder_update(lzma_coder *coder, lzma_allocator *allocator,
+stream_encoder_update(lzma_coder *coder, const lzma_allocator *allocator,
const lzma_filter *filters,
const lzma_filter *reversed_filters)
{
@@ -262,11 +262,11 @@
}
-extern lzma_ret
-lzma_stream_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+static lzma_ret
+stream_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter *filters, lzma_check check)
{
- lzma_next_coder_init(&lzma_stream_encoder_init, next, allocator);
+ lzma_next_coder_init(&stream_encoder_init, next, allocator);
if (filters == NULL)
return LZMA_PROG_ERROR;
@@ -320,11 +320,12 @@
lzma_stream_encoder(lzma_stream *strm,
const lzma_filter *filters, lzma_check check)
{
- lzma_next_strm_init(lzma_stream_encoder_init, strm, filters, check);
+ lzma_next_strm_init(stream_encoder_init, strm, filters, check);
strm->internal->supported_actions[LZMA_RUN] = true;
strm->internal->supported_actions[LZMA_SYNC_FLUSH] = true;
strm->internal->supported_actions[LZMA_FULL_FLUSH] = true;
+ strm->internal->supported_actions[LZMA_FULL_BARRIER] = true;
strm->internal->supported_actions[LZMA_FINISH] = true;
return LZMA_OK;
Deleted: vendor/xz/dist/src/liblzma/common/stream_encoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/common/stream_encoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/common/stream_encoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,23 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-/// \file stream_encoder.h
-/// \brief Encodes .xz Streams
-//
-// Author: Lasse Collin
-//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef LZMA_STREAM_ENCODER_H
-#define LZMA_STREAM_ENCODER_H
-
-#include "common.h"
-
-
-extern lzma_ret lzma_stream_encoder_init(
- lzma_next_coder *next, lzma_allocator *allocator,
- const lzma_filter *filters, lzma_check check);
-
-#endif
Added: vendor/xz/dist/src/liblzma/common/stream_encoder_mt.c
===================================================================
--- vendor/xz/dist/src/liblzma/common/stream_encoder_mt.c (rev 0)
+++ vendor/xz/dist/src/liblzma/common/stream_encoder_mt.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -0,0 +1,1131 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+/// \file stream_encoder_mt.c
+/// \brief Multithreaded .xz Stream encoder
+//
+// Author: Lasse Collin
+//
+// This file has been put into the public domain.
+// You can do whatever you want with this file.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "filter_encoder.h"
+#include "easy_preset.h"
+#include "block_encoder.h"
+#include "block_buffer_encoder.h"
+#include "index_encoder.h"
+#include "outqueue.h"
+
+
+/// Maximum supported block size. This makes it simpler to prevent integer
+/// overflows if we are given unusually large block size.
+#define BLOCK_SIZE_MAX (UINT64_MAX / LZMA_THREADS_MAX)
+
+
+typedef enum {
+ /// Waiting for work.
+ THR_IDLE,
+
+ /// Encoding is in progress.
+ THR_RUN,
+
+ /// Encoding is in progress but no more input data will
+ /// be read.
+ THR_FINISH,
+
+ /// The main thread wants the thread to stop whatever it was doing
+ /// but not exit.
+ THR_STOP,
+
+ /// The main thread wants the thread to exit. We could use
+ /// cancellation but since there's stopped anyway, this is lazier.
+ THR_EXIT,
+
+} worker_state;
+
+
+typedef struct worker_thread_s worker_thread;
+struct worker_thread_s {
+ worker_state state;
+
+ /// Input buffer of coder->block_size bytes. The main thread will
+ /// put new input into this and update in_size accordingly. Once
+ /// no more input is coming, state will be set to THR_FINISH.
+ uint8_t *in;
+
+ /// Amount of data available in the input buffer. This is modified
+ /// only by the main thread.
+ size_t in_size;
+
+ /// Output buffer for this thread. This is set by the main
+ /// thread every time a new Block is started with this thread
+ /// structure.
+ lzma_outbuf *outbuf;
+
+ /// Pointer to the main structure is needed when putting this
+ /// thread back to the stack of free threads.
+ lzma_coder *coder;
+
+ /// The allocator is set by the main thread. Since a copy of the
+ /// pointer is kept here, the application must not change the
+ /// allocator before calling lzma_end().
+ const lzma_allocator *allocator;
+
+ /// Amount of uncompressed data that has already been compressed.
+ uint64_t progress_in;
+
+ /// Amount of compressed data that is ready.
+ uint64_t progress_out;
+
+ /// Block encoder
+ lzma_next_coder block_encoder;
+
+ /// Compression options for this Block
+ lzma_block block_options;
+
+ /// Next structure in the stack of free worker threads.
+ worker_thread *next;
+
+ mythread_mutex mutex;
+ mythread_cond cond;
+
+ /// The ID of this thread is used to join the thread
+ /// when it's not needed anymore.
+ mythread thread_id;
+};
+
+
+struct lzma_coder_s {
+ enum {
+ SEQ_STREAM_HEADER,
+ SEQ_BLOCK,
+ SEQ_INDEX,
+ SEQ_STREAM_FOOTER,
+ } sequence;
+
+ /// Start a new Block every block_size bytes of input unless
+ /// LZMA_FULL_FLUSH or LZMA_FULL_BARRIER is used earlier.
+ size_t block_size;
+
+ /// The filter chain currently in use
+ lzma_filter filters[LZMA_FILTERS_MAX + 1];
+
+
+ /// Index to hold sizes of the Blocks
+ lzma_index *index;
+
+ /// Index encoder
+ lzma_next_coder index_encoder;
+
+
+ /// Stream Flags for encoding the Stream Header and Stream Footer.
+ lzma_stream_flags stream_flags;
+
+ /// Buffer to hold Stream Header and Stream Footer.
+ uint8_t header[LZMA_STREAM_HEADER_SIZE];
+
+ /// Read position in header[]
+ size_t header_pos;
+
+
+ /// Output buffer queue for compressed data
+ lzma_outq outq;
+
+
+ /// Maximum wait time if cannot use all the input and cannot
+ /// fill the output buffer. This is in milliseconds.
+ uint32_t timeout;
+
+
+ /// Error code from a worker thread
+ lzma_ret thread_error;
+
+ /// Array of allocated thread-specific structures
+ worker_thread *threads;
+
+ /// Number of structures in "threads" above. This is also the
+ /// number of threads that will be created at maximum.
+ uint32_t threads_max;
+
+ /// Number of thread structures that have been initialized, and
+ /// thus the number of worker threads actually created so far.
+ uint32_t threads_initialized;
+
+ /// Stack of free threads. When a thread finishes, it puts itself
+ /// back into this stack. This starts as empty because threads
+ /// are created only when actually needed.
+ worker_thread *threads_free;
+
+ /// The most recent worker thread to which the main thread writes
+ /// the new input from the application.
+ worker_thread *thr;
+
+
+ /// Amount of uncompressed data in Blocks that have already
+ /// been finished.
+ uint64_t progress_in;
+
+ /// Amount of compressed data in Stream Header + Blocks that
+ /// have already been finished.
+ uint64_t progress_out;
+
+
+ mythread_mutex mutex;
+ mythread_cond cond;
+};
+
+
+/// Tell the main thread that something has gone wrong.
+static void
+worker_error(worker_thread *thr, lzma_ret ret)
+{
+ assert(ret != LZMA_OK);
+ assert(ret != LZMA_STREAM_END);
+
+ mythread_sync(thr->coder->mutex) {
+ if (thr->coder->thread_error == LZMA_OK)
+ thr->coder->thread_error = ret;
+
+ mythread_cond_signal(&thr->coder->cond);
+ }
+
+ return;
+}
+
+
+static worker_state
+worker_encode(worker_thread *thr, worker_state state)
+{
+ assert(thr->progress_in == 0);
+ assert(thr->progress_out == 0);
+
+ // Set the Block options.
+ thr->block_options = (lzma_block){
+ .version = 0,
+ .check = thr->coder->stream_flags.check,
+ .compressed_size = thr->coder->outq.buf_size_max,
+ .uncompressed_size = thr->coder->block_size,
+
+ // TODO: To allow changing the filter chain, the filters
+ // array must be copied to each worker_thread.
+ .filters = thr->coder->filters,
+ };
+
+ // Calculate maximum size of the Block Header. This amount is
+ // reserved in the beginning of the buffer so that Block Header
+ // along with Compressed Size and Uncompressed Size can be
+ // written there.
+ lzma_ret ret = lzma_block_header_size(&thr->block_options);
+ if (ret != LZMA_OK) {
+ worker_error(thr, ret);
+ return THR_STOP;
+ }
+
+ // Initialize the Block encoder.
+ ret = lzma_block_encoder_init(&thr->block_encoder,
+ thr->allocator, &thr->block_options);
+ if (ret != LZMA_OK) {
+ worker_error(thr, ret);
+ return THR_STOP;
+ }
+
+ size_t in_pos = 0;
+ size_t in_size = 0;
+
+ thr->outbuf->size = thr->block_options.header_size;
+ const size_t out_size = thr->coder->outq.buf_size_max;
+
+ do {
+ mythread_sync(thr->mutex) {
+ // Store in_pos and out_pos into *thr so that
+ // an application may read them via
+ // lzma_get_progress() to get progress information.
+ //
+ // NOTE: These aren't updated when the encoding
+ // finishes. Instead, the final values are taken
+ // later from thr->outbuf.
+ thr->progress_in = in_pos;
+ thr->progress_out = thr->outbuf->size;
+
+ while (in_size == thr->in_size
+ && thr->state == THR_RUN)
+ mythread_cond_wait(&thr->cond, &thr->mutex);
+
+ state = thr->state;
+ in_size = thr->in_size;
+ }
+
+ // Return if we were asked to stop or exit.
+ if (state >= THR_STOP)
+ return state;
+
+ lzma_action action = state == THR_FINISH
+ ? LZMA_FINISH : LZMA_RUN;
+
+ // Limit the amount of input given to the Block encoder
+ // at once. This way this thread can react fairly quickly
+ // if the main thread wants us to stop or exit.
+ static const size_t in_chunk_max = 16384;
+ size_t in_limit = in_size;
+ if (in_size - in_pos > in_chunk_max) {
+ in_limit = in_pos + in_chunk_max;
+ action = LZMA_RUN;
+ }
+
+ ret = thr->block_encoder.code(
+ thr->block_encoder.coder, thr->allocator,
+ thr->in, &in_pos, in_limit, thr->outbuf->buf,
+ &thr->outbuf->size, out_size, action);
+ } while (ret == LZMA_OK && thr->outbuf->size < out_size);
+
+ switch (ret) {
+ case LZMA_STREAM_END:
+ assert(state == THR_FINISH);
+
+ // Encode the Block Header. By doing it after
+ // the compression, we can store the Compressed Size
+ // and Uncompressed Size fields.
+ ret = lzma_block_header_encode(&thr->block_options,
+ thr->outbuf->buf);
+ if (ret != LZMA_OK) {
+ worker_error(thr, ret);
+ return THR_STOP;
+ }
+
+ break;
+
+ case LZMA_OK:
+ // The data was incompressible. Encode it using uncompressed
+ // LZMA2 chunks.
+ //
+ // First wait that we have gotten all the input.
+ mythread_sync(thr->mutex) {
+ while (thr->state == THR_RUN)
+ mythread_cond_wait(&thr->cond, &thr->mutex);
+
+ state = thr->state;
+ in_size = thr->in_size;
+ }
+
+ if (state >= THR_STOP)
+ return state;
+
+ // Do the encoding. This takes care of the Block Header too.
+ thr->outbuf->size = 0;
+ ret = lzma_block_uncomp_encode(&thr->block_options,
+ thr->in, in_size, thr->outbuf->buf,
+ &thr->outbuf->size, out_size);
+
+ // It shouldn't fail.
+ if (ret != LZMA_OK) {
+ worker_error(thr, LZMA_PROG_ERROR);
+ return THR_STOP;
+ }
+
+ break;
+
+ default:
+ worker_error(thr, ret);
+ return THR_STOP;
+ }
+
+ // Set the size information that will be read by the main thread
+ // to write the Index field.
+ thr->outbuf->unpadded_size
+ = lzma_block_unpadded_size(&thr->block_options);
+ assert(thr->outbuf->unpadded_size != 0);
+ thr->outbuf->uncompressed_size = thr->block_options.uncompressed_size;
+
+ return THR_FINISH;
+}
+
+
+static MYTHREAD_RET_TYPE
+worker_start(void *thr_ptr)
+{
+ worker_thread *thr = thr_ptr;
+ worker_state state = THR_IDLE; // Init to silence a warning
+
+ while (true) {
+ // Wait for work.
+ mythread_sync(thr->mutex) {
+ while (true) {
+ // The thread is already idle so if we are
+ // requested to stop, just set the state.
+ if (thr->state == THR_STOP) {
+ thr->state = THR_IDLE;
+ mythread_cond_signal(&thr->cond);
+ }
+
+ state = thr->state;
+ if (state != THR_IDLE)
+ break;
+
+ mythread_cond_wait(&thr->cond, &thr->mutex);
+ }
+ }
+
+ assert(state != THR_IDLE);
+ assert(state != THR_STOP);
+
+ if (state <= THR_FINISH)
+ state = worker_encode(thr, state);
+
+ if (state == THR_EXIT)
+ break;
+
+ // Mark the thread as idle unless the main thread has
+ // told us to exit. Signal is needed for the case
+ // where the main thread is waiting for the threads to stop.
+ mythread_sync(thr->mutex) {
+ if (thr->state != THR_EXIT) {
+ thr->state = THR_IDLE;
+ mythread_cond_signal(&thr->cond);
+ }
+ }
+
+ mythread_sync(thr->coder->mutex) {
+ // Mark the output buffer as finished if
+ // no errors occurred.
+ thr->outbuf->finished = state == THR_FINISH;
+
+ // Update the main progress info.
+ thr->coder->progress_in
+ += thr->outbuf->uncompressed_size;
+ thr->coder->progress_out += thr->outbuf->size;
+ thr->progress_in = 0;
+ thr->progress_out = 0;
+
+ // Return this thread to the stack of free threads.
+ thr->next = thr->coder->threads_free;
+ thr->coder->threads_free = thr;
+
+ mythread_cond_signal(&thr->coder->cond);
+ }
+ }
+
+ // Exiting, free the resources.
+ mythread_mutex_destroy(&thr->mutex);
+ mythread_cond_destroy(&thr->cond);
+
+ lzma_next_end(&thr->block_encoder, thr->allocator);
+ lzma_free(thr->in, thr->allocator);
+ return MYTHREAD_RET_VALUE;
+}
+
+
+/// Make the threads stop but not exit. Optionally wait for them to stop.
+static void
+threads_stop(lzma_coder *coder, bool wait_for_threads)
+{
+ // Tell the threads to stop.
+ for (uint32_t i = 0; i < coder->threads_initialized; ++i) {
+ mythread_sync(coder->threads[i].mutex) {
+ coder->threads[i].state = THR_STOP;
+ mythread_cond_signal(&coder->threads[i].cond);
+ }
+ }
+
+ if (!wait_for_threads)
+ return;
+
+ // Wait for the threads to settle in the idle state.
+ for (uint32_t i = 0; i < coder->threads_initialized; ++i) {
+ mythread_sync(coder->threads[i].mutex) {
+ while (coder->threads[i].state != THR_IDLE)
+ mythread_cond_wait(&coder->threads[i].cond,
+ &coder->threads[i].mutex);
+ }
+ }
+
+ return;
+}
+
+
+/// Stop the threads and free the resources associated with them.
+/// Wait until the threads have exited.
+static void
+threads_end(lzma_coder *coder, const lzma_allocator *allocator)
+{
+ for (uint32_t i = 0; i < coder->threads_initialized; ++i) {
+ mythread_sync(coder->threads[i].mutex) {
+ coder->threads[i].state = THR_EXIT;
+ mythread_cond_signal(&coder->threads[i].cond);
+ }
+ }
+
+ for (uint32_t i = 0; i < coder->threads_initialized; ++i) {
+ int ret = mythread_join(coder->threads[i].thread_id);
+ assert(ret == 0);
+ (void)ret;
+ }
+
+ lzma_free(coder->threads, allocator);
+ return;
+}
+
+
+/// Initialize a new worker_thread structure and create a new thread.
+static lzma_ret
+initialize_new_thread(lzma_coder *coder, const lzma_allocator *allocator)
+{
+ worker_thread *thr = &coder->threads[coder->threads_initialized];
+
+ thr->in = lzma_alloc(coder->block_size, allocator);
+ if (thr->in == NULL)
+ return LZMA_MEM_ERROR;
+
+ if (mythread_mutex_init(&thr->mutex))
+ goto error_mutex;
+
+ if (mythread_cond_init(&thr->cond))
+ goto error_cond;
+
+ thr->state = THR_IDLE;
+ thr->allocator = allocator;
+ thr->coder = coder;
+ thr->progress_in = 0;
+ thr->progress_out = 0;
+ thr->block_encoder = LZMA_NEXT_CODER_INIT;
+
+ if (mythread_create(&thr->thread_id, &worker_start, thr))
+ goto error_thread;
+
+ ++coder->threads_initialized;
+ coder->thr = thr;
+
+ return LZMA_OK;
+
+error_thread:
+ mythread_cond_destroy(&thr->cond);
+
+error_cond:
+ mythread_mutex_destroy(&thr->mutex);
+
+error_mutex:
+ lzma_free(thr->in, allocator);
+ return LZMA_MEM_ERROR;
+}
+
+
+static lzma_ret
+get_thread(lzma_coder *coder, const lzma_allocator *allocator)
+{
+ // If there are no free output subqueues, there is no
+ // point to try getting a thread.
+ if (!lzma_outq_has_buf(&coder->outq))
+ return LZMA_OK;
+
+ // If there is a free structure on the stack, use it.
+ mythread_sync(coder->mutex) {
+ if (coder->threads_free != NULL) {
+ coder->thr = coder->threads_free;
+ coder->threads_free = coder->threads_free->next;
+ }
+ }
+
+ if (coder->thr == NULL) {
+ // If there are no uninitialized structures left, return.
+ if (coder->threads_initialized == coder->threads_max)
+ return LZMA_OK;
+
+ // Initialize a new thread.
+ return_if_error(initialize_new_thread(coder, allocator));
+ }
+
+ // Reset the parts of the thread state that have to be done
+ // in the main thread.
+ mythread_sync(coder->thr->mutex) {
+ coder->thr->state = THR_RUN;
+ coder->thr->in_size = 0;
+ coder->thr->outbuf = lzma_outq_get_buf(&coder->outq);
+ mythread_cond_signal(&coder->thr->cond);
+ }
+
+ return LZMA_OK;
+}
+
+
+static lzma_ret
+stream_encode_in(lzma_coder *coder, const lzma_allocator *allocator,
+ const uint8_t *restrict in, size_t *restrict in_pos,
+ size_t in_size, lzma_action action)
+{
+ while (*in_pos < in_size
+ || (coder->thr != NULL && action != LZMA_RUN)) {
+ if (coder->thr == NULL) {
+ // Get a new thread.
+ const lzma_ret ret = get_thread(coder, allocator);
+ if (coder->thr == NULL)
+ return ret;
+ }
+
+ // Copy the input data to thread's buffer.
+ size_t thr_in_size = coder->thr->in_size;
+ lzma_bufcpy(in, in_pos, in_size, coder->thr->in,
+ &thr_in_size, coder->block_size);
+
+ // Tell the Block encoder to finish if
+ // - it has got block_size bytes of input; or
+ // - all input was used and LZMA_FINISH, LZMA_FULL_FLUSH,
+ // or LZMA_FULL_BARRIER was used.
+ //
+ // TODO: LZMA_SYNC_FLUSH and LZMA_SYNC_BARRIER.
+ const bool finish = thr_in_size == coder->block_size
+ || (*in_pos == in_size && action != LZMA_RUN);
+
+ bool block_error = false;
+
+ mythread_sync(coder->thr->mutex) {
+ if (coder->thr->state == THR_IDLE) {
+ // Something has gone wrong with the Block
+ // encoder. It has set coder->thread_error
+ // which we will read a few lines later.
+ block_error = true;
+ } else {
+ // Tell the Block encoder its new amount
+ // of input and update the state if needed.
+ coder->thr->in_size = thr_in_size;
+
+ if (finish)
+ coder->thr->state = THR_FINISH;
+
+ mythread_cond_signal(&coder->thr->cond);
+ }
+ }
+
+ if (block_error) {
+ lzma_ret ret;
+
+ mythread_sync(coder->mutex) {
+ ret = coder->thread_error;
+ }
+
+ return ret;
+ }
+
+ if (finish)
+ coder->thr = NULL;
+ }
+
+ return LZMA_OK;
+}
+
+
+/// Wait until more input can be consumed, more output can be read, or
+/// an optional timeout is reached.
+static bool
+wait_for_work(lzma_coder *coder, mythread_condtime *wait_abs,
+ bool *has_blocked, bool has_input)
+{
+ if (coder->timeout != 0 && !*has_blocked) {
+ // Every time when stream_encode_mt() is called via
+ // lzma_code(), *has_blocked starts as false. We set it
+ // to true here and calculate the absolute time when
+ // we must return if there's nothing to do.
+ //
+ // The idea of *has_blocked is to avoid unneeded calls
+ // to mythread_condtime_set(), which may do a syscall
+ // depending on the operating system.
+ *has_blocked = true;
+ mythread_condtime_set(wait_abs, &coder->cond, coder->timeout);
+ }
+
+ bool timed_out = false;
+
+ mythread_sync(coder->mutex) {
+ // There are four things that we wait. If one of them
+ // becomes possible, we return.
+ // - If there is input left, we need to get a free
+ // worker thread and an output buffer for it.
+ // - Data ready to be read from the output queue.
+ // - A worker thread indicates an error.
+ // - Time out occurs.
+ while ((!has_input || coder->threads_free == NULL
+ || !lzma_outq_has_buf(&coder->outq))
+ && !lzma_outq_is_readable(&coder->outq)
+ && coder->thread_error == LZMA_OK
+ && !timed_out) {
+ if (coder->timeout != 0)
+ timed_out = mythread_cond_timedwait(
+ &coder->cond, &coder->mutex,
+ wait_abs) != 0;
+ else
+ mythread_cond_wait(&coder->cond,
+ &coder->mutex);
+ }
+ }
+
+ return timed_out;
+}
+
+
+static lzma_ret
+stream_encode_mt(lzma_coder *coder, const lzma_allocator *allocator,
+ const uint8_t *restrict in, size_t *restrict in_pos,
+ size_t in_size, uint8_t *restrict out,
+ size_t *restrict out_pos, size_t out_size, lzma_action action)
+{
+ switch (coder->sequence) {
+ case SEQ_STREAM_HEADER:
+ lzma_bufcpy(coder->header, &coder->header_pos,
+ sizeof(coder->header),
+ out, out_pos, out_size);
+ if (coder->header_pos < sizeof(coder->header))
+ return LZMA_OK;
+
+ coder->header_pos = 0;
+ coder->sequence = SEQ_BLOCK;
+
+ // Fall through
+
+ case SEQ_BLOCK: {
+ // Initialized to silence warnings.
+ lzma_vli unpadded_size = 0;
+ lzma_vli uncompressed_size = 0;
+ lzma_ret ret = LZMA_OK;
+
+ // These are for wait_for_work().
+ bool has_blocked = false;
+ mythread_condtime wait_abs;
+
+ while (true) {
+ mythread_sync(coder->mutex) {
+ // Check for Block encoder errors.
+ ret = coder->thread_error;
+ if (ret != LZMA_OK) {
+ assert(ret != LZMA_STREAM_END);
+ break;
+ }
+
+ // Try to read compressed data to out[].
+ ret = lzma_outq_read(&coder->outq,
+ out, out_pos, out_size,
+ &unpadded_size,
+ &uncompressed_size);
+ }
+
+ if (ret == LZMA_STREAM_END) {
+ // End of Block. Add it to the Index.
+ ret = lzma_index_append(coder->index,
+ allocator, unpadded_size,
+ uncompressed_size);
+
+ // If we didn't fill the output buffer yet,
+ // try to read more data. Maybe the next
+ // outbuf has been finished already too.
+ if (*out_pos < out_size)
+ continue;
+ }
+
+ if (ret != LZMA_OK) {
+ // coder->thread_error was set or
+ // lzma_index_append() failed.
+ threads_stop(coder, false);
+ return ret;
+ }
+
+ // Try to give uncompressed data to a worker thread.
+ ret = stream_encode_in(coder, allocator,
+ in, in_pos, in_size, action);
+ if (ret != LZMA_OK) {
+ threads_stop(coder, false);
+ return ret;
+ }
+
+ // See if we should wait or return.
+ //
+ // TODO: LZMA_SYNC_FLUSH and LZMA_SYNC_BARRIER.
+ if (*in_pos == in_size) {
+ // LZMA_RUN: More data is probably coming
+ // so return to let the caller fill the
+ // input buffer.
+ if (action == LZMA_RUN)
+ return LZMA_OK;
+
+ // LZMA_FULL_BARRIER: The same as with
+ // LZMA_RUN but tell the caller that the
+ // barrier was completed.
+ if (action == LZMA_FULL_BARRIER)
+ return LZMA_STREAM_END;
+
+ // Finishing or flushing isn't completed until
+ // all input data has been encoded and copied
+ // to the output buffer.
+ if (lzma_outq_is_empty(&coder->outq)) {
+ // LZMA_FINISH: Continue to encode
+ // the Index field.
+ if (action == LZMA_FINISH)
+ break;
+
+ // LZMA_FULL_FLUSH: Return to tell
+ // the caller that flushing was
+ // completed.
+ if (action == LZMA_FULL_FLUSH)
+ return LZMA_STREAM_END;
+ }
+ }
+
+ // Return if there is no output space left.
+ // This check must be done after testing the input
+ // buffer, because we might want to use a different
+ // return code.
+ if (*out_pos == out_size)
+ return LZMA_OK;
+
+ // Neither in nor out has been used completely.
+ // Wait until there's something we can do.
+ if (wait_for_work(coder, &wait_abs, &has_blocked,
+ *in_pos < in_size))
+ return LZMA_TIMED_OUT;
+ }
+
+ // All Blocks have been encoded and the threads have stopped.
+ // Prepare to encode the Index field.
+ return_if_error(lzma_index_encoder_init(
+ &coder->index_encoder, allocator,
+ coder->index));
+ coder->sequence = SEQ_INDEX;
+
+ // Update the progress info to take the Index and
+ // Stream Footer into account. Those are very fast to encode
+ // so in terms of progress information they can be thought
+ // to be ready to be copied out.
+ coder->progress_out += lzma_index_size(coder->index)
+ + LZMA_STREAM_HEADER_SIZE;
+ }
+
+ // Fall through
+
+ case SEQ_INDEX: {
+ // Call the Index encoder. It doesn't take any input, so
+ // those pointers can be NULL.
+ const lzma_ret ret = coder->index_encoder.code(
+ coder->index_encoder.coder, allocator,
+ NULL, NULL, 0,
+ out, out_pos, out_size, LZMA_RUN);
+ if (ret != LZMA_STREAM_END)
+ return ret;
+
+ // Encode the Stream Footer into coder->buffer.
+ coder->stream_flags.backward_size
+ = lzma_index_size(coder->index);
+ if (lzma_stream_footer_encode(&coder->stream_flags,
+ coder->header) != LZMA_OK)
+ return LZMA_PROG_ERROR;
+
+ coder->sequence = SEQ_STREAM_FOOTER;
+ }
+
+ // Fall through
+
+ case SEQ_STREAM_FOOTER:
+ lzma_bufcpy(coder->header, &coder->header_pos,
+ sizeof(coder->header),
+ out, out_pos, out_size);
+ return coder->header_pos < sizeof(coder->header)
+ ? LZMA_OK : LZMA_STREAM_END;
+ }
+
+ assert(0);
+ return LZMA_PROG_ERROR;
+}
+
+
+static void
+stream_encoder_mt_end(lzma_coder *coder, const lzma_allocator *allocator)
+{
+ // Threads must be killed before the output queue can be freed.
+ threads_end(coder, allocator);
+ lzma_outq_end(&coder->outq, allocator);
+
+ for (size_t i = 0; coder->filters[i].id != LZMA_VLI_UNKNOWN; ++i)
+ lzma_free(coder->filters[i].options, allocator);
+
+ lzma_next_end(&coder->index_encoder, allocator);
+ lzma_index_end(coder->index, allocator);
+
+ mythread_cond_destroy(&coder->cond);
+ mythread_mutex_destroy(&coder->mutex);
+
+ lzma_free(coder, allocator);
+ return;
+}
+
+
+/// Options handling for lzma_stream_encoder_mt_init() and
+/// lzma_stream_encoder_mt_memusage()
+static lzma_ret
+get_options(const lzma_mt *options, lzma_options_easy *opt_easy,
+ const lzma_filter **filters, uint64_t *block_size,
+ uint64_t *outbuf_size_max)
+{
+ // Validate some of the options.
+ if (options == NULL)
+ return LZMA_PROG_ERROR;
+
+ if (options->flags != 0 || options->threads == 0
+ || options->threads > LZMA_THREADS_MAX)
+ return LZMA_OPTIONS_ERROR;
+
+ if (options->filters != NULL) {
+ // Filter chain was given, use it as is.
+ *filters = options->filters;
+ } else {
+ // Use a preset.
+ if (lzma_easy_preset(opt_easy, options->preset))
+ return LZMA_OPTIONS_ERROR;
+
+ *filters = opt_easy->filters;
+ }
+
+ // Block size
+ if (options->block_size > 0) {
+ if (options->block_size > BLOCK_SIZE_MAX)
+ return LZMA_OPTIONS_ERROR;
+
+ *block_size = options->block_size;
+ } else {
+ // Determine the Block size from the filter chain.
+ *block_size = lzma_mt_block_size(*filters);
+ if (*block_size == 0)
+ return LZMA_OPTIONS_ERROR;
+
+ assert(*block_size <= BLOCK_SIZE_MAX);
+ }
+
+ // Calculate the maximum amount output that a single output buffer
+ // may need to hold. This is the same as the maximum total size of
+ // a Block.
+ *outbuf_size_max = lzma_block_buffer_bound64(*block_size);
+ if (*outbuf_size_max == 0)
+ return LZMA_MEM_ERROR;
+
+ return LZMA_OK;
+}
+
+
+static void
+get_progress(lzma_coder *coder, uint64_t *progress_in, uint64_t *progress_out)
+{
+ // Lock coder->mutex to prevent finishing threads from moving their
+ // progress info from the worker_thread structure to lzma_coder.
+ mythread_sync(coder->mutex) {
+ *progress_in = coder->progress_in;
+ *progress_out = coder->progress_out;
+
+ for (size_t i = 0; i < coder->threads_initialized; ++i) {
+ mythread_sync(coder->threads[i].mutex) {
+ *progress_in += coder->threads[i].progress_in;
+ *progress_out += coder->threads[i]
+ .progress_out;
+ }
+ }
+ }
+
+ return;
+}
+
+
+static lzma_ret
+stream_encoder_mt_init(lzma_next_coder *next, const lzma_allocator *allocator,
+ const lzma_mt *options)
+{
+ lzma_next_coder_init(&stream_encoder_mt_init, next, allocator);
+
+ // Get the filter chain.
+ lzma_options_easy easy;
+ const lzma_filter *filters;
+ uint64_t block_size;
+ uint64_t outbuf_size_max;
+ return_if_error(get_options(options, &easy, &filters,
+ &block_size, &outbuf_size_max));
+
+#if SIZE_MAX < UINT64_MAX
+ if (block_size > SIZE_MAX)
+ return LZMA_MEM_ERROR;
+#endif
+
+ // Validate the filter chain so that we can give an error in this
+ // function instead of delaying it to the first call to lzma_code().
+ // The memory usage calculation verifies the filter chain as
+ // a side effect so we take advatange of that.
+ if (lzma_raw_encoder_memusage(filters) == UINT64_MAX)
+ return LZMA_OPTIONS_ERROR;
+
+ // Validate the Check ID.
+ if ((unsigned int)(options->check) > LZMA_CHECK_ID_MAX)
+ return LZMA_PROG_ERROR;
+
+ if (!lzma_check_is_supported(options->check))
+ return LZMA_UNSUPPORTED_CHECK;
+
+ // Allocate and initialize the base structure if needed.
+ if (next->coder == NULL) {
+ next->coder = lzma_alloc(sizeof(lzma_coder), allocator);
+ if (next->coder == NULL)
+ return LZMA_MEM_ERROR;
+
+ // For the mutex and condition variable initializations
+ // the error handling has to be done here because
+ // stream_encoder_mt_end() doesn't know if they have
+ // already been initialized or not.
+ if (mythread_mutex_init(&next->coder->mutex)) {
+ lzma_free(next->coder, allocator);
+ next->coder = NULL;
+ return LZMA_MEM_ERROR;
+ }
+
+ if (mythread_cond_init(&next->coder->cond)) {
+ mythread_mutex_destroy(&next->coder->mutex);
+ lzma_free(next->coder, allocator);
+ next->coder = NULL;
+ return LZMA_MEM_ERROR;
+ }
+
+ next->code = &stream_encode_mt;
+ next->end = &stream_encoder_mt_end;
+ next->get_progress = &get_progress;
+// next->update = &stream_encoder_mt_update;
+
+ next->coder->filters[0].id = LZMA_VLI_UNKNOWN;
+ next->coder->index_encoder = LZMA_NEXT_CODER_INIT;
+ next->coder->index = NULL;
+ memzero(&next->coder->outq, sizeof(next->coder->outq));
+ next->coder->threads = NULL;
+ next->coder->threads_max = 0;
+ next->coder->threads_initialized = 0;
+ }
+
+ // Basic initializations
+ next->coder->sequence = SEQ_STREAM_HEADER;
+ next->coder->block_size = (size_t)(block_size);
+ next->coder->thread_error = LZMA_OK;
+ next->coder->thr = NULL;
+
+ // Allocate the thread-specific base structures.
+ assert(options->threads > 0);
+ if (next->coder->threads_max != options->threads) {
+ threads_end(next->coder, allocator);
+
+ next->coder->threads = NULL;
+ next->coder->threads_max = 0;
+
+ next->coder->threads_initialized = 0;
+ next->coder->threads_free = NULL;
+
+ next->coder->threads = lzma_alloc(
+ options->threads * sizeof(worker_thread),
+ allocator);
+ if (next->coder->threads == NULL)
+ return LZMA_MEM_ERROR;
+
+ next->coder->threads_max = options->threads;
+ } else {
+ // Reuse the old structures and threads. Tell the running
+ // threads to stop and wait until they have stopped.
+ threads_stop(next->coder, true);
+ }
+
+ // Output queue
+ return_if_error(lzma_outq_init(&next->coder->outq, allocator,
+ outbuf_size_max, options->threads));
+
+ // Timeout
+ next->coder->timeout = options->timeout;
+
+ // Free the old filter chain and copy the new one.
+ for (size_t i = 0; next->coder->filters[i].id != LZMA_VLI_UNKNOWN; ++i)
+ lzma_free(next->coder->filters[i].options, allocator);
+
+ return_if_error(lzma_filters_copy(
+ filters, next->coder->filters, allocator));
+
+ // Index
+ lzma_index_end(next->coder->index, allocator);
+ next->coder->index = lzma_index_init(allocator);
+ if (next->coder->index == NULL)
+ return LZMA_MEM_ERROR;
+
+ // Stream Header
+ next->coder->stream_flags.version = 0;
+ next->coder->stream_flags.check = options->check;
+ return_if_error(lzma_stream_header_encode(
+ &next->coder->stream_flags, next->coder->header));
+
+ next->coder->header_pos = 0;
+
+ // Progress info
+ next->coder->progress_in = 0;
+ next->coder->progress_out = LZMA_STREAM_HEADER_SIZE;
+
+ return LZMA_OK;
+}
+
+
+extern LZMA_API(lzma_ret)
+lzma_stream_encoder_mt(lzma_stream *strm, const lzma_mt *options)
+{
+ lzma_next_strm_init(stream_encoder_mt_init, strm, options);
+
+ strm->internal->supported_actions[LZMA_RUN] = true;
+// strm->internal->supported_actions[LZMA_SYNC_FLUSH] = true;
+ strm->internal->supported_actions[LZMA_FULL_FLUSH] = true;
+ strm->internal->supported_actions[LZMA_FULL_BARRIER] = true;
+ strm->internal->supported_actions[LZMA_FINISH] = true;
+
+ return LZMA_OK;
+}
+
+
+// This function name is a monster but it's consistent with the older
+// monster names. :-( 31 chars is the max that C99 requires so in that
+// sense it's not too long. ;-)
+extern LZMA_API(uint64_t)
+lzma_stream_encoder_mt_memusage(const lzma_mt *options)
+{
+ lzma_options_easy easy;
+ const lzma_filter *filters;
+ uint64_t block_size;
+ uint64_t outbuf_size_max;
+
+ if (get_options(options, &easy, &filters, &block_size,
+ &outbuf_size_max) != LZMA_OK)
+ return UINT64_MAX;
+
+ // Memory usage of the input buffers
+ const uint64_t inbuf_memusage = options->threads * block_size;
+
+ // Memory usage of the filter encoders
+ uint64_t filters_memusage = lzma_raw_encoder_memusage(filters);
+ if (filters_memusage == UINT64_MAX)
+ return UINT64_MAX;
+
+ filters_memusage *= options->threads;
+
+ // Memory usage of the output queue
+ const uint64_t outq_memusage = lzma_outq_memusage(
+ outbuf_size_max, options->threads);
+ if (outq_memusage == UINT64_MAX)
+ return UINT64_MAX;
+
+ // Sum them with overflow checking.
+ uint64_t total_memusage = LZMA_MEMUSAGE_BASE + sizeof(lzma_coder)
+ + options->threads * sizeof(worker_thread);
+
+ if (UINT64_MAX - total_memusage < inbuf_memusage)
+ return UINT64_MAX;
+
+ total_memusage += inbuf_memusage;
+
+ if (UINT64_MAX - total_memusage < filters_memusage)
+ return UINT64_MAX;
+
+ total_memusage += filters_memusage;
+
+ if (UINT64_MAX - total_memusage < outq_memusage)
+ return UINT64_MAX;
+
+ return total_memusage + outq_memusage;
+}
Deleted: vendor/xz/dist/src/liblzma/delta/Makefile.inc
===================================================================
--- vendor/xz/dist/src/liblzma/delta/Makefile.inc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/delta/Makefile.inc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,23 +0,0 @@
-##
-## Author: Lasse Collin
-##
-## This file has been put into the public domain.
-## You can do whatever you want with this file.
-##
-
-liblzma_la_SOURCES += \
- delta/delta_common.c \
- delta/delta_common.h \
- delta/delta_private.h
-
-if COND_ENCODER_DELTA
-liblzma_la_SOURCES += \
- delta/delta_encoder.c \
- delta/delta_encoder.h
-endif
-
-if COND_DECODER_DELTA
-liblzma_la_SOURCES += \
- delta/delta_decoder.c \
- delta/delta_decoder.h
-endif
Modified: vendor/xz/dist/src/liblzma/delta/delta_common.c
===================================================================
--- vendor/xz/dist/src/liblzma/delta/delta_common.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/delta/delta_common.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -15,7 +15,7 @@
static void
-delta_coder_end(lzma_coder *coder, lzma_allocator *allocator)
+delta_coder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_next_end(&coder->next, allocator);
lzma_free(coder, allocator);
@@ -24,7 +24,7 @@
extern lzma_ret
-lzma_delta_coder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_delta_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters)
{
// Allocate memory for the decoder if needed.
Modified: vendor/xz/dist/src/liblzma/delta/delta_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/delta/delta_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/delta/delta_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -27,7 +27,7 @@
static lzma_ret
-delta_decode(lzma_coder *coder, lzma_allocator *allocator,
+delta_decode(lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size, lzma_action action)
@@ -47,7 +47,7 @@
extern lzma_ret
-lzma_delta_decoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_delta_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters)
{
next->code = &delta_decode;
@@ -56,7 +56,7 @@
extern lzma_ret
-lzma_delta_props_decode(void **options, lzma_allocator *allocator,
+lzma_delta_props_decode(void **options, const lzma_allocator *allocator,
const uint8_t *props, size_t props_size)
{
if (props_size != 1)
Modified: vendor/xz/dist/src/liblzma/delta/delta_decoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/delta/delta_decoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/delta/delta_decoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -16,10 +16,11 @@
#include "delta_common.h"
extern lzma_ret lzma_delta_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_delta_props_decode(
- void **options, lzma_allocator *allocator,
+ void **options, const lzma_allocator *allocator,
const uint8_t *props, size_t props_size);
#endif
Modified: vendor/xz/dist/src/liblzma/delta/delta_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/delta/delta_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/delta/delta_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -49,7 +49,7 @@
static lzma_ret
-delta_encode(lzma_coder *coder, lzma_allocator *allocator,
+delta_encode(lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size, lzma_action action)
@@ -84,7 +84,7 @@
static lzma_ret
-delta_encoder_update(lzma_coder *coder, lzma_allocator *allocator,
+delta_encoder_update(lzma_coder *coder, const lzma_allocator *allocator,
const lzma_filter *filters_null lzma_attribute((__unused__)),
const lzma_filter *reversed_filters)
{
@@ -97,7 +97,7 @@
extern lzma_ret
-lzma_delta_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_delta_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters)
{
next->code = &delta_encode;
Modified: vendor/xz/dist/src/liblzma/delta/delta_encoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/delta/delta_encoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/delta/delta_encoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -16,7 +16,8 @@
#include "delta_common.h"
extern lzma_ret lzma_delta_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_delta_props_encode(const void *options, uint8_t *out);
Modified: vendor/xz/dist/src/liblzma/delta/delta_private.h
===================================================================
--- vendor/xz/dist/src/liblzma/delta/delta_private.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/delta/delta_private.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -31,7 +31,7 @@
extern lzma_ret lzma_delta_coder_init(
- lzma_next_coder *next, lzma_allocator *allocator,
+ lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters);
#endif
Added: vendor/xz/dist/src/liblzma/liblzma.map
===================================================================
--- vendor/xz/dist/src/liblzma/liblzma.map (rev 0)
+++ vendor/xz/dist/src/liblzma/liblzma.map 2016-10-15 16:14:07 UTC (rev 9176)
@@ -0,0 +1,108 @@
+XZ_5.0 {
+global:
+ lzma_alone_decoder;
+ lzma_alone_encoder;
+ lzma_auto_decoder;
+ lzma_block_buffer_bound;
+ lzma_block_buffer_decode;
+ lzma_block_buffer_encode;
+ lzma_block_compressed_size;
+ lzma_block_decoder;
+ lzma_block_encoder;
+ lzma_block_header_decode;
+ lzma_block_header_encode;
+ lzma_block_header_size;
+ lzma_block_total_size;
+ lzma_block_unpadded_size;
+ lzma_check_is_supported;
+ lzma_check_size;
+ lzma_code;
+ lzma_crc32;
+ lzma_crc64;
+ lzma_easy_buffer_encode;
+ lzma_easy_decoder_memusage;
+ lzma_easy_encoder;
+ lzma_easy_encoder_memusage;
+ lzma_end;
+ lzma_filter_decoder_is_supported;
+ lzma_filter_encoder_is_supported;
+ lzma_filter_flags_decode;
+ lzma_filter_flags_encode;
+ lzma_filter_flags_size;
+ lzma_filters_copy;
+ lzma_filters_update;
+ lzma_get_check;
+ lzma_index_append;
+ lzma_index_block_count;
+ lzma_index_buffer_decode;
+ lzma_index_buffer_encode;
+ lzma_index_cat;
+ lzma_index_checks;
+ lzma_index_decoder;
+ lzma_index_dup;
+ lzma_index_encoder;
+ lzma_index_end;
+ lzma_index_file_size;
+ lzma_index_hash_append;
+ lzma_index_hash_decode;
+ lzma_index_hash_end;
+ lzma_index_hash_init;
+ lzma_index_hash_size;
+ lzma_index_init;
+ lzma_index_iter_init;
+ lzma_index_iter_locate;
+ lzma_index_iter_next;
+ lzma_index_iter_rewind;
+ lzma_index_memusage;
+ lzma_index_memused;
+ lzma_index_size;
+ lzma_index_stream_count;
+ lzma_index_stream_flags;
+ lzma_index_stream_padding;
+ lzma_index_stream_size;
+ lzma_index_total_size;
+ lzma_index_uncompressed_size;
+ lzma_lzma_preset;
+ lzma_memlimit_get;
+ lzma_memlimit_set;
+ lzma_memusage;
+ lzma_mf_is_supported;
+ lzma_mode_is_supported;
+ lzma_physmem;
+ lzma_properties_decode;
+ lzma_properties_encode;
+ lzma_properties_size;
+ lzma_raw_buffer_decode;
+ lzma_raw_buffer_encode;
+ lzma_raw_decoder;
+ lzma_raw_decoder_memusage;
+ lzma_raw_encoder;
+ lzma_raw_encoder_memusage;
+ lzma_stream_buffer_bound;
+ lzma_stream_buffer_decode;
+ lzma_stream_buffer_encode;
+ lzma_stream_decoder;
+ lzma_stream_encoder;
+ lzma_stream_flags_compare;
+ lzma_stream_footer_decode;
+ lzma_stream_footer_encode;
+ lzma_stream_header_decode;
+ lzma_stream_header_encode;
+ lzma_version_number;
+ lzma_version_string;
+ lzma_vli_decode;
+ lzma_vli_encode;
+ lzma_vli_size;
+};
+
+XZ_5.2 {
+global:
+ lzma_block_uncomp_encode;
+ lzma_cputhreads;
+ lzma_get_progress;
+ lzma_stream_encoder_mt;
+ lzma_stream_encoder_mt_memusage;
+
+local:
+ *;
+} XZ_5.0;
Modified: vendor/xz/dist/src/liblzma/liblzma.pc.in
===================================================================
--- vendor/xz/dist/src/liblzma/liblzma.pc.in 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/liblzma.pc.in 2016-10-15 16:14:07 UTC (rev 9176)
@@ -16,4 +16,4 @@
Version: @PACKAGE_VERSION@
Cflags: -I${includedir}
Libs: -L${libdir} -llzma
-Libs.private: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@
+Libs.private: @PTHREAD_CFLAGS@ @LIBS@
Deleted: vendor/xz/dist/src/liblzma/liblzma_w32res.rc
===================================================================
--- vendor/xz/dist/src/liblzma/liblzma_w32res.rc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/liblzma_w32res.rc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,12 +0,0 @@
-/*
- * Author: Lasse Collin
- *
- * This file has been put into the public domain.
- * You can do whatever you want with this file.
- */
-
-#define MY_TYPE VFT_DLL
-#define MY_NAME "liblzma"
-#define MY_SUFFIX ".dll"
-#define MY_DESC "liblzma data compression library"
-#include "common_w32res.rc"
Deleted: vendor/xz/dist/src/liblzma/lz/Makefile.inc
===================================================================
--- vendor/xz/dist/src/liblzma/lz/Makefile.inc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lz/Makefile.inc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,22 +0,0 @@
-##
-## Author: Lasse Collin
-##
-## This file has been put into the public domain.
-## You can do whatever you want with this file.
-##
-
-if COND_ENCODER_LZ
-liblzma_la_SOURCES += \
- lz/lz_encoder.c \
- lz/lz_encoder.h \
- lz/lz_encoder_hash.h \
- lz/lz_encoder_hash_table.h \
- lz/lz_encoder_mf.c
-endif
-
-
-if COND_DECODER_LZ
-liblzma_la_SOURCES += \
- lz/lz_decoder.c \
- lz/lz_decoder.h
-endif
Modified: vendor/xz/dist/src/liblzma/lz/lz_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/lz/lz_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lz/lz_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -126,7 +126,7 @@
static lzma_ret
lz_decode(lzma_coder *coder,
- lzma_allocator *allocator lzma_attribute((__unused__)),
+ const lzma_allocator *allocator lzma_attribute((__unused__)),
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size,
@@ -184,7 +184,7 @@
static void
-lz_decoder_end(lzma_coder *coder, lzma_allocator *allocator)
+lz_decoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_next_end(&coder->next, allocator);
lzma_free(coder->dict.buf, allocator);
@@ -200,10 +200,10 @@
extern lzma_ret
-lzma_lz_decoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_lz_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters,
lzma_ret (*lz_init)(lzma_lz_decoder *lz,
- lzma_allocator *allocator, const void *options,
+ const lzma_allocator *allocator, const void *options,
lzma_lz_options *lz_options))
{
// Allocate the base structure if it isn't already allocated.
Modified: vendor/xz/dist/src/liblzma/lz/lz_decoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/lz/lz_decoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lz/lz_decoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -67,7 +67,7 @@
lzma_vli uncompressed_size);
/// Free allocated resources
- void (*end)(lzma_coder *coder, lzma_allocator *allocator);
+ void (*end)(lzma_coder *coder, const lzma_allocator *allocator);
} lzma_lz_decoder;
@@ -83,9 +83,10 @@
extern lzma_ret lzma_lz_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters,
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters,
lzma_ret (*lz_init)(lzma_lz_decoder *lz,
- lzma_allocator *allocator, const void *options,
+ const lzma_allocator *allocator, const void *options,
lzma_lz_options *lz_options));
extern uint64_t lzma_lz_decoder_memusage(size_t dictionary_size);
Modified: vendor/xz/dist/src/liblzma/lz/lz_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/lz/lz_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lz/lz_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -20,7 +20,9 @@
# include "lz_encoder_hash_table.h"
#endif
+#include "memcmplen.h"
+
struct lzma_coder_s {
/// LZ-based encoder e.g. LZMA
lzma_lz_encoder lz;
@@ -76,8 +78,9 @@
/// This function must not be called once it has returned LZMA_STREAM_END.
///
static lzma_ret
-fill_window(lzma_coder *coder, lzma_allocator *allocator, const uint8_t *in,
- size_t *in_pos, size_t in_size, lzma_action action)
+fill_window(lzma_coder *coder, const lzma_allocator *allocator,
+ const uint8_t *in, size_t *in_pos, size_t in_size,
+ lzma_action action)
{
assert(coder->mf.read_pos <= coder->mf.write_pos);
@@ -107,6 +110,12 @@
coder->mf.write_pos = write_pos;
+ // Silence Valgrind. lzma_memcmplen() can read extra bytes
+ // and Valgrind will give warnings if those bytes are uninitialized
+ // because Valgrind cannot see that the values of the uninitialized
+ // bytes are eventually ignored.
+ memzero(coder->mf.buffer + write_pos, LZMA_MEMCMPLEN_EXTRA);
+
// If end of stream has been reached or flushing completed, we allow
// the encoder to process all the input (that is, read_pos is allowed
// to reach write_pos). Otherwise we keep keep_size_after bytes
@@ -130,7 +139,7 @@
&& coder->mf.read_pos < coder->mf.read_limit) {
// Match finder may update coder->pending and expects it to
// 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;
// Rewind read_pos so that the match finder can hash
@@ -148,7 +157,7 @@
static lzma_ret
-lz_encode(lzma_coder *coder, lzma_allocator *allocator,
+lz_encode(lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size,
uint8_t *restrict out, size_t *restrict out_pos,
@@ -179,7 +188,7 @@
static bool
-lz_encoder_prepare(lzma_mf *mf, lzma_allocator *allocator,
+lz_encoder_prepare(lzma_mf *mf, const lzma_allocator *allocator,
const lzma_lz_options *lz_options)
{
// For now, the dictionary size is limited to 1.5 GiB. This may grow
@@ -325,25 +334,22 @@
hs += HASH_4_SIZE;
*/
- // If the above code calculating hs is modified, make sure that
- // this assertion stays valid (UINT32_MAX / 5 is not strictly the
- // exact limit). If it doesn't, you need to calculate that
- // hash_size_sum + sons_count cannot overflow.
- assert(hs < UINT32_MAX / 5);
-
- const uint32_t old_count = mf->hash_size_sum + mf->sons_count;
- mf->hash_size_sum = hs;
+ const uint32_t old_hash_count = mf->hash_count;
+ const uint32_t old_sons_count = mf->sons_count;
+ mf->hash_count = hs;
mf->sons_count = mf->cyclic_size;
if (is_bt)
mf->sons_count *= 2;
- const uint32_t new_count = mf->hash_size_sum + mf->sons_count;
-
// Deallocate the old hash array if it exists and has different size
// than what is needed now.
- if (old_count != new_count) {
+ if (old_hash_count != mf->hash_count
+ || old_sons_count != mf->sons_count) {
lzma_free(mf->hash, allocator);
mf->hash = NULL;
+
+ lzma_free(mf->son, allocator);
+ mf->son = NULL;
}
// Maximum number of match finder cycles
@@ -360,14 +366,23 @@
static bool
-lz_encoder_init(lzma_mf *mf, lzma_allocator *allocator,
+lz_encoder_init(lzma_mf *mf, const lzma_allocator *allocator,
const lzma_lz_options *lz_options)
{
// Allocate the history buffer.
if (mf->buffer == NULL) {
- mf->buffer = lzma_alloc(mf->size, allocator);
+ // lzma_memcmplen() is used for the dictionary buffer
+ // so we need to allocate a few extra bytes to prevent
+ // it from reading past the end of the buffer.
+ mf->buffer = lzma_alloc(mf->size + LZMA_MEMCMPLEN_EXTRA,
+ allocator);
if (mf->buffer == NULL)
return true;
+
+ // Keep Valgrind happy with lzma_memcmplen() and initialize
+ // the extra bytes whose value may get read but which will
+ // effectively get ignored.
+ memzero(mf->buffer + mf->size, LZMA_MEMCMPLEN_EXTRA);
}
// Use cyclic_size as initial mf->offset. This allows
@@ -381,43 +396,48 @@
mf->write_pos = 0;
mf->pending = 0;
- // Allocate match finder's hash array.
- const size_t alloc_count = mf->hash_size_sum + mf->sons_count;
-
#if UINT32_MAX >= SIZE_MAX / 4
// Check for integer overflow. (Huge dictionaries are not
// possible on 32-bit CPU.)
- if (alloc_count > SIZE_MAX / sizeof(uint32_t))
+ if (mf->hash_count > SIZE_MAX / sizeof(uint32_t)
+ || mf->sons_count > SIZE_MAX / sizeof(uint32_t))
return true;
#endif
+ // Allocate and initialize the hash table. Since EMPTY_HASH_VALUE
+ // is zero, we can use lzma_alloc_zero() or memzero() for mf->hash.
+ //
+ // We don't need to initialize mf->son, but not doing that may
+ // make Valgrind complain in normalization (see normalize() in
+ // lz_encoder_mf.c). Skipping the initialization is *very* good
+ // when big dictionary is used but only small amount of data gets
+ // actually compressed: most of the mf->son won't get actually
+ // allocated by the kernel, so we avoid wasting RAM and improve
+ // initialization speed a lot.
if (mf->hash == NULL) {
- mf->hash = lzma_alloc(alloc_count * sizeof(uint32_t),
+ mf->hash = lzma_alloc_zero(mf->hash_count * sizeof(uint32_t),
allocator);
- if (mf->hash == NULL)
- return true;
- }
+ mf->son = lzma_alloc(mf->sons_count * sizeof(uint32_t),
+ allocator);
- mf->son = mf->hash + mf->hash_size_sum;
- mf->cyclic_pos = 0;
+ if (mf->hash == NULL || mf->son == NULL) {
+ lzma_free(mf->hash, allocator);
+ mf->hash = NULL;
- // Initialize the hash table. Since EMPTY_HASH_VALUE is zero, we
- // can use memset().
+ lzma_free(mf->son, allocator);
+ mf->son = NULL;
+
+ return true;
+ }
+ } else {
/*
- for (uint32_t i = 0; i < hash_size_sum; ++i)
- mf->hash[i] = EMPTY_HASH_VALUE;
+ for (uint32_t i = 0; i < mf->hash_count; ++i)
+ mf->hash[i] = EMPTY_HASH_VALUE;
*/
- memzero(mf->hash, (size_t)(mf->hash_size_sum) * sizeof(uint32_t));
+ memzero(mf->hash, mf->hash_count * sizeof(uint32_t));
+ }
- // We don't need to initialize mf->son, but not doing that will
- // make Valgrind complain in normalization (see normalize() in
- // lz_encoder_mf.c).
- //
- // Skipping this initialization is *very* good when big dictionary is
- // used but only small amount of data gets actually compressed: most
- // of the mf->hash won't get actually allocated by the kernel, so
- // we avoid wasting RAM and improve initialization speed a lot.
- //memzero(mf->son, (size_t)(mf->sons_count) * sizeof(uint32_t));
+ mf->cyclic_pos = 0;
// Handle preset dictionary.
if (lz_options->preset_dict != NULL
@@ -445,7 +465,8 @@
lzma_mf mf = {
.buffer = NULL,
.hash = NULL,
- .hash_size_sum = 0,
+ .son = NULL,
+ .hash_count = 0,
.sons_count = 0,
};
@@ -454,17 +475,17 @@
return UINT64_MAX;
// Calculate the memory usage.
- return (uint64_t)(mf.hash_size_sum + mf.sons_count)
- * sizeof(uint32_t)
- + (uint64_t)(mf.size) + sizeof(lzma_coder);
+ return ((uint64_t)(mf.hash_count) + mf.sons_count) * sizeof(uint32_t)
+ + mf.size + sizeof(lzma_coder);
}
static void
-lz_encoder_end(lzma_coder *coder, lzma_allocator *allocator)
+lz_encoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_next_end(&coder->next, allocator);
+ lzma_free(coder->mf.son, allocator);
lzma_free(coder->mf.hash, allocator);
lzma_free(coder->mf.buffer, allocator);
@@ -479,7 +500,7 @@
static lzma_ret
-lz_encoder_update(lzma_coder *coder, lzma_allocator *allocator,
+lz_encoder_update(lzma_coder *coder, const lzma_allocator *allocator,
const lzma_filter *filters_null lzma_attribute((__unused__)),
const lzma_filter *reversed_filters)
{
@@ -495,10 +516,10 @@
extern lzma_ret
-lzma_lz_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_lz_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters,
lzma_ret (*lz_init)(lzma_lz_encoder *lz,
- lzma_allocator *allocator, const void *options,
+ const lzma_allocator *allocator, const void *options,
lzma_lz_options *lz_options))
{
#ifdef HAVE_SMALL
@@ -522,7 +543,8 @@
next->coder->mf.buffer = NULL;
next->coder->mf.hash = NULL;
- next->coder->mf.hash_size_sum = 0;
+ next->coder->mf.son = NULL;
+ next->coder->mf.hash_count = 0;
next->coder->mf.sons_count = 0;
next->coder->next = LZMA_NEXT_CODER_INIT;
Modified: vendor/xz/dist/src/liblzma/lz/lz_encoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/lz/lz_encoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lz/lz_encoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -119,7 +119,7 @@
lzma_action action;
/// Number of elements in hash[]
- uint32_t hash_size_sum;
+ uint32_t hash_count;
/// Number of elements in son[]
uint32_t sons_count;
@@ -199,7 +199,7 @@
size_t *restrict out_pos, size_t out_size);
/// Free allocated resources
- void (*end)(lzma_coder *coder, lzma_allocator *allocator);
+ void (*end)(lzma_coder *coder, const lzma_allocator *allocator);
/// Update the options in the middle of the encoding.
lzma_ret (*options_update)(lzma_coder *coder,
@@ -296,10 +296,10 @@
extern lzma_ret lzma_lz_encoder_init(
- lzma_next_coder *next, lzma_allocator *allocator,
+ lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters,
lzma_ret (*lz_init)(lzma_lz_encoder *lz,
- lzma_allocator *allocator, const void *options,
+ const lzma_allocator *allocator, const void *options,
lzma_lz_options *lz_options));
Modified: vendor/xz/dist/src/liblzma/lz/lz_encoder_mf.c
===================================================================
--- vendor/xz/dist/src/liblzma/lz/lz_encoder_mf.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lz/lz_encoder_mf.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -13,6 +13,7 @@
#include "lz_encoder.h"
#include "lz_encoder_hash.h"
+#include "memcmplen.h"
/// \brief Find matches starting from the current byte
@@ -65,9 +66,7 @@
// here because the match distances are zero based.
const uint8_t *p2 = p1 - matches[count - 1].dist - 1;
- while (len_best < limit
- && p1[len_best] == p2[len_best])
- ++len_best;
+ len_best = lzma_memcmplen(p1, p2, len_best, limit);
}
}
@@ -116,24 +115,27 @@
= (MUST_NORMALIZE_POS - mf->cyclic_size);
// & (~(UINT32_C(1) << 10) - 1);
- const uint32_t count = mf->hash_size_sum + mf->sons_count;
- uint32_t *hash = mf->hash;
-
- for (uint32_t i = 0; i < count; ++i) {
+ for (uint32_t i = 0; i < mf->hash_count; ++i) {
// If the distance is greater than the dictionary size,
// we can simply mark the hash element as empty.
+ if (mf->hash[i] <= subvalue)
+ mf->hash[i] = EMPTY_HASH_VALUE;
+ else
+ mf->hash[i] -= subvalue;
+ }
+
+ for (uint32_t i = 0; i < mf->sons_count; ++i) {
+ // Do the same for mf->son.
//
- // NOTE: Only the first mf->hash_size_sum elements are
- // initialized for sure. There may be uninitialized elements
- // in mf->son. Since we go through both mf->hash and
- // mf->son here in normalization, Valgrind may complain
- // that the "if" below depends on uninitialized value. In
- // this case it is safe to ignore the warning. See also the
- // comments in lz_encoder_init() in lz_encoder.c.
- if (hash[i] <= subvalue)
- hash[i] = EMPTY_HASH_VALUE;
+ // NOTE: There may be uninitialized elements in mf->son.
+ // Valgrind may complain that the "if" below depends on
+ // an uninitialized value. In this case it is safe to ignore
+ // the warning. See also the comments in lz_encoder_init()
+ // in lz_encoder.c.
+ if (mf->son[i] <= subvalue)
+ mf->son[i] = EMPTY_HASH_VALUE;
else
- hash[i] -= subvalue;
+ mf->son[i] -= subvalue;
}
// Update offset to match the new locations.
@@ -269,10 +271,7 @@
+ (delta > cyclic_pos ? cyclic_size : 0)];
if (pb[len_best] == cur[len_best] && pb[0] == cur[0]) {
- uint32_t len = 0;
- while (++len != len_limit)
- if (pb[len] != cur[len])
- break;
+ uint32_t len = lzma_memcmplen(pb, cur, 1, len_limit);
if (len_best < len) {
len_best = len;
@@ -318,9 +317,8 @@
uint32_t len_best = 2;
if (delta2 < mf->cyclic_size && *(cur - delta2) == *cur) {
- for ( ; len_best != len_limit; ++len_best)
- if (*(cur + len_best - delta2) != cur[len_best])
- break;
+ len_best = lzma_memcmplen(cur - delta2, cur,
+ len_best, len_limit);
matches[0].len = len_best;
matches[0].dist = delta2 - 1;
@@ -397,9 +395,8 @@
}
if (matches_count != 0) {
- for ( ; len_best != len_limit; ++len_best)
- if (*(cur + len_best - delta2) != cur[len_best])
- break;
+ len_best = lzma_memcmplen(cur - delta2, cur,
+ len_best, len_limit);
matches[matches_count - 1].len = len_best;
@@ -484,9 +481,7 @@
uint32_t len = my_min(len0, len1);
if (pb[len] == cur[len]) {
- while (++len != len_limit)
- if (pb[len] != cur[len])
- break;
+ len = lzma_memcmplen(pb, cur, len + 1, len_limit);
if (len_best < len) {
len_best = len;
@@ -549,9 +544,7 @@
uint32_t len = my_min(len0, len1);
if (pb[len] == cur[len]) {
- while (++len != len_limit)
- if (pb[len] != cur[len])
- break;
+ len = lzma_memcmplen(pb, cur, len + 1, len_limit);
if (len == len_limit) {
*ptr1 = pair[0];
@@ -639,9 +632,8 @@
uint32_t len_best = 2;
if (delta2 < mf->cyclic_size && *(cur - delta2) == *cur) {
- for ( ; len_best != len_limit; ++len_best)
- if (*(cur + len_best - delta2) != cur[len_best])
- break;
+ len_best = lzma_memcmplen(
+ cur, cur - delta2, len_best, len_limit);
matches[0].len = len_best;
matches[0].dist = delta2 - 1;
@@ -712,9 +704,8 @@
}
if (matches_count != 0) {
- for ( ; len_best != len_limit; ++len_best)
- if (*(cur + len_best - delta2) != cur[len_best])
- break;
+ len_best = lzma_memcmplen(
+ cur, cur - delta2, len_best, len_limit);
matches[matches_count - 1].len = len_best;
Deleted: vendor/xz/dist/src/liblzma/lzma/Makefile.inc
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/Makefile.inc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/Makefile.inc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,43 +0,0 @@
-##
-## Author: Lasse Collin
-##
-## This file has been put into the public domain.
-## You can do whatever you want with this file.
-##
-
-EXTRA_DIST += lzma/fastpos_tablegen.c
-
-liblzma_la_SOURCES += lzma/lzma_common.h
-
-if COND_ENCODER_LZMA1
-liblzma_la_SOURCES += \
- lzma/fastpos.h \
- lzma/lzma_encoder.h \
- lzma/lzma_encoder.c \
- lzma/lzma_encoder_presets.c \
- lzma/lzma_encoder_private.h \
- lzma/lzma_encoder_optimum_fast.c \
- lzma/lzma_encoder_optimum_normal.c
-
-if !COND_SMALL
-liblzma_la_SOURCES += lzma/fastpos_table.c
-endif
-endif
-
-if COND_DECODER_LZMA1
-liblzma_la_SOURCES += \
- lzma/lzma_decoder.c \
- lzma/lzma_decoder.h
-endif
-
-if COND_ENCODER_LZMA2
-liblzma_la_SOURCES += \
- lzma/lzma2_encoder.c \
- lzma/lzma2_encoder.h
-endif
-
-if COND_DECODER_LZMA2
-liblzma_la_SOURCES += \
- lzma/lzma2_decoder.c \
- lzma/lzma2_decoder.h
-endif
Modified: vendor/xz/dist/src/liblzma/lzma/fastpos.h
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/fastpos.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/fastpos.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -14,15 +14,15 @@
#ifndef LZMA_FASTPOS_H
#define LZMA_FASTPOS_H
-// LZMA encodes match distances (positions) by storing the highest two
-// bits using a six-bit value [0, 63], and then the missing lower bits.
-// Dictionary size is also stored using this encoding in the new .lzma
+// LZMA encodes match distances by storing the highest two bits using
+// a six-bit value [0, 63], and then the missing lower bits.
+// Dictionary size is also stored using this encoding in the .xz
// file format header.
//
// fastpos.h provides a way to quickly find out the correct six-bit
// values. The following table gives some examples of this encoding:
//
-// pos return
+// dist return
// 0 0
// 1 1
// 2 2
@@ -48,10 +48,10 @@
// Provided functions or macros
// ----------------------------
//
-// get_pos_slot(pos) is the basic version. get_pos_slot_2(pos)
-// assumes that pos >= FULL_DISTANCES, thus the result is at least
-// FULL_DISTANCES_BITS * 2. Using get_pos_slot(pos) instead of
-// get_pos_slot_2(pos) would give the same result, but get_pos_slot_2(pos)
+// get_dist_slot(dist) is the basic version. get_dist_slot_2(dist)
+// assumes that dist >= FULL_DISTANCES, thus the result is at least
+// FULL_DISTANCES_BITS * 2. Using get_dist_slot(dist) instead of
+// get_dist_slot_2(dist) would give the same result, but get_dist_slot_2(dist)
// should be tiny bit faster due to the assumption being made.
//
//
@@ -76,13 +76,14 @@
// slightly faster, but sometimes it is a lot slower.
#ifdef HAVE_SMALL
-# define get_pos_slot(pos) ((pos) <= 4 ? (pos) : get_pos_slot_2(pos))
+# define get_dist_slot(dist) \
+ ((dist) <= 4 ? (dist) : get_dist_slot_2(dist))
static inline uint32_t
-get_pos_slot_2(uint32_t pos)
+get_dist_slot_2(uint32_t dist)
{
- const uint32_t i = bsr32(pos);
- return (i + i) + ((pos >> (i - 1)) & 1);
+ const uint32_t i = bsr32(dist);
+ return (i + i) + ((dist >> (i - 1)) & 1);
}
@@ -99,39 +100,39 @@
#define fastpos_limit(extra, n) \
(UINT32_C(1) << (FASTPOS_BITS + fastpos_shift(extra, n)))
-#define fastpos_result(pos, extra, n) \
- lzma_fastpos[(pos) >> fastpos_shift(extra, n)] \
+#define fastpos_result(dist, extra, n) \
+ lzma_fastpos[(dist) >> fastpos_shift(extra, n)] \
+ 2 * fastpos_shift(extra, n)
static inline uint32_t
-get_pos_slot(uint32_t pos)
+get_dist_slot(uint32_t dist)
{
// If it is small enough, we can pick the result directly from
// the precalculated table.
- if (pos < fastpos_limit(0, 0))
- return lzma_fastpos[pos];
+ if (dist < fastpos_limit(0, 0))
+ return lzma_fastpos[dist];
- if (pos < fastpos_limit(0, 1))
- return fastpos_result(pos, 0, 1);
+ if (dist < fastpos_limit(0, 1))
+ return fastpos_result(dist, 0, 1);
- return fastpos_result(pos, 0, 2);
+ return fastpos_result(dist, 0, 2);
}
#ifdef FULL_DISTANCES_BITS
static inline uint32_t
-get_pos_slot_2(uint32_t pos)
+get_dist_slot_2(uint32_t dist)
{
- assert(pos >= FULL_DISTANCES);
+ assert(dist >= FULL_DISTANCES);
- if (pos < fastpos_limit(FULL_DISTANCES_BITS - 1, 0))
- return fastpos_result(pos, FULL_DISTANCES_BITS - 1, 0);
+ if (dist < fastpos_limit(FULL_DISTANCES_BITS - 1, 0))
+ return fastpos_result(dist, FULL_DISTANCES_BITS - 1, 0);
- if (pos < fastpos_limit(FULL_DISTANCES_BITS - 1, 1))
- return fastpos_result(pos, FULL_DISTANCES_BITS - 1, 1);
+ if (dist < fastpos_limit(FULL_DISTANCES_BITS - 1, 1))
+ return fastpos_result(dist, FULL_DISTANCES_BITS - 1, 1);
- return fastpos_result(pos, FULL_DISTANCES_BITS - 1, 2);
+ return fastpos_result(dist, FULL_DISTANCES_BITS - 1, 2);
}
#endif
Modified: vendor/xz/dist/src/liblzma/lzma/lzma2_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/lzma2_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/lzma2_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -209,7 +209,7 @@
static void
-lzma2_decoder_end(lzma_coder *coder, lzma_allocator *allocator)
+lzma2_decoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
assert(coder->lzma.end == NULL);
lzma_free(coder->lzma.coder, allocator);
@@ -221,7 +221,7 @@
static lzma_ret
-lzma2_decoder_init(lzma_lz_decoder *lz, lzma_allocator *allocator,
+lzma2_decoder_init(lzma_lz_decoder *lz, const lzma_allocator *allocator,
const void *opt, lzma_lz_options *lz_options)
{
if (lz->coder == NULL) {
@@ -248,7 +248,7 @@
extern lzma_ret
-lzma_lzma2_decoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_lzma2_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters)
{
// LZMA2 can only be the last filter in the chain. This is enforced
@@ -269,7 +269,7 @@
extern lzma_ret
-lzma_lzma2_props_decode(void **options, lzma_allocator *allocator,
+lzma_lzma2_props_decode(void **options, const lzma_allocator *allocator,
const uint8_t *props, size_t props_size)
{
if (props_size != 1)
Modified: vendor/xz/dist/src/liblzma/lzma/lzma2_decoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/lzma2_decoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/lzma2_decoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -17,12 +17,13 @@
#include "common.h"
extern lzma_ret lzma_lzma2_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern uint64_t lzma_lzma2_decoder_memusage(const void *options);
extern lzma_ret lzma_lzma2_props_decode(
- void **options, lzma_allocator *allocator,
+ void **options, const lzma_allocator *allocator,
const uint8_t *props, size_t props_size);
#endif
Modified: vendor/xz/dist/src/liblzma/lzma/lzma2_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/lzma2_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/lzma2_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -262,7 +262,7 @@
static void
-lzma2_encoder_end(lzma_coder *coder, lzma_allocator *allocator)
+lzma2_encoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_free(coder->lzma, allocator);
lzma_free(coder, allocator);
@@ -304,7 +304,7 @@
static lzma_ret
-lzma2_encoder_init(lzma_lz_encoder *lz, lzma_allocator *allocator,
+lzma2_encoder_init(lzma_lz_encoder *lz, const lzma_allocator *allocator,
const void *options, lzma_lz_options *lz_options)
{
if (options == NULL)
@@ -349,7 +349,7 @@
extern lzma_ret
-lzma_lzma2_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_lzma2_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters)
{
return lzma_lz_encoder_init(
@@ -387,7 +387,17 @@
if (d == UINT32_MAX)
out[0] = 40;
else
- out[0] = get_pos_slot(d + 1) - 24;
+ out[0] = get_dist_slot(d + 1) - 24;
return LZMA_OK;
}
+
+
+extern uint64_t
+lzma_lzma2_block_size(const void *options)
+{
+ const lzma_options_lzma *const opt = options;
+
+ // Use at least 1 MiB to keep compression ratio better.
+ return my_max((uint64_t)(opt->dict_size) * 3, UINT64_C(1) << 20);
+}
Modified: vendor/xz/dist/src/liblzma/lzma/lzma2_encoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/lzma2_encoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/lzma2_encoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -31,7 +31,7 @@
extern lzma_ret lzma_lzma2_encoder_init(
- lzma_next_coder *next, lzma_allocator *allocator,
+ lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters);
extern uint64_t lzma_lzma2_encoder_memusage(const void *options);
@@ -38,4 +38,6 @@
extern lzma_ret lzma_lzma2_props_encode(const void *options, uint8_t *out);
+extern uint64_t lzma_lzma2_block_size(const void *options);
+
#endif
Modified: vendor/xz/dist/src/liblzma/lzma/lzma_common.h
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/lzma_common.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/lzma_common.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -171,53 +171,54 @@
// Match distance //
////////////////////
-// Different set of probabilities is used for match distances that have very
+// Different sets of probabilities are used for match distances that have very
// short match length: Lengths of 2, 3, and 4 bytes have a separate set of
// probabilities for each length. The matches with longer length use a shared
// set of probabilities.
-#define LEN_TO_POS_STATES 4
+#define DIST_STATES 4
// Macro to get the index of the appropriate probability array.
-#define get_len_to_pos_state(len) \
- ((len) < LEN_TO_POS_STATES + MATCH_LEN_MIN \
+#define get_dist_state(len) \
+ ((len) < DIST_STATES + MATCH_LEN_MIN \
? (len) - MATCH_LEN_MIN \
- : LEN_TO_POS_STATES - 1)
+ : DIST_STATES - 1)
-// The highest two bits of a match distance (pos slot) are encoded using six
-// bits. See fastpos.h for more explanation.
-#define POS_SLOT_BITS 6
-#define POS_SLOTS (1 << POS_SLOT_BITS)
+// The highest two bits of a match distance (distance slot) are encoded
+// using six bits. See fastpos.h for more explanation.
+#define DIST_SLOT_BITS 6
+#define DIST_SLOTS (1 << DIST_SLOT_BITS)
// Match distances up to 127 are fully encoded using probabilities. Since
-// the highest two bits (pos slot) are always encoded using six bits, the
-// distances 0-3 don't need any additional bits to encode, since the pos
-// slot itself is the same as the actual distance. START_POS_MODEL_INDEX
-// indicates the first pos slot where at least one additional bit is needed.
-#define START_POS_MODEL_INDEX 4
+// the highest two bits (distance slot) are always encoded using six bits,
+// the distances 0-3 don't need any additional bits to encode, since the
+// distance slot itself is the same as the actual distance. DIST_MODEL_START
+// indicates the first distance slot where at least one additional bit is
+// needed.
+#define DIST_MODEL_START 4
// Match distances greater than 127 are encoded in three pieces:
-// - pos slot: the highest two bits
+// - distance slot: the highest two bits
// - direct bits: 2-26 bits below the highest two bits
// - alignment bits: four lowest bits
//
// Direct bits don't use any probabilities.
//
-// The pos slot value of 14 is for distances 128-191 (see the table in
+// The distance slot value of 14 is for distances 128-191 (see the table in
// fastpos.h to understand why).
-#define END_POS_MODEL_INDEX 14
+#define DIST_MODEL_END 14
-// Pos slots that indicate a distance <= 127.
-#define FULL_DISTANCES_BITS (END_POS_MODEL_INDEX / 2)
+// Distance slots that indicate a distance <= 127.
+#define FULL_DISTANCES_BITS (DIST_MODEL_END / 2)
#define FULL_DISTANCES (1 << FULL_DISTANCES_BITS)
// For match distances greater than 127, only the highest two bits and the
// lowest four bits (alignment) is encoded using probabilities.
#define ALIGN_BITS 4
-#define ALIGN_TABLE_SIZE (1 << ALIGN_BITS)
-#define ALIGN_MASK (ALIGN_TABLE_SIZE - 1)
+#define ALIGN_SIZE (1 << ALIGN_BITS)
+#define ALIGN_MASK (ALIGN_SIZE - 1)
// LZMA remembers the four most recent match distances. Reusing these distances
// tends to take less space than re-encoding the actual distance value.
-#define REP_DISTANCES 4
+#define REPS 4
#endif
Modified: vendor/xz/dist/src/liblzma/lzma/lzma_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/lzma_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/lzma_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -193,15 +193,15 @@
/// Probability tree for the highest two bits of the match distance.
/// There is a separate probability tree for match lengths of
/// 2 (i.e. MATCH_LEN_MIN), 3, 4, and [5, 273].
- probability pos_slot[LEN_TO_POS_STATES][POS_SLOTS];
+ probability dist_slot[DIST_STATES][DIST_SLOTS];
/// Probability trees for additional bits for match distance when the
/// distance is in the range [4, 127].
- probability pos_special[FULL_DISTANCES - END_POS_MODEL_INDEX];
+ probability pos_special[FULL_DISTANCES - DIST_MODEL_END];
/// Probability tree for the lowest four bits of a match distance
/// that is equal to or greater than 128.
- probability pos_align[ALIGN_TABLE_SIZE];
+ probability pos_align[ALIGN_SIZE];
/// Length of a normal match
lzma_length_decoder match_len_decoder;
@@ -245,8 +245,8 @@
SEQ_LITERAL_WRITE,
SEQ_IS_REP,
seq_len(SEQ_MATCH_LEN),
- seq_6(SEQ_POS_SLOT),
- SEQ_POS_MODEL,
+ seq_6(SEQ_DIST_SLOT),
+ SEQ_DIST_MODEL,
SEQ_DIRECT,
seq_4(SEQ_ALIGN),
SEQ_EOPM,
@@ -289,8 +289,12 @@
// Initialization //
////////////////////
- if (!rc_read_init(&coder->rc, in, in_pos, in_size))
- return LZMA_OK;
+ {
+ const lzma_ret ret = rc_read_init(
+ &coder->rc, in, in_pos, in_size);
+ if (ret != LZMA_STREAM_END)
+ return ret;
+ }
///////////////
// Variables //
@@ -502,28 +506,28 @@
// Prepare to decode the highest two bits of the
// match distance.
- probs = coder->pos_slot[get_len_to_pos_state(len)];
+ probs = coder->dist_slot[get_dist_state(len)];
symbol = 1;
#ifdef HAVE_SMALL
- case SEQ_POS_SLOT:
+ case SEQ_DIST_SLOT:
do {
- rc_bit(probs[symbol], , , SEQ_POS_SLOT);
- } while (symbol < POS_SLOTS);
+ rc_bit(probs[symbol], , , SEQ_DIST_SLOT);
+ } while (symbol < DIST_SLOTS);
#else
- rc_bit_case(probs[symbol], , , SEQ_POS_SLOT0);
- rc_bit_case(probs[symbol], , , SEQ_POS_SLOT1);
- rc_bit_case(probs[symbol], , , SEQ_POS_SLOT2);
- rc_bit_case(probs[symbol], , , SEQ_POS_SLOT3);
- rc_bit_case(probs[symbol], , , SEQ_POS_SLOT4);
- rc_bit_case(probs[symbol], , , SEQ_POS_SLOT5);
+ rc_bit_case(probs[symbol], , , SEQ_DIST_SLOT0);
+ rc_bit_case(probs[symbol], , , SEQ_DIST_SLOT1);
+ rc_bit_case(probs[symbol], , , SEQ_DIST_SLOT2);
+ rc_bit_case(probs[symbol], , , SEQ_DIST_SLOT3);
+ rc_bit_case(probs[symbol], , , SEQ_DIST_SLOT4);
+ rc_bit_case(probs[symbol], , , SEQ_DIST_SLOT5);
#endif
// Get rid of the highest bit that was needed for
// indexing of the probability array.
- symbol -= POS_SLOTS;
+ symbol -= DIST_SLOTS;
assert(symbol <= 63);
- if (symbol < START_POS_MODEL_INDEX) {
+ if (symbol < DIST_MODEL_START) {
// Match distances [0, 3] have only two bits.
rep0 = symbol;
} else {
@@ -533,7 +537,7 @@
assert(limit >= 1 && limit <= 30);
rep0 = 2 + (symbol & 1);
- if (symbol < END_POS_MODEL_INDEX) {
+ if (symbol < DIST_MODEL_END) {
// Prepare to decode the low bits for
// a distance of [4, 127].
assert(limit <= 5);
@@ -553,12 +557,12 @@
- symbol - 1;
symbol = 1;
offset = 0;
- case SEQ_POS_MODEL:
+ case SEQ_DIST_MODEL:
#ifdef HAVE_SMALL
do {
rc_bit(probs[symbol], ,
rep0 += 1 << offset,
- SEQ_POS_MODEL);
+ SEQ_DIST_MODEL);
} while (++offset < limit);
#else
switch (limit) {
@@ -566,25 +570,25 @@
assert(offset == 0);
rc_bit(probs[symbol], ,
rep0 += 1,
- SEQ_POS_MODEL);
+ SEQ_DIST_MODEL);
++offset;
--limit;
case 4:
rc_bit(probs[symbol], ,
rep0 += 1 << offset,
- SEQ_POS_MODEL);
+ SEQ_DIST_MODEL);
++offset;
--limit;
case 3:
rc_bit(probs[symbol], ,
rep0 += 1 << offset,
- SEQ_POS_MODEL);
+ SEQ_DIST_MODEL);
++offset;
--limit;
case 2:
rc_bit(probs[symbol], ,
rep0 += 1 << offset,
- SEQ_POS_MODEL);
+ SEQ_DIST_MODEL);
++offset;
--limit;
case 1:
@@ -596,7 +600,7 @@
// "symbol".
rc_bit_last(probs[symbol], ,
rep0 += 1 << offset,
- SEQ_POS_MODEL);
+ SEQ_DIST_MODEL);
}
#endif
} else {
@@ -637,7 +641,7 @@
rc_bit(coder->pos_align[symbol], ,
rep0 += 4, SEQ_ALIGN2);
case SEQ_ALIGN3:
- // Like in SEQ_POS_MODEL, we don't
+ // Like in SEQ_DIST_MODEL, we don't
// need "symbol" for anything else
// than indexing the probability array.
rc_bit_last(coder->pos_align[symbol], ,
@@ -891,10 +895,10 @@
bit_reset(coder->is_rep2[i]);
}
- for (uint32_t i = 0; i < LEN_TO_POS_STATES; ++i)
- bittree_reset(coder->pos_slot[i], POS_SLOT_BITS);
+ for (uint32_t i = 0; i < DIST_STATES; ++i)
+ bittree_reset(coder->dist_slot[i], DIST_SLOT_BITS);
- for (uint32_t i = 0; i < FULL_DISTANCES - END_POS_MODEL_INDEX; ++i)
+ for (uint32_t i = 0; i < FULL_DISTANCES - DIST_MODEL_END; ++i)
bit_reset(coder->pos_special[i]);
bittree_reset(coder->pos_align, ALIGN_BITS);
@@ -933,7 +937,7 @@
extern lzma_ret
-lzma_lzma_decoder_create(lzma_lz_decoder *lz, lzma_allocator *allocator,
+lzma_lzma_decoder_create(lzma_lz_decoder *lz, const lzma_allocator *allocator,
const void *opt, lzma_lz_options *lz_options)
{
if (lz->coder == NULL) {
@@ -961,7 +965,7 @@
/// initialization (lzma_lzma_decoder_init() passes function pointer to
/// the LZ initialization).
static lzma_ret
-lzma_decoder_init(lzma_lz_decoder *lz, lzma_allocator *allocator,
+lzma_decoder_init(lzma_lz_decoder *lz, const lzma_allocator *allocator,
const void *options, lzma_lz_options *lz_options)
{
if (!is_lclppb_valid(options))
@@ -978,7 +982,7 @@
extern lzma_ret
-lzma_lzma_decoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_lzma_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters)
{
// LZMA can only be the last filter in the chain. This is enforced
@@ -1025,7 +1029,7 @@
extern lzma_ret
-lzma_lzma_props_decode(void **options, lzma_allocator *allocator,
+lzma_lzma_props_decode(void **options, const lzma_allocator *allocator,
const uint8_t *props, size_t props_size)
{
if (props_size != 5)
Modified: vendor/xz/dist/src/liblzma/lzma/lzma_decoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/lzma_decoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/lzma_decoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -19,12 +19,13 @@
/// Allocates and initializes LZMA decoder
extern lzma_ret lzma_lzma_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern uint64_t lzma_lzma_decoder_memusage(const void *options);
extern lzma_ret lzma_lzma_props_decode(
- void **options, lzma_allocator *allocator,
+ void **options, const lzma_allocator *allocator,
const uint8_t *props, size_t props_size);
@@ -40,7 +41,7 @@
/// Allocate and setup function pointers only. This is used by LZMA1 and
/// LZMA2 decoders.
extern lzma_ret lzma_lzma_decoder_create(
- lzma_lz_decoder *lz, lzma_allocator *allocator,
+ lzma_lz_decoder *lz, const lzma_allocator *allocator,
const void *opt, lzma_lz_options *lz_options);
/// Gets memory usage without validating lc/lp/pb. This is used by LZMA2
Modified: vendor/xz/dist/src/liblzma/lzma/lzma_encoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/lzma_encoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/lzma_encoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -148,28 +148,28 @@
length(&coder->rc, &coder->match_len_encoder, pos_state, len,
coder->fast_mode);
- const uint32_t pos_slot = get_pos_slot(distance);
- const uint32_t len_to_pos_state = get_len_to_pos_state(len);
- rc_bittree(&coder->rc, coder->pos_slot[len_to_pos_state],
- POS_SLOT_BITS, pos_slot);
+ const uint32_t dist_slot = get_dist_slot(distance);
+ const uint32_t dist_state = get_dist_state(len);
+ rc_bittree(&coder->rc, coder->dist_slot[dist_state],
+ DIST_SLOT_BITS, dist_slot);
- if (pos_slot >= START_POS_MODEL_INDEX) {
- const uint32_t footer_bits = (pos_slot >> 1) - 1;
- const uint32_t base = (2 | (pos_slot & 1)) << footer_bits;
- const uint32_t pos_reduced = distance - base;
+ if (dist_slot >= DIST_MODEL_START) {
+ const uint32_t footer_bits = (dist_slot >> 1) - 1;
+ const uint32_t base = (2 | (dist_slot & 1)) << footer_bits;
+ const uint32_t dist_reduced = distance - base;
- if (pos_slot < END_POS_MODEL_INDEX) {
- // Careful here: base - pos_slot - 1 can be -1, but
+ if (dist_slot < DIST_MODEL_END) {
+ // Careful here: base - dist_slot - 1 can be -1, but
// rc_bittree_reverse starts at probs[1], not probs[0].
rc_bittree_reverse(&coder->rc,
- coder->pos_special + base - pos_slot - 1,
- footer_bits, pos_reduced);
+ coder->dist_special + base - dist_slot - 1,
+ footer_bits, dist_reduced);
} else {
- rc_direct(&coder->rc, pos_reduced >> ALIGN_BITS,
+ rc_direct(&coder->rc, dist_reduced >> ALIGN_BITS,
footer_bits - ALIGN_BITS);
rc_bittree_reverse(
- &coder->rc, coder->pos_align,
- ALIGN_BITS, pos_reduced & ALIGN_MASK);
+ &coder->rc, coder->dist_align,
+ ALIGN_BITS, dist_reduced & ALIGN_MASK);
++coder->align_price_count;
}
}
@@ -247,7 +247,7 @@
rc_bit(&coder->rc,
&coder->is_match[coder->state][pos_state], 1);
- if (back < REP_DISTANCES) {
+ if (back < REPS) {
// It's a repeated match i.e. the same distance
// has been used earlier.
rc_bit(&coder->rc, &coder->is_rep[coder->state], 1);
@@ -255,7 +255,7 @@
} else {
// Normal match
rc_bit(&coder->rc, &coder->is_rep[coder->state], 0);
- match(coder, pos_state, back - REP_DISTANCES, len);
+ match(coder, pos_state, back - REPS, len);
}
}
@@ -353,9 +353,9 @@
// Get optimal match (repeat position and length).
// Value ranges for pos:
- // - [0, REP_DISTANCES): repeated match
- // - [REP_DISTANCES, UINT32_MAX):
- // match at (pos - REP_DISTANCES)
+ // - [0, REPS): repeated match
+ // - [REPS, UINT32_MAX):
+ // match at (pos - REPS)
// - UINT32_MAX: not a match but a literal
// Value ranges for len:
// - [MATCH_LEN_MIN, MATCH_LEN_MAX]
@@ -464,7 +464,7 @@
bittree_reset(lencoder->high, LEN_HIGH_BITS);
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)
length_update_prices(lencoder, pos_state);
@@ -487,7 +487,7 @@
// State
coder->state = STATE_LIT_LIT;
- for (size_t i = 0; i < REP_DISTANCES; ++i)
+ for (size_t i = 0; i < REPS; ++i)
coder->reps[i] = 0;
literal_init(coder->literal, options->lc, options->lp);
@@ -505,14 +505,14 @@
bit_reset(coder->is_rep2[i]);
}
- for (size_t i = 0; i < FULL_DISTANCES - END_POS_MODEL_INDEX; ++i)
- bit_reset(coder->pos_special[i]);
+ for (size_t i = 0; i < FULL_DISTANCES - DIST_MODEL_END; ++i)
+ bit_reset(coder->dist_special[i]);
// Bit tree encoders
- for (size_t i = 0; i < LEN_TO_POS_STATES; ++i)
- bittree_reset(coder->pos_slot[i], POS_SLOT_BITS);
+ for (size_t i = 0; i < DIST_STATES; ++i)
+ bittree_reset(coder->dist_slot[i], DIST_SLOT_BITS);
- bittree_reset(coder->pos_align, ALIGN_BITS);
+ bittree_reset(coder->dist_align, ALIGN_BITS);
// Length encoders
length_encoder_reset(&coder->match_len_encoder,
@@ -545,7 +545,8 @@
extern lzma_ret
-lzma_lzma_encoder_create(lzma_coder **coder_ptr, lzma_allocator *allocator,
+lzma_lzma_encoder_create(lzma_coder **coder_ptr,
+ const lzma_allocator *allocator,
const lzma_options_lzma *options, lzma_lz_options *lz_options)
{
// Allocate lzma_coder if it wasn't already allocated.
@@ -604,7 +605,7 @@
static lzma_ret
-lzma_encoder_init(lzma_lz_encoder *lz, lzma_allocator *allocator,
+lzma_encoder_init(lzma_lz_encoder *lz, const lzma_allocator *allocator,
const void *options, lzma_lz_options *lz_options)
{
lz->code = &lzma_encode;
@@ -614,7 +615,7 @@
extern lzma_ret
-lzma_lzma_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_lzma_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters)
{
return lzma_lz_encoder_init(
Modified: vendor/xz/dist/src/liblzma/lzma/lzma_encoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/lzma_encoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/lzma_encoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -18,7 +18,8 @@
extern lzma_ret lzma_lzma_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern uint64_t lzma_lzma_encoder_memusage(const void *options);
@@ -35,7 +36,7 @@
/// Initializes raw LZMA encoder; this is used by LZMA2.
extern lzma_ret lzma_lzma_encoder_create(
- lzma_coder **coder_ptr, lzma_allocator *allocator,
+ lzma_coder **coder_ptr, const lzma_allocator *allocator,
const lzma_options_lzma *options, lzma_lz_options *lz_options);
Modified: vendor/xz/dist/src/liblzma/lzma/lzma_encoder_optimum_fast.c
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/lzma_encoder_optimum_fast.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/lzma_encoder_optimum_fast.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -10,6 +10,7 @@
///////////////////////////////////////////////////////////////////////////////
#include "lzma_encoder_private.h"
+#include "memcmplen.h"
#define change_pair(small_dist, big_dist) \
@@ -46,7 +47,7 @@
uint32_t rep_len = 0;
uint32_t rep_index = 0;
- for (uint32_t i = 0; i < REP_DISTANCES; ++i) {
+ for (uint32_t i = 0; i < REPS; ++i) {
// Pointer to the beginning of the match candidate
const uint8_t *const buf_back = buf - coder->reps[i] - 1;
@@ -57,9 +58,8 @@
// The first two bytes matched.
// Calculate the length of the match.
- uint32_t len;
- for (len = 2; len < buf_avail
- && buf[len] == buf_back[len]; ++len) ;
+ const uint32_t len = lzma_memcmplen(
+ buf, buf_back, 2, buf_avail);
// If we have found a repeated match that is at least
// nice_len long, return it immediately.
@@ -79,8 +79,7 @@
// We didn't find a long enough repeated match. Encode it as a normal
// match if the match length is at least nice_len.
if (len_main >= nice_len) {
- *back_res = coder->matches[matches_count - 1].dist
- + REP_DISTANCES;
+ *back_res = coder->matches[matches_count - 1].dist + REPS;
*len_res = len_main;
mf_skip(mf, len_main - 1);
return;
@@ -153,19 +152,10 @@
// the old buf pointer instead of recalculating it with mf_ptr().
++buf;
- const uint32_t limit = len_main - 1;
+ const uint32_t limit = my_max(2, len_main - 1);
- for (uint32_t i = 0; i < REP_DISTANCES; ++i) {
- const uint8_t *const buf_back = buf - coder->reps[i] - 1;
-
- if (not_equal_16(buf, buf_back))
- continue;
-
- uint32_t len;
- for (len = 2; len < limit
- && buf[len] == buf_back[len]; ++len) ;
-
- if (len >= limit) {
+ for (uint32_t i = 0; i < REPS; ++i) {
+ if (memcmp(buf, buf - coder->reps[i] - 1, limit) == 0) {
*back_res = UINT32_MAX;
*len_res = 1;
return;
@@ -172,7 +162,7 @@
}
}
- *back_res = back_main + REP_DISTANCES;
+ *back_res = back_main + REPS;
*len_res = len_main;
mf_skip(mf, len_main - 2);
return;
Modified: vendor/xz/dist/src/liblzma/lzma/lzma_encoder_optimum_normal.c
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/lzma_encoder_optimum_normal.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/lzma_encoder_optimum_normal.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -11,6 +11,7 @@
#include "lzma_encoder_private.h"
#include "fastpos.h"
+#include "memcmplen.h"
////////////
@@ -108,18 +109,18 @@
static inline uint32_t
-get_pos_len_price(const lzma_coder *const coder, const uint32_t pos,
+get_dist_len_price(const lzma_coder *const coder, const uint32_t dist,
const uint32_t len, const uint32_t pos_state)
{
- const uint32_t len_to_pos_state = get_len_to_pos_state(len);
+ const uint32_t dist_state = get_dist_state(len);
uint32_t price;
- if (pos < FULL_DISTANCES) {
- price = coder->distances_prices[len_to_pos_state][pos];
+ if (dist < FULL_DISTANCES) {
+ price = coder->dist_prices[dist_state][dist];
} else {
- const uint32_t pos_slot = get_pos_slot_2(pos);
- price = coder->pos_slot_prices[len_to_pos_state][pos_slot]
- + coder->align_prices[pos & ALIGN_MASK];
+ const uint32_t dist_slot = get_dist_slot_2(dist);
+ price = coder->dist_slot_prices[dist_state][dist_slot]
+ + coder->align_prices[dist & ALIGN_MASK];
}
price += get_len_price(&coder->match_len_encoder, len, pos_state);
@@ -129,55 +130,53 @@
static void
-fill_distances_prices(lzma_coder *coder)
+fill_dist_prices(lzma_coder *coder)
{
- for (uint32_t len_to_pos_state = 0;
- len_to_pos_state < LEN_TO_POS_STATES;
- ++len_to_pos_state) {
+ for (uint32_t dist_state = 0; dist_state < DIST_STATES; ++dist_state) {
- uint32_t *const pos_slot_prices
- = coder->pos_slot_prices[len_to_pos_state];
+ uint32_t *const dist_slot_prices
+ = coder->dist_slot_prices[dist_state];
- // Price to encode the pos_slot.
- for (uint32_t pos_slot = 0;
- pos_slot < coder->dist_table_size; ++pos_slot)
- pos_slot_prices[pos_slot] = rc_bittree_price(
- coder->pos_slot[len_to_pos_state],
- POS_SLOT_BITS, pos_slot);
+ // Price to encode the dist_slot.
+ for (uint32_t dist_slot = 0;
+ dist_slot < coder->dist_table_size; ++dist_slot)
+ dist_slot_prices[dist_slot] = rc_bittree_price(
+ coder->dist_slot[dist_state],
+ DIST_SLOT_BITS, dist_slot);
// For matches with distance >= FULL_DISTANCES, add the price
// of the direct bits part of the match distance. (Align bits
// are handled by fill_align_prices()).
- for (uint32_t pos_slot = END_POS_MODEL_INDEX;
- pos_slot < coder->dist_table_size; ++pos_slot)
- pos_slot_prices[pos_slot] += rc_direct_price(
- ((pos_slot >> 1) - 1) - ALIGN_BITS);
+ for (uint32_t dist_slot = DIST_MODEL_END;
+ dist_slot < coder->dist_table_size;
+ ++dist_slot)
+ dist_slot_prices[dist_slot] += rc_direct_price(
+ ((dist_slot >> 1) - 1) - ALIGN_BITS);
// Distances in the range [0, 3] are fully encoded with
- // pos_slot, so they are used for coder->distances_prices
+ // dist_slot, so they are used for coder->dist_prices
// as is.
- for (uint32_t i = 0; i < START_POS_MODEL_INDEX; ++i)
- coder->distances_prices[len_to_pos_state][i]
- = pos_slot_prices[i];
+ for (uint32_t i = 0; i < DIST_MODEL_START; ++i)
+ coder->dist_prices[dist_state][i]
+ = dist_slot_prices[i];
}
- // Distances in the range [4, 127] depend on pos_slot and pos_special.
- // We do this in a loop separate from the above loop to avoid
- // redundant calls to get_pos_slot().
- for (uint32_t i = START_POS_MODEL_INDEX; i < FULL_DISTANCES; ++i) {
- const uint32_t pos_slot = get_pos_slot(i);
- const uint32_t footer_bits = ((pos_slot >> 1) - 1);
- const uint32_t base = (2 | (pos_slot & 1)) << footer_bits;
+ // Distances in the range [4, 127] depend on dist_slot and
+ // dist_special. We do this in a loop separate from the above
+ // loop to avoid redundant calls to get_dist_slot().
+ for (uint32_t i = DIST_MODEL_START; i < FULL_DISTANCES; ++i) {
+ const uint32_t dist_slot = get_dist_slot(i);
+ const uint32_t footer_bits = ((dist_slot >> 1) - 1);
+ const uint32_t base = (2 | (dist_slot & 1)) << footer_bits;
const uint32_t price = rc_bittree_reverse_price(
- coder->pos_special + base - pos_slot - 1,
+ coder->dist_special + base - dist_slot - 1,
footer_bits, i - base);
- for (uint32_t len_to_pos_state = 0;
- len_to_pos_state < LEN_TO_POS_STATES;
- ++len_to_pos_state)
- coder->distances_prices[len_to_pos_state][i]
- = price + coder->pos_slot_prices[
- len_to_pos_state][pos_slot];
+ for (uint32_t dist_state = 0; dist_state < DIST_STATES;
+ ++dist_state)
+ coder->dist_prices[dist_state][i]
+ = price + coder->dist_slot_prices[
+ dist_state][dist_slot];
}
coder->match_price_count = 0;
@@ -188,9 +187,9 @@
static void
fill_align_prices(lzma_coder *coder)
{
- for (uint32_t i = 0; i < ALIGN_TABLE_SIZE; ++i)
+ for (uint32_t i = 0; i < ALIGN_SIZE; ++i)
coder->align_prices[i] = rc_bittree_reverse_price(
- coder->pos_align, ALIGN_BITS, i);
+ coder->dist_align, ALIGN_BITS, i);
coder->align_price_count = 0;
return;
@@ -296,10 +295,10 @@
const uint8_t *const buf = mf_ptr(mf) - 1;
- uint32_t rep_lens[REP_DISTANCES];
+ uint32_t rep_lens[REPS];
uint32_t rep_max_index = 0;
- for (uint32_t i = 0; i < REP_DISTANCES; ++i) {
+ for (uint32_t i = 0; i < REPS; ++i) {
const uint8_t *const buf_back = buf - coder->reps[i] - 1;
if (not_equal_16(buf, buf_back)) {
@@ -307,13 +306,9 @@
continue;
}
- uint32_t len_test;
- for (len_test = 2; len_test < buf_avail
- && buf[len_test] == buf_back[len_test];
- ++len_test) ;
+ rep_lens[i] = lzma_memcmplen(buf, buf_back, 2, buf_avail);
- rep_lens[i] = len_test;
- if (len_test > rep_lens[rep_max_index])
+ if (rep_lens[i] > rep_lens[rep_max_index])
rep_max_index = i;
}
@@ -326,8 +321,7 @@
if (len_main >= nice_len) {
- *back_res = coder->matches[matches_count - 1].dist
- + REP_DISTANCES;
+ *back_res = coder->matches[matches_count - 1].dist + REPS;
*len_res = len_main;
mf_skip(mf, len_main - 1);
return UINT32_MAX;
@@ -381,7 +375,7 @@
coder->opts[1].pos_prev = 0;
- for (uint32_t i = 0; i < REP_DISTANCES; ++i)
+ for (uint32_t i = 0; i < REPS; ++i)
coder->opts[0].backs[i] = coder->reps[i];
uint32_t len = len_end;
@@ -390,7 +384,7 @@
} while (--len >= 2);
- for (uint32_t i = 0; i < REP_DISTANCES; ++i) {
+ for (uint32_t i = 0; i < REPS; ++i) {
uint32_t rep_len = rep_lens[i];
if (rep_len < 2)
continue;
@@ -426,14 +420,13 @@
for(; ; ++len) {
const uint32_t dist = coder->matches[i].dist;
const uint32_t cur_and_len_price = normal_match_price
- + get_pos_len_price(coder,
+ + get_dist_len_price(coder,
dist, len, pos_state);
if (cur_and_len_price < coder->opts[len].price) {
coder->opts[len].price = cur_and_len_price;
coder->opts[len].pos_prev = 0;
- coder->opts[len].back_prev
- = dist + REP_DISTANCES;
+ coder->opts[len].back_prev = dist + REPS;
coder->opts[len].prev_1_is_literal = false;
}
@@ -463,7 +456,7 @@
if (coder->opts[cur].prev_2) {
state = coder->opts[coder->opts[cur].pos_prev_2].state;
- if (coder->opts[cur].back_prev_2 < REP_DISTANCES)
+ if (coder->opts[cur].back_prev_2 < REPS)
update_long_rep(state);
else
update_match(state);
@@ -492,13 +485,13 @@
update_long_rep(state);
} else {
pos = coder->opts[cur].back_prev;
- if (pos < REP_DISTANCES)
+ if (pos < REPS)
update_long_rep(state);
else
update_match(state);
}
- if (pos < REP_DISTANCES) {
+ if (pos < REPS) {
reps[0] = coder->opts[pos_prev].backs[pos];
uint32_t i;
@@ -505,13 +498,13 @@
for (i = 1; i <= pos; ++i)
reps[i] = coder->opts[pos_prev].backs[i - 1];
- for (; i < REP_DISTANCES; ++i)
+ for (; i < REPS; ++i)
reps[i] = coder->opts[pos_prev].backs[i];
} else {
- reps[0] = pos - REP_DISTANCES;
+ reps[0] = pos - REPS;
- for (uint32_t i = 1; i < REP_DISTANCES; ++i)
+ for (uint32_t i = 1; i < REPS; ++i)
reps[i] = coder->opts[pos_prev].backs[i - 1];
}
}
@@ -518,7 +511,7 @@
coder->opts[cur].state = state;
- for (uint32_t i = 0; i < REP_DISTANCES; ++i)
+ for (uint32_t i = 0; i < REPS; ++i)
coder->opts[cur].backs[i] = reps[i];
const uint32_t cur_price = coder->opts[cur].price;
@@ -572,12 +565,8 @@
const uint8_t *const buf_back = buf - reps[0] - 1;
const uint32_t limit = my_min(buf_avail_full, nice_len + 1);
- uint32_t len_test = 1;
- while (len_test < limit && buf[len_test] == buf_back[len_test])
- ++len_test;
+ const uint32_t len_test = lzma_memcmplen(buf, buf_back, 1, limit) - 1;
- --len_test;
-
if (len_test >= 2) {
lzma_lzma_state state_2 = state;
update_literal(state_2);
@@ -611,15 +600,12 @@
uint32_t start_len = 2; // speed optimization
- for (uint32_t rep_index = 0; rep_index < REP_DISTANCES; ++rep_index) {
+ for (uint32_t rep_index = 0; rep_index < REPS; ++rep_index) {
const uint8_t *const buf_back = buf - reps[rep_index] - 1;
if (not_equal_16(buf, buf_back))
continue;
- uint32_t len_test;
- for (len_test = 2; len_test < buf_avail
- && buf[len_test] == buf_back[len_test];
- ++len_test) ;
+ uint32_t len_test = lzma_memcmplen(buf, buf_back, 2, buf_avail);
while (len_end < cur + len_test)
coder->opts[++len_end].price = RC_INFINITY_PRICE;
@@ -728,7 +714,7 @@
for (uint32_t len_test = start_len; ; ++len_test) {
const uint32_t cur_back = coder->matches[i].dist;
uint32_t cur_and_len_price = normal_match_price
- + get_pos_len_price(coder,
+ + get_dist_len_price(coder,
cur_back, len_test, pos_state);
if (cur_and_len_price < coder->opts[cur + len_test].price) {
@@ -735,7 +721,7 @@
coder->opts[cur + len_test].price = cur_and_len_price;
coder->opts[cur + len_test].pos_prev = cur;
coder->opts[cur + len_test].back_prev
- = cur_back + REP_DISTANCES;
+ = cur_back + REPS;
coder->opts[cur + len_test].prev_1_is_literal = false;
}
@@ -795,7 +781,7 @@
coder->opts[offset].prev_2 = true;
coder->opts[offset].pos_prev_2 = cur;
coder->opts[offset].back_prev_2
- = cur_back + REP_DISTANCES;
+ = cur_back + REPS;
}
//}
}
@@ -831,9 +817,9 @@
// In liblzma they were moved into this single place.
if (mf->read_ahead == 0) {
if (coder->match_price_count >= (1 << 7))
- fill_distances_prices(coder);
+ fill_dist_prices(coder);
- if (coder->align_price_count >= ALIGN_TABLE_SIZE)
+ if (coder->align_price_count >= ALIGN_SIZE)
fill_align_prices(coder);
}
@@ -845,7 +831,7 @@
if (len_end == UINT32_MAX)
return;
- uint32_t reps[REP_DISTANCES];
+ uint32_t reps[REPS];
memcpy(reps, coder->reps, sizeof(reps));
uint32_t cur;
Modified: vendor/xz/dist/src/liblzma/lzma/lzma_encoder_private.h
===================================================================
--- vendor/xz/dist/src/liblzma/lzma/lzma_encoder_private.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/lzma/lzma_encoder_private.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -64,7 +64,7 @@
uint32_t pos_prev; // pos_next;
uint32_t back_prev;
- uint32_t backs[REP_DISTANCES];
+ uint32_t backs[REPS];
} lzma_optimal;
@@ -77,7 +77,7 @@
lzma_lzma_state state;
/// The four most recent match distances
- uint32_t reps[REP_DISTANCES];
+ uint32_t reps[REPS];
/// Array of match candidates
lzma_match matches[MATCH_LEN_MAX + 1];
@@ -112,9 +112,9 @@
probability is_rep1[STATES];
probability is_rep2[STATES];
probability is_rep0_long[STATES][POS_STATES_MAX];
- probability pos_slot[LEN_TO_POS_STATES][POS_SLOTS];
- probability pos_special[FULL_DISTANCES - END_POS_MODEL_INDEX];
- probability pos_align[ALIGN_TABLE_SIZE];
+ probability dist_slot[DIST_STATES][DIST_SLOTS];
+ probability dist_special[FULL_DISTANCES - DIST_MODEL_END];
+ probability dist_align[ALIGN_SIZE];
// These are the same as in lzma_decoder.c except that the encoders
// include also price tables.
@@ -122,12 +122,12 @@
lzma_length_encoder rep_len_encoder;
// Price tables
- uint32_t pos_slot_prices[LEN_TO_POS_STATES][POS_SLOTS];
- uint32_t distances_prices[LEN_TO_POS_STATES][FULL_DISTANCES];
+ uint32_t dist_slot_prices[DIST_STATES][DIST_SLOTS];
+ uint32_t dist_prices[DIST_STATES][FULL_DISTANCES];
uint32_t dist_table_size;
uint32_t match_price_count;
- uint32_t align_prices[ALIGN_TABLE_SIZE];
+ uint32_t align_prices[ALIGN_SIZE];
uint32_t align_price_count;
// Optimal
Deleted: vendor/xz/dist/src/liblzma/rangecoder/Makefile.inc
===================================================================
--- vendor/xz/dist/src/liblzma/rangecoder/Makefile.inc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/rangecoder/Makefile.inc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,21 +0,0 @@
-##
-## Author: Lasse Collin
-##
-## This file has been put into the public domain.
-## You can do whatever you want with this file.
-##
-
-EXTRA_DIST += rangecoder/price_tablegen.c
-
-liblzma_la_SOURCES += rangecoder/range_common.h
-
-if COND_ENCODER_LZMA1
-liblzma_la_SOURCES += \
- rangecoder/range_encoder.h \
- rangecoder/price.h \
- rangecoder/price_table.c
-endif
-
-if COND_DECODER_LZMA1
-liblzma_la_SOURCES += rangecoder/range_decoder.h
-endif
Modified: vendor/xz/dist/src/liblzma/rangecoder/range_decoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/rangecoder/range_decoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/rangecoder/range_decoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -25,20 +25,26 @@
/// Reads the first five bytes to initialize the range decoder.
-static inline bool
+static inline lzma_ret
rc_read_init(lzma_range_decoder *rc, const uint8_t *restrict in,
size_t *restrict in_pos, size_t in_size)
{
while (rc->init_bytes_left > 0) {
if (*in_pos == in_size)
- return false;
+ return LZMA_OK;
+ // The first byte is always 0x00. It could have been omitted
+ // in LZMA2 but it wasn't, so one byte is wasted in every
+ // LZMA2 chunk.
+ if (rc->init_bytes_left == 5 && in[*in_pos] != 0x00)
+ return LZMA_DATA_ERROR;
+
rc->code = (rc->code << 8) | in[*in_pos];
++*in_pos;
--rc->init_bytes_left;
}
- return true;
+ return LZMA_STREAM_END;
}
Deleted: vendor/xz/dist/src/liblzma/simple/Makefile.inc
===================================================================
--- vendor/xz/dist/src/liblzma/simple/Makefile.inc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/simple/Makefile.inc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,47 +0,0 @@
-##
-## Author: Lasse Collin
-##
-## This file has been put into the public domain.
-## You can do whatever you want with this file.
-##
-
-liblzma_la_SOURCES += \
- simple/simple_coder.c \
- simple/simple_coder.h \
- simple/simple_private.h
-
-if COND_ENCODER_SIMPLE
-liblzma_la_SOURCES += \
- simple/simple_encoder.c \
- simple/simple_encoder.h
-endif
-
-if COND_DECODER_SIMPLE
-liblzma_la_SOURCES += \
- simple/simple_decoder.c \
- simple/simple_decoder.h
-endif
-
-if COND_FILTER_X86
-liblzma_la_SOURCES += simple/x86.c
-endif
-
-if COND_FILTER_POWERPC
-liblzma_la_SOURCES += simple/powerpc.c
-endif
-
-if COND_FILTER_IA64
-liblzma_la_SOURCES += simple/ia64.c
-endif
-
-if COND_FILTER_ARM
-liblzma_la_SOURCES += simple/arm.c
-endif
-
-if COND_FILTER_ARMTHUMB
-liblzma_la_SOURCES += simple/armthumb.c
-endif
-
-if COND_FILTER_SPARC
-liblzma_la_SOURCES += simple/sparc.c
-endif
Modified: vendor/xz/dist/src/liblzma/simple/arm.c
===================================================================
--- vendor/xz/dist/src/liblzma/simple/arm.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/simple/arm.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -45,7 +45,7 @@
static lzma_ret
-arm_coder_init(lzma_next_coder *next, lzma_allocator *allocator,
+arm_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters, bool is_encoder)
{
return lzma_simple_coder_init(next, allocator, filters,
@@ -54,7 +54,8 @@
extern lzma_ret
-lzma_simple_arm_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_simple_arm_encoder_init(lzma_next_coder *next,
+ const lzma_allocator *allocator,
const lzma_filter_info *filters)
{
return arm_coder_init(next, allocator, filters, true);
@@ -62,7 +63,8 @@
extern lzma_ret
-lzma_simple_arm_decoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_simple_arm_decoder_init(lzma_next_coder *next,
+ const lzma_allocator *allocator,
const lzma_filter_info *filters)
{
return arm_coder_init(next, allocator, filters, false);
Modified: vendor/xz/dist/src/liblzma/simple/armthumb.c
===================================================================
--- vendor/xz/dist/src/liblzma/simple/armthumb.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/simple/armthumb.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -50,7 +50,7 @@
static lzma_ret
-armthumb_coder_init(lzma_next_coder *next, lzma_allocator *allocator,
+armthumb_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters, bool is_encoder)
{
return lzma_simple_coder_init(next, allocator, filters,
@@ -60,7 +60,8 @@
extern lzma_ret
lzma_simple_armthumb_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters)
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters)
{
return armthumb_coder_init(next, allocator, filters, true);
}
@@ -68,7 +69,8 @@
extern lzma_ret
lzma_simple_armthumb_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters)
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters)
{
return armthumb_coder_init(next, allocator, filters, false);
}
Modified: vendor/xz/dist/src/liblzma/simple/ia64.c
===================================================================
--- vendor/xz/dist/src/liblzma/simple/ia64.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/simple/ia64.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -86,7 +86,7 @@
static lzma_ret
-ia64_coder_init(lzma_next_coder *next, lzma_allocator *allocator,
+ia64_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters, bool is_encoder)
{
return lzma_simple_coder_init(next, allocator, filters,
@@ -96,7 +96,8 @@
extern lzma_ret
lzma_simple_ia64_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters)
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters)
{
return ia64_coder_init(next, allocator, filters, true);
}
@@ -104,7 +105,8 @@
extern lzma_ret
lzma_simple_ia64_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters)
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters)
{
return ia64_coder_init(next, allocator, filters, false);
}
Modified: vendor/xz/dist/src/liblzma/simple/powerpc.c
===================================================================
--- vendor/xz/dist/src/liblzma/simple/powerpc.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/simple/powerpc.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -49,7 +49,7 @@
static lzma_ret
-powerpc_coder_init(lzma_next_coder *next, lzma_allocator *allocator,
+powerpc_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters, bool is_encoder)
{
return lzma_simple_coder_init(next, allocator, filters,
@@ -59,7 +59,8 @@
extern lzma_ret
lzma_simple_powerpc_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters)
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters)
{
return powerpc_coder_init(next, allocator, filters, true);
}
@@ -67,7 +68,8 @@
extern lzma_ret
lzma_simple_powerpc_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters)
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters)
{
return powerpc_coder_init(next, allocator, filters, false);
}
Modified: vendor/xz/dist/src/liblzma/simple/simple_coder.c
===================================================================
--- vendor/xz/dist/src/liblzma/simple/simple_coder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/simple/simple_coder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -18,7 +18,7 @@
/// Copied or encodes/decodes more data to out[].
static lzma_ret
-copy_or_code(lzma_coder *coder, lzma_allocator *allocator,
+copy_or_code(lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size, lzma_action action)
@@ -66,7 +66,7 @@
static lzma_ret
-simple_code(lzma_coder *coder, lzma_allocator *allocator,
+simple_code(lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size, lzma_action action)
@@ -198,7 +198,7 @@
static void
-simple_coder_end(lzma_coder *coder, lzma_allocator *allocator)
+simple_coder_end(lzma_coder *coder, const lzma_allocator *allocator)
{
lzma_next_end(&coder->next, allocator);
lzma_free(coder->simple, allocator);
@@ -208,7 +208,7 @@
static lzma_ret
-simple_coder_update(lzma_coder *coder, lzma_allocator *allocator,
+simple_coder_update(lzma_coder *coder, const lzma_allocator *allocator,
const lzma_filter *filters_null lzma_attribute((__unused__)),
const lzma_filter *reversed_filters)
{
@@ -219,7 +219,7 @@
extern lzma_ret
-lzma_simple_coder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_simple_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters,
size_t (*filter)(lzma_simple *simple, uint32_t now_pos,
bool is_encoder, uint8_t *buffer, size_t size),
Modified: vendor/xz/dist/src/liblzma/simple/simple_coder.h
===================================================================
--- vendor/xz/dist/src/liblzma/simple/simple_coder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/simple/simple_coder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -17,44 +17,56 @@
extern lzma_ret lzma_simple_x86_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_simple_x86_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_simple_powerpc_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_simple_powerpc_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_simple_ia64_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_simple_ia64_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_simple_arm_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_simple_arm_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_simple_armthumb_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_simple_armthumb_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_simple_sparc_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
extern lzma_ret lzma_simple_sparc_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters);
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters);
#endif
Modified: vendor/xz/dist/src/liblzma/simple/simple_decoder.c
===================================================================
--- vendor/xz/dist/src/liblzma/simple/simple_decoder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/simple/simple_decoder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -14,7 +14,7 @@
extern lzma_ret
-lzma_simple_props_decode(void **options, lzma_allocator *allocator,
+lzma_simple_props_decode(void **options, const lzma_allocator *allocator,
const uint8_t *props, size_t props_size)
{
if (props_size == 0)
Modified: vendor/xz/dist/src/liblzma/simple/simple_decoder.h
===================================================================
--- vendor/xz/dist/src/liblzma/simple/simple_decoder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/simple/simple_decoder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -16,7 +16,7 @@
#include "simple_coder.h"
extern lzma_ret lzma_simple_props_decode(
- void **options, lzma_allocator *allocator,
+ void **options, const lzma_allocator *allocator,
const uint8_t *props, size_t props_size);
#endif
Modified: vendor/xz/dist/src/liblzma/simple/simple_private.h
===================================================================
--- vendor/xz/dist/src/liblzma/simple/simple_private.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/simple/simple_private.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -66,7 +66,8 @@
extern lzma_ret lzma_simple_coder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters,
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters,
size_t (*filter)(lzma_simple *simple, uint32_t now_pos,
bool is_encoder, uint8_t *buffer, size_t size),
size_t simple_size, size_t unfiltered_max,
Modified: vendor/xz/dist/src/liblzma/simple/sparc.c
===================================================================
--- vendor/xz/dist/src/liblzma/simple/sparc.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/simple/sparc.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -57,7 +57,7 @@
static lzma_ret
-sparc_coder_init(lzma_next_coder *next, lzma_allocator *allocator,
+sparc_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters, bool is_encoder)
{
return lzma_simple_coder_init(next, allocator, filters,
@@ -67,7 +67,8 @@
extern lzma_ret
lzma_simple_sparc_encoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters)
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters)
{
return sparc_coder_init(next, allocator, filters, true);
}
@@ -75,7 +76,8 @@
extern lzma_ret
lzma_simple_sparc_decoder_init(lzma_next_coder *next,
- lzma_allocator *allocator, const lzma_filter_info *filters)
+ const lzma_allocator *allocator,
+ const lzma_filter_info *filters)
{
return sparc_coder_init(next, allocator, filters, false);
}
Modified: vendor/xz/dist/src/liblzma/simple/x86.c
===================================================================
--- vendor/xz/dist/src/liblzma/simple/x86.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/liblzma/simple/x86.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -123,7 +123,7 @@
static lzma_ret
-x86_coder_init(lzma_next_coder *next, lzma_allocator *allocator,
+x86_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
const lzma_filter_info *filters, bool is_encoder)
{
const lzma_ret ret = lzma_simple_coder_init(next, allocator, filters,
@@ -139,7 +139,8 @@
extern lzma_ret
-lzma_simple_x86_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_simple_x86_encoder_init(lzma_next_coder *next,
+ const lzma_allocator *allocator,
const lzma_filter_info *filters)
{
return x86_coder_init(next, allocator, filters, true);
@@ -147,7 +148,8 @@
extern lzma_ret
-lzma_simple_x86_decoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+lzma_simple_x86_decoder_init(lzma_next_coder *next,
+ const lzma_allocator *allocator,
const lzma_filter_info *filters)
{
return x86_coder_init(next, allocator, filters, false);
Added: vendor/xz/dist/src/liblzma/validate_map.sh
===================================================================
--- vendor/xz/dist/src/liblzma/validate_map.sh (rev 0)
+++ vendor/xz/dist/src/liblzma/validate_map.sh 2016-10-15 16:14:07 UTC (rev 9176)
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+###############################################################################
+#
+# Check liblzma.map for certain types of errors
+#
+# Author: Lasse Collin
+#
+# This file has been put into the public domain.
+# You can do whatever you want with this file.
+#
+###############################################################################
+
+LC_ALL=C
+export LC_ALL
+
+STATUS=0
+
+cd "$(dirname "$0")"
+
+# Get the list of symbols that aren't defined in liblzma.map.
+SYMS=$(sed -n 's/^extern LZMA_API([^)]*) \([a-z0-9_]*\)(.*$/\1;/p' \
+ api/lzma/*.h \
+ | sort \
+ | grep -Fve "$(sed '/[{}:*]/d;/^$/d;s/^ //' liblzma.map)")
+
+# Check that there are no old alpha or beta versions listed.
+VER=$(cd ../.. && sh build-aux/version.sh)
+NAMES=
+case $VER in
+ *alpha | *beta)
+ NAMES=$(sed -n 's/^.*XZ_\([^ ]*\)\(alpha\|beta\) .*$/\1\2/p' \
+ liblzma.map | grep -Fv "$VER")
+ ;;
+esac
+
+# Check for duplicate lines. It can catch missing dependencies.
+DUPS=$(sort liblzma.map | sed '/^$/d;/^global:$/d' | uniq -d)
+
+# Print error messages if needed.
+if test -n "$SYMS$NAMES$DUPS"; then
+ echo
+ echo 'validate_map.sh found problems from liblzma.map:'
+ echo
+
+ if test -n "$SYMS"; then
+ echo 'liblzma.map lacks the following symbols:'
+ echo "$SYMS"
+ echo
+ fi
+
+ if test -n "$NAMES"; then
+ echo 'Obsolete alpha or beta version names:'
+ echo "$NAMES"
+ echo
+ fi
+
+ if test -n "$DUPS"; then
+ echo 'Duplicate lines:'
+ echo "$DUPS"
+ echo
+ fi
+
+ STATUS=1
+fi
+
+# Exit status is 1 if problems were found, 0 otherwise.
+exit "$STATUS"
Deleted: vendor/xz/dist/src/lzmainfo/lzmainfo_w32res.rc
===================================================================
--- vendor/xz/dist/src/lzmainfo/lzmainfo_w32res.rc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/lzmainfo/lzmainfo_w32res.rc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,12 +0,0 @@
-/*
- * Author: Lasse Collin
- *
- * This file has been put into the public domain.
- * You can do whatever you want with this file.
- */
-
-#define MY_TYPE VFT_APP
-#define MY_NAME "lzmainfo"
-#define MY_SUFFIX ".exe"
-#define MY_DESC "lzmainfo shows information about .lzma files"
-#include "common_w32res.rc"
Modified: vendor/xz/dist/src/xz/args.c
===================================================================
--- vendor/xz/dist/src/xz/args.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/args.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -22,6 +22,7 @@
bool opt_force = false;
bool opt_keep_original = false;
bool opt_robot = false;
+bool opt_ignore_check = false;
// We don't modify or free() this, but we need to assign it in some
// non-const pointers.
@@ -55,6 +56,67 @@
static void
+parse_block_list(char *str)
+{
+ // It must be non-empty and not begin with a comma.
+ if (str[0] == '\0' || str[0] == ',')
+ message_fatal(_("%s: Invalid argument to --block-list"), str);
+
+ // Count the number of comma-separated strings.
+ size_t count = 1;
+ for (size_t i = 0; str[i] != '\0'; ++i)
+ if (str[i] == ',')
+ ++count;
+
+ // Prevent an unlikely integer overflow.
+ if (count > SIZE_MAX / sizeof(uint64_t) - 1)
+ message_fatal(_("%s: Too many arguments to --block-list"),
+ str);
+
+ // Allocate memory to hold all the sizes specified.
+ // If --block-list was specified already, its value is forgotten.
+ free(opt_block_list);
+ opt_block_list = xmalloc((count + 1) * sizeof(uint64_t));
+
+ for (size_t i = 0; i < count; ++i) {
+ // Locate the next comma and replace it with \0.
+ char *p = strchr(str, ',');
+ if (p != NULL)
+ *p = '\0';
+
+ if (str[0] == '\0') {
+ // There is no string, that is, a comma follows
+ // another comma. Use the previous value.
+ //
+ // NOTE: We checked earler that the first char
+ // of the whole list cannot be a comma.
+ assert(i > 0);
+ opt_block_list[i] = opt_block_list[i - 1];
+ } else {
+ opt_block_list[i] = str_to_uint64("block-list", str,
+ 0, UINT64_MAX);
+
+ // Zero indicates no more new Blocks.
+ if (opt_block_list[i] == 0) {
+ if (i + 1 != count)
+ message_fatal(_("0 can only be used "
+ "as the last element "
+ "in --block-list"));
+
+ opt_block_list[i] = UINT64_MAX;
+ }
+ }
+
+ str = p + 1;
+ }
+
+ // Terminate the array.
+ opt_block_list[count] = 0;
+ return;
+}
+
+
+static void
parse_real(args_info *args, int argc, char **argv)
{
enum {
@@ -68,14 +130,19 @@
OPT_LZMA1,
OPT_LZMA2,
+ OPT_SINGLE_STREAM,
OPT_NO_SPARSE,
OPT_FILES,
OPT_FILES0,
+ OPT_BLOCK_SIZE,
+ OPT_BLOCK_LIST,
OPT_MEM_COMPRESS,
OPT_MEM_DECOMPRESS,
OPT_NO_ADJUST,
OPT_INFO_MEMORY,
OPT_ROBOT,
+ OPT_FLUSH_TIMEOUT,
+ OPT_IGNORE_CHECK,
};
static const char short_opts[]
@@ -94,6 +161,7 @@
{ "force", no_argument, NULL, 'f' },
{ "stdout", no_argument, NULL, 'c' },
{ "to-stdout", no_argument, NULL, 'c' },
+ { "single-stream", no_argument, NULL, OPT_SINGLE_STREAM },
{ "no-sparse", no_argument, NULL, OPT_NO_SPARSE },
{ "suffix", required_argument, NULL, 'S' },
// { "recursive", no_argument, NULL, 'r' }, // TODO
@@ -103,6 +171,9 @@
// Basic compression settings
{ "format", required_argument, NULL, 'F' },
{ "check", required_argument, NULL, 'C' },
+ { "ignore-check", no_argument, NULL, OPT_IGNORE_CHECK },
+ { "block-size", required_argument, NULL, OPT_BLOCK_SIZE },
+ { "block-list", required_argument, NULL, OPT_BLOCK_LIST },
{ "memlimit-compress", required_argument, NULL, OPT_MEM_COMPRESS },
{ "memlimit-decompress", required_argument, NULL, OPT_MEM_DECOMPRESS },
{ "memlimit", required_argument, NULL, 'M' },
@@ -109,6 +180,7 @@
{ "memory", required_argument, NULL, 'M' }, // Old alias
{ "no-adjust", no_argument, NULL, OPT_NO_ADJUST },
{ "threads", required_argument, NULL, 'T' },
+ { "flush-timeout", required_argument, NULL, OPT_FLUSH_TIMEOUT },
{ "extreme", no_argument, NULL, 'e' },
{ "fast", no_argument, NULL, '0' },
@@ -175,8 +247,9 @@
break;
case 'T':
- hardware_threadlimit_set(str_to_uint64(
- "threads", optarg, 0, UINT32_MAX));
+ // The max is from src/liblzma/common/common.h.
+ hardware_threads_set(str_to_uint64("threads",
+ optarg, 0, 16384));
break;
// --version
@@ -368,6 +441,24 @@
break;
}
+ case OPT_IGNORE_CHECK:
+ opt_ignore_check = true;
+ break;
+
+ case OPT_BLOCK_SIZE:
+ opt_block_size = str_to_uint64("block-size", optarg,
+ 0, LZMA_VLI_MAX);
+ break;
+
+ case OPT_BLOCK_LIST: {
+ parse_block_list(optarg);
+ break;
+ }
+
+ case OPT_SINGLE_STREAM:
+ opt_single_stream = true;
+ break;
+
case OPT_NO_SPARSE:
io_no_sparse();
break;
@@ -401,6 +492,11 @@
opt_auto_adjust = false;
break;
+ case OPT_FLUSH_TIMEOUT:
+ opt_flush_timeout = str_to_uint64("flush-timeout",
+ optarg, 0, UINT64_MAX);
+ break;
+
default:
message_try_help();
tuklib_exit(E_ERROR, E_ERROR, false);
@@ -576,3 +672,13 @@
return;
}
+
+
+#ifndef NDEBUG
+extern void
+args_free(void)
+{
+ free(opt_block_list);
+ return;
+}
+#endif
Modified: vendor/xz/dist/src/xz/args.h
===================================================================
--- vendor/xz/dist/src/xz/args.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/args.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -15,7 +15,7 @@
char **arg_names;
/// 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
/// if --files or --files0 was not used.
@@ -36,7 +36,9 @@
extern bool opt_keep_original;
// extern bool opt_recursive;
extern bool opt_robot;
+extern bool opt_ignore_check;
extern const char stdin_filename[];
extern void args_parse(args_info *args, int argc, char **argv);
+extern void args_free(void);
Modified: vendor/xz/dist/src/xz/coder.c
===================================================================
--- vendor/xz/dist/src/xz/coder.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/coder.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -24,6 +24,9 @@
enum operation_mode opt_mode = MODE_COMPRESS;
enum format_type opt_format = FORMAT_AUTO;
bool opt_auto_adjust = true;
+bool opt_single_stream = false;
+uint64_t opt_block_size = 0;
+uint64_t *opt_block_list = NULL;
/// Stream used to communicate with liblzma
@@ -48,7 +51,15 @@
/// This becomes false if the --check=CHECK option is used.
static bool check_default = true;
+#ifdef MYTHREAD_ENABLED
+static lzma_mt mt_options = {
+ .flags = 0,
+ .timeout = 300,
+ .filters = filters,
+};
+#endif
+
extern void
coder_set_check(lzma_check new_check)
{
@@ -125,6 +136,15 @@
extern void
coder_set_compression_settings(void)
{
+ // The default check type is CRC64, but fallback to CRC32
+ // if CRC64 isn't supported by the copy of liblzma we are
+ // using. CRC32 is always supported.
+ if (check_default) {
+ check = LZMA_CHECK_CRC64;
+ if (!lzma_check_is_supported(check))
+ check = LZMA_CHECK_CRC32;
+ }
+
// Options for LZMA1 or LZMA2 in case we are using a preset.
static lzma_options_lzma opt_lzma;
@@ -175,15 +195,53 @@
// Print the selected filter chain.
message_filters_show(V_DEBUG, filters);
- // If using --format=raw, we can be decoding. The memusage function
- // also validates the filter chain and the options used for the
- // filters.
+ // The --flush-timeout option requires LZMA_SYNC_FLUSH support
+ // from the filter chain. Currently threaded encoder doesn't support
+ // LZMA_SYNC_FLUSH so single-threaded mode must be used.
+ if (opt_mode == MODE_COMPRESS && opt_flush_timeout != 0) {
+ for (size_t i = 0; i < filters_count; ++i) {
+ switch (filters[i].id) {
+ case LZMA_FILTER_LZMA2:
+ case LZMA_FILTER_DELTA:
+ break;
+
+ default:
+ message_fatal(_("The filter chain is "
+ "incompatible with --flush-timeout"));
+ }
+ }
+
+ if (hardware_threads_get() > 1) {
+ message(V_WARNING, _("Switching to single-threaded "
+ "mode due to --flush-timeout"));
+ hardware_threads_set(1);
+ }
+ }
+
+ // Get the memory usage. Note that if --format=raw was used,
+ // we can be decompressing.
const uint64_t memory_limit = hardware_memlimit_get(opt_mode);
uint64_t memory_usage;
- if (opt_mode == MODE_COMPRESS)
- memory_usage = lzma_raw_encoder_memusage(filters);
- else
+ if (opt_mode == MODE_COMPRESS) {
+#ifdef MYTHREAD_ENABLED
+ if (opt_format == FORMAT_XZ && hardware_threads_get() > 1) {
+ mt_options.threads = hardware_threads_get();
+ mt_options.block_size = opt_block_size;
+ mt_options.check = check;
+ memory_usage = lzma_stream_encoder_mt_memusage(
+ &mt_options);
+ if (memory_usage != UINT64_MAX)
+ message(V_DEBUG, _("Using up to %" PRIu32
+ " threads."),
+ mt_options.threads);
+ } else
+#endif
+ {
+ memory_usage = lzma_raw_encoder_memusage(filters);
+ }
+ } else {
memory_usage = lzma_raw_decoder_memusage(filters);
+ }
if (memory_usage == UINT64_MAX)
message_fatal(_("Unsupported filter chain or filter options"));
@@ -199,90 +257,99 @@
round_up_to_mib(decmem), 0));
}
- if (memory_usage > memory_limit) {
- // If --no-adjust was used or we didn't find LZMA1 or
- // LZMA2 as the last filter, give an error immediately.
- // --format=raw implies --no-adjust.
- if (!opt_auto_adjust || opt_format == FORMAT_RAW)
- memlimit_too_small(memory_usage);
+ if (memory_usage <= memory_limit)
+ return;
- assert(opt_mode == MODE_COMPRESS);
+ // If --no-adjust was used or we didn't find LZMA1 or
+ // LZMA2 as the last filter, give an error immediately.
+ // --format=raw implies --no-adjust.
+ if (!opt_auto_adjust || opt_format == FORMAT_RAW)
+ memlimit_too_small(memory_usage);
- // Look for the last filter if it is LZMA2 or LZMA1, so
- // we can make it use less RAM. With other filters we don't
- // know what to do.
- size_t i = 0;
- while (filters[i].id != LZMA_FILTER_LZMA2
- && filters[i].id != LZMA_FILTER_LZMA1) {
- if (filters[i].id == LZMA_VLI_UNKNOWN)
- memlimit_too_small(memory_usage);
+ assert(opt_mode == MODE_COMPRESS);
- ++i;
- }
-
- // Decrease the dictionary size until we meet the memory
- // usage limit. First round down to full mebibytes.
- lzma_options_lzma *opt = filters[i].options;
- const uint32_t orig_dict_size = opt->dict_size;
- opt->dict_size &= ~((UINT32_C(1) << 20) - 1);
- while (true) {
- // If it is below 1 MiB, auto-adjusting failed. We
- // could be more sophisticated and scale it down even
- // more, but let's see if many complain about this
- // version.
- //
- // FIXME: Displays the scaled memory usage instead
- // of the original.
- if (opt->dict_size < (UINT32_C(1) << 20))
+#ifdef MYTHREAD_ENABLED
+ if (opt_format == FORMAT_XZ && mt_options.threads > 1) {
+ // Try to reduce the number of threads before
+ // adjusting the compression settings down.
+ do {
+ // FIXME? The real single-threaded mode has
+ // lower memory usage, but it's not comparable
+ // because it doesn't write the size info
+ // into Block Headers.
+ if (--mt_options.threads == 0)
memlimit_too_small(memory_usage);
- memory_usage = lzma_raw_encoder_memusage(filters);
+ memory_usage = lzma_stream_encoder_mt_memusage(
+ &mt_options);
if (memory_usage == UINT64_MAX)
message_bug();
- // Accept it if it is low enough.
- if (memory_usage <= memory_limit)
- break;
+ } while (memory_usage > memory_limit);
- // Otherwise 1 MiB down and try again. I hope this
- // isn't too slow method for cases where the original
- // dict_size is very big.
- opt->dict_size -= UINT32_C(1) << 20;
- }
+ message(V_WARNING, _("Adjusted the number of threads "
+ "from %s to %s to not exceed "
+ "the memory usage limit of %s MiB"),
+ uint64_to_str(hardware_threads_get(), 0),
+ uint64_to_str(mt_options.threads, 1),
+ uint64_to_str(round_up_to_mib(
+ memory_limit), 2));
+ }
+#endif
- // Tell the user that we decreased the dictionary size.
- message(V_WARNING, _("Adjusted LZMA%c dictionary size "
- "from %s MiB to %s MiB to not exceed "
- "the memory usage limit of %s MiB"),
- filters[i].id == LZMA_FILTER_LZMA2
- ? '2' : '1',
- uint64_to_str(orig_dict_size >> 20, 0),
- uint64_to_str(opt->dict_size >> 20, 1),
- uint64_to_str(round_up_to_mib(
- memory_limit), 2));
+ if (memory_usage <= memory_limit)
+ return;
+
+ // Look for the last filter if it is LZMA2 or LZMA1, so we can make
+ // it use less RAM. With other filters we don't know what to do.
+ size_t i = 0;
+ while (filters[i].id != LZMA_FILTER_LZMA2
+ && filters[i].id != LZMA_FILTER_LZMA1) {
+ if (filters[i].id == LZMA_VLI_UNKNOWN)
+ memlimit_too_small(memory_usage);
+
+ ++i;
}
-/*
- // Limit the number of worker threads so that memory usage
- // limit isn't exceeded.
- assert(memory_usage > 0);
- size_t thread_limit = memory_limit / memory_usage;
- if (thread_limit == 0)
- thread_limit = 1;
+ // Decrease the dictionary size until we meet the memory
+ // usage limit. First round down to full mebibytes.
+ lzma_options_lzma *opt = filters[i].options;
+ const uint32_t orig_dict_size = opt->dict_size;
+ opt->dict_size &= ~((UINT32_C(1) << 20) - 1);
+ while (true) {
+ // If it is below 1 MiB, auto-adjusting failed. We could be
+ // more sophisticated and scale it down even more, but let's
+ // see if many complain about this version.
+ //
+ // FIXME: Displays the scaled memory usage instead
+ // of the original.
+ if (opt->dict_size < (UINT32_C(1) << 20))
+ memlimit_too_small(memory_usage);
- if (opt_threads > thread_limit)
- opt_threads = thread_limit;
-*/
+ memory_usage = lzma_raw_encoder_memusage(filters);
+ if (memory_usage == UINT64_MAX)
+ message_bug();
- if (check_default) {
- // The default check type is CRC64, but fallback to CRC32
- // if CRC64 isn't supported by the copy of liblzma we are
- // using. CRC32 is always supported.
- check = LZMA_CHECK_CRC64;
- if (!lzma_check_is_supported(check))
- check = LZMA_CHECK_CRC32;
+ // Accept it if it is low enough.
+ if (memory_usage <= memory_limit)
+ break;
+
+ // Otherwise 1 MiB down and try again. I hope this
+ // isn't too slow method for cases where the original
+ // dict_size is very big.
+ opt->dict_size -= UINT32_C(1) << 20;
}
+ // Tell the user that we decreased the dictionary size.
+ message(V_WARNING, _("Adjusted LZMA%c dictionary size "
+ "from %s MiB to %s MiB to not exceed "
+ "the memory usage limit of %s MiB"),
+ filters[i].id == LZMA_FILTER_LZMA2
+ ? '2' : '1',
+ uint64_to_str(orig_dict_size >> 20, 0),
+ uint64_to_str(opt->dict_size >> 20, 1),
+ uint64_to_str(round_up_to_mib(memory_limit), 2));
+
return;
}
@@ -364,7 +431,14 @@
break;
case FORMAT_XZ:
- ret = lzma_stream_encoder(&strm, filters, check);
+#ifdef MYTHREAD_ENABLED
+ if (hardware_threads_get() > 1)
+ ret = lzma_stream_encoder_mt(
+ &strm, &mt_options);
+ else
+#endif
+ ret = lzma_stream_encoder(
+ &strm, filters, check);
break;
case FORMAT_LZMA:
@@ -376,9 +450,18 @@
break;
}
} else {
- const uint32_t flags = LZMA_TELL_UNSUPPORTED_CHECK
- | LZMA_CONCATENATED;
+ uint32_t flags = 0;
+ // It seems silly to warn about unsupported check if the
+ // check won't be verified anyway due to --ignore-check.
+ if (opt_ignore_check)
+ flags |= LZMA_IGNORE_CHECK;
+ else
+ flags |= LZMA_TELL_UNSUPPORTED_CHECK;
+
+ if (!opt_single_stream)
+ flags |= LZMA_CONCATENATED;
+
// We abuse FORMAT_AUTO to indicate unknown file format,
// for which we may consider passthru mode.
enum format_type init_format = FORMAT_AUTO;
@@ -408,7 +491,7 @@
switch (init_format) {
case FORMAT_AUTO:
- // Uknown file format. If --decompress --stdout
+ // Unknown file format. If --decompress --stdout
// --force have been given, then we copy the input
// as is to stdout. Checking for MODE_DECOMPRESS
// is needed, because we don't want to do use
@@ -462,6 +545,56 @@
}
+/// Resolve conflicts between opt_block_size and opt_block_list in single
+/// threaded mode. We want to default to opt_block_list, except when it is
+/// larger than opt_block_size. If this is the case for the current Block
+/// at *list_pos, then we break into smaller Blocks. Otherwise advance
+/// to the next Block in opt_block_list, and break apart if needed.
+static void
+split_block(uint64_t *block_remaining,
+ uint64_t *next_block_remaining,
+ size_t *list_pos)
+{
+ if (*next_block_remaining > 0) {
+ // The Block at *list_pos has previously been split up.
+ assert(hardware_threads_get() == 1);
+ assert(opt_block_size > 0);
+ assert(opt_block_list != NULL);
+
+ if (*next_block_remaining > opt_block_size) {
+ // We have to split the current Block at *list_pos
+ // into another opt_block_size length Block.
+ *block_remaining = opt_block_size;
+ } else {
+ // This is the last remaining split Block for the
+ // Block at *list_pos.
+ *block_remaining = *next_block_remaining;
+ }
+
+ *next_block_remaining -= *block_remaining;
+
+ } else {
+ // The Block at *list_pos has been finished. Go to the next
+ // entry in the list. If the end of the list has been reached,
+ // reuse the size of the last Block.
+ if (opt_block_list[*list_pos + 1] != 0)
+ ++*list_pos;
+
+ *block_remaining = opt_block_list[*list_pos];
+
+ // If in single-threaded mode, split up the Block if needed.
+ // This is not needed in multi-threaded mode because liblzma
+ // will do this due to how threaded encoding works.
+ if (hardware_threads_get() == 1 && opt_block_size > 0
+ && *block_remaining > opt_block_size) {
+ *next_block_remaining
+ = *block_remaining - opt_block_size;
+ *block_remaining = opt_block_size;
+ }
+ }
+}
+
+
/// Compress or decompress using liblzma.
static bool
coder_normal(file_pair *pair)
@@ -469,8 +602,8 @@
// Encoder needs to know when we have given all the input to it.
// The decoders need to know it too when we are using
// LZMA_CONCATENATED. We need to check for src_eof here, because
- // the first input chunk has been already read, and that may
- // have been the only chunk we will read.
+ // the first input chunk has been already read if decompressing,
+ // and that may have been the only chunk we will read.
lzma_action action = pair->src_eof ? LZMA_FINISH : LZMA_RUN;
lzma_ret ret;
@@ -478,22 +611,77 @@
// Assume that something goes wrong.
bool success = false;
+ // block_remaining indicates how many input bytes to encode before
+ // finishing the current .xz Block. The Block size is set with
+ // --block-size=SIZE and --block-list. They have an effect only when
+ // compressing to the .xz format. If block_remaining == UINT64_MAX,
+ // only a single block is created.
+ uint64_t block_remaining = UINT64_MAX;
+
+ // next_block_remining for when we are in single-threaded mode and
+ // the Block in --block-list is larger than the --block-size=SIZE.
+ uint64_t next_block_remaining = 0;
+
+ // Position in opt_block_list. Unused if --block-list wasn't used.
+ size_t list_pos = 0;
+
+ // Handle --block-size for single-threaded mode and the first step
+ // of --block-list.
+ if (opt_mode == MODE_COMPRESS && opt_format == FORMAT_XZ) {
+ // --block-size doesn't do anything here in threaded mode,
+ // because the threaded encoder will take care of splitting
+ // to fixed-sized Blocks.
+ if (hardware_threads_get() == 1 && opt_block_size > 0)
+ block_remaining = opt_block_size;
+
+ // If --block-list was used, start with the first size.
+ //
+ // For threaded case, --block-size specifies how big Blocks
+ // the encoder needs to be prepared to create at maximum
+ // and --block-list will simultaneously cause new Blocks
+ // to be started at specified intervals. To keep things
+ // logical, the same is done in single-threaded mode. The
+ // output is still not identical because in single-threaded
+ // mode the size info isn't written into Block Headers.
+ if (opt_block_list != NULL) {
+ if (block_remaining < opt_block_list[list_pos]) {
+ assert(hardware_threads_get() == 1);
+ next_block_remaining = opt_block_list[list_pos]
+ - block_remaining;
+ } else {
+ block_remaining = opt_block_list[list_pos];
+ }
+ }
+ }
+
strm.next_out = out_buf.u8;
strm.avail_out = IO_BUFFER_SIZE;
while (!user_abort) {
- // Fill the input buffer if it is empty and we haven't reached
- // end of file yet.
- if (strm.avail_in == 0 && !pair->src_eof) {
+ // Fill the input buffer if it is empty and we aren't
+ // flushing or finishing.
+ if (strm.avail_in == 0 && action == LZMA_RUN) {
strm.next_in = in_buf.u8;
- strm.avail_in = io_read(
- pair, &in_buf, IO_BUFFER_SIZE);
+ strm.avail_in = io_read(pair, &in_buf,
+ my_min(block_remaining,
+ IO_BUFFER_SIZE));
if (strm.avail_in == SIZE_MAX)
break;
- if (pair->src_eof)
+ if (pair->src_eof) {
action = LZMA_FINISH;
+
+ } else if (block_remaining != UINT64_MAX) {
+ // Start a new Block after every
+ // opt_block_size bytes of input.
+ block_remaining -= strm.avail_in;
+ if (block_remaining == 0)
+ action = LZMA_FULL_BARRIER;
+ }
+
+ if (action == LZMA_RUN && flush_needed)
+ action = LZMA_SYNC_FLUSH;
}
// Let liblzma do the actual work.
@@ -509,7 +697,39 @@
strm.avail_out = IO_BUFFER_SIZE;
}
- if (ret != LZMA_OK) {
+ if (ret == LZMA_STREAM_END && (action == LZMA_SYNC_FLUSH
+ || action == LZMA_FULL_BARRIER)) {
+ if (action == LZMA_SYNC_FLUSH) {
+ // Flushing completed. Write the pending data
+ // out immediatelly so that the reading side
+ // can decompress everything compressed so far.
+ if (io_write(pair, &out_buf, IO_BUFFER_SIZE
+ - strm.avail_out))
+ break;
+
+ strm.next_out = out_buf.u8;
+ strm.avail_out = IO_BUFFER_SIZE;
+
+ // Set the time of the most recent flushing.
+ mytime_set_flush_time();
+ } else {
+ // Start a new Block after LZMA_FULL_BARRIER.
+ if (opt_block_list == NULL) {
+ assert(hardware_threads_get() == 1);
+ assert(opt_block_size > 0);
+ block_remaining = opt_block_size;
+ } else {
+ split_block(&block_remaining,
+ &next_block_remaining,
+ &list_pos);
+ }
+ }
+
+ // Start a new Block after LZMA_FULL_FLUSH or continue
+ // the same block after LZMA_SYNC_FLUSH.
+ action = LZMA_RUN;
+
+ } else if (ret != LZMA_OK) {
// Determine if the return value indicates that we
// won't continue coding.
const bool stop = ret != LZMA_NO_CHECK
@@ -528,6 +748,12 @@
}
if (ret == LZMA_STREAM_END) {
+ if (opt_single_stream) {
+ io_fix_src_pos(pair, strm.avail_in);
+ success = true;
+ break;
+ }
+
// Check that there is no trailing garbage.
// This is needed for LZMA_Alone and raw
// streams.
@@ -630,10 +856,15 @@
// Assume that something goes wrong.
bool success = false;
- // Read the first chunk of input data. This is needed to detect
- // the input file type (for now, only for decompression).
- strm.next_in = in_buf.u8;
- strm.avail_in = io_read(pair, &in_buf, IO_BUFFER_SIZE);
+ if (opt_mode == MODE_COMPRESS) {
+ strm.next_in = NULL;
+ strm.avail_in = 0;
+ } else {
+ // Read the first chunk of input data. This is needed
+ // to detect the input file type.
+ strm.next_in = in_buf.u8;
+ strm.avail_in = io_read(pair, &in_buf, IO_BUFFER_SIZE);
+ }
if (strm.avail_in != SIZE_MAX) {
// Initialize the coder. This will detect the file format
@@ -648,6 +879,11 @@
// Don't open the destination file when --test
// is used.
if (opt_mode == MODE_TEST || !io_open_dest(pair)) {
+ // Remember the current time. It is needed
+ // for progress indicator and for timed
+ // flushing.
+ mytime_set_start_time();
+
// Initialize the progress indicator.
const uint64_t in_size
= pair->src_st.st_size <= 0
@@ -671,3 +907,13 @@
return;
}
+
+
+#ifndef NDEBUG
+extern void
+coder_free(void)
+{
+ lzma_end(&strm);
+ return;
+}
+#endif
Modified: vendor/xz/dist/src/xz/coder.h
===================================================================
--- vendor/xz/dist/src/xz/coder.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/coder.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -41,7 +41,17 @@
/// they exceed the memory usage limit.
extern bool opt_auto_adjust;
+/// If true, stop after decoding the first stream.
+extern bool opt_single_stream;
+/// If non-zero, start a new .xz Block after every opt_block_size bytes
+/// of input. This has an effect only when compressing to the .xz format.
+extern uint64_t opt_block_size;
+
+/// This is non-NULL if --block-list was used. This contains the Block sizes
+/// as an array that is terminated with 0.
+extern uint64_t *opt_block_list;
+
/// Set the integrity check type used when compressing
extern void coder_set_check(lzma_check check);
@@ -59,3 +69,8 @@
/// Compress or decompress the given file
extern void coder_run(const char *filename);
+
+#ifndef NDEBUG
+/// Free the memory allocated for the coder and kill the worker threads.
+extern void coder_free(void);
+#endif
Modified: vendor/xz/dist/src/xz/file_io.c
===================================================================
--- vendor/xz/dist/src/xz/file_io.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/file_io.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -17,6 +17,7 @@
#ifdef TUKLIB_DOSLIKE
# include <io.h>
#else
+# include <poll.h>
static bool warn_fchown;
#endif
@@ -37,14 +38,30 @@
#endif
+typedef enum {
+ IO_WAIT_MORE, // Reading or writing is possible.
+ IO_WAIT_ERROR, // Error or user_abort
+ IO_WAIT_TIMEOUT, // poll() timed out
+} io_wait_ret;
+
+
/// If true, try to create sparse files when decompressing.
static bool try_sparse = true;
#ifndef TUKLIB_DOSLIKE
+/// File status flags of standard input. This is used by io_open_src()
+/// and io_close_src().
+static int stdin_flags;
+static bool restore_stdin_flags = false;
+
/// Original file status flags of standard output. This is used by
/// io_open_dest() and io_close_dest() to save and restore the flags.
static int stdout_flags;
static bool restore_stdout_flags = false;
+
+/// Self-pipe used together with the user_abort variable to avoid
+/// race conditions with signal handling.
+static int user_abort_pipe[2];
#endif
@@ -64,13 +81,26 @@
// If fchown() fails setting the owner, we warn about it only if
// we are root.
warn_fchown = geteuid() == 0;
+
+ // Create a pipe for the self-pipe trick.
+ if (pipe(user_abort_pipe))
+ message_fatal(_("Error creating a pipe: %s"),
+ strerror(errno));
+
+ // Make both ends of the pipe non-blocking.
+ for (unsigned i = 0; i < 2; ++i) {
+ int flags = fcntl(user_abort_pipe[i], F_GETFL);
+ if (flags == -1 || fcntl(user_abort_pipe[i], F_SETFL,
+ flags | O_NONBLOCK) == -1)
+ message_fatal(_("Error creating a pipe: %s"),
+ strerror(errno));
+ }
#endif
#ifdef __DJGPP__
// Avoid doing useless things when statting files.
// This isn't important but doesn't hurt.
- _djstat_flags = _STAT_INODE | _STAT_EXEC_EXT
- | _STAT_EXEC_MAGIC | _STAT_DIRSIZE;
+ _djstat_flags = _STAT_EXEC_EXT | _STAT_EXEC_MAGIC | _STAT_DIRSIZE;
#endif
return;
@@ -77,7 +107,24 @@
}
+#ifndef TUKLIB_DOSLIKE
extern void
+io_write_to_user_abort_pipe(void)
+{
+ // If the write() fails, it's probably due to the pipe being full.
+ // Failing in that case is fine. If the reason is something else,
+ // there's not much we can do since this is called in a signal
+ // handler. So ignore the errors and try to avoid warnings with
+ // GCC and glibc when _FORTIFY_SOURCE=2 is used.
+ uint8_t b = '\0';
+ const int ret = write(user_abort_pipe[1], &b, 1);
+ (void)ret;
+ return;
+}
+#endif
+
+
+extern void
io_no_sparse(void)
{
try_sparse = false;
@@ -85,6 +132,63 @@
}
+#ifndef TUKLIB_DOSLIKE
+/// \brief Waits for input or output to become available or for a signal
+///
+/// This uses the self-pipe trick to avoid a race condition that can occur
+/// if a signal is caught after user_abort has been checked but before e.g.
+/// read() has been called. In that situation read() could block unless
+/// non-blocking I/O is used. With non-blocking I/O something like select()
+/// or poll() is needed to avoid a busy-wait loop, and the same race condition
+/// pops up again. There are pselect() (POSIX-1.2001) and ppoll() (not in
+/// POSIX) but neither is portable enough in 2013. The self-pipe trick is
+/// old and very portable.
+static io_wait_ret
+io_wait(file_pair *pair, int timeout, bool is_reading)
+{
+ struct pollfd pfd[2];
+
+ if (is_reading) {
+ pfd[0].fd = pair->src_fd;
+ pfd[0].events = POLLIN;
+ } else {
+ pfd[0].fd = pair->dest_fd;
+ pfd[0].events = POLLOUT;
+ }
+
+ pfd[1].fd = user_abort_pipe[0];
+ pfd[1].events = POLLIN;
+
+ while (true) {
+ const int ret = poll(pfd, 2, timeout);
+
+ if (user_abort)
+ return IO_WAIT_ERROR;
+
+ if (ret == -1) {
+ if (errno == EINTR || errno == EAGAIN)
+ continue;
+
+ message_error(_("%s: poll() failed: %s"),
+ is_reading ? pair->src_name
+ : pair->dest_name,
+ strerror(errno));
+ return IO_WAIT_ERROR;
+ }
+
+ if (ret == 0) {
+ assert(opt_flush_timeout != 0);
+ flush_needed = true;
+ return IO_WAIT_TIMEOUT;
+ }
+
+ if (pfd[0].revents != 0)
+ return IO_WAIT_MORE;
+ }
+}
+#endif
+
+
/// \brief Unlink a file
///
/// This tries to verify that the file being unlinked really is the file that
@@ -294,7 +398,29 @@
pair->src_fd = STDIN_FILENO;
#ifdef TUKLIB_DOSLIKE
setmode(STDIN_FILENO, O_BINARY);
+#else
+ // Try to set stdin to non-blocking mode. It won't work
+ // e.g. on OpenBSD if stdout is e.g. /dev/null. In such
+ // case we proceed as if stdin were non-blocking anyway
+ // (in case of /dev/null it will be in practice). The
+ // same applies to stdout in io_open_dest_real().
+ stdin_flags = fcntl(STDIN_FILENO, F_GETFL);
+ if (stdin_flags == -1) {
+ message_error(_("Error getting the file status flags "
+ "from standard input: %s"),
+ strerror(errno));
+ return true;
+ }
+
+ if ((stdin_flags & O_NONBLOCK) == 0
+ && fcntl(STDIN_FILENO, F_SETFL,
+ stdin_flags | O_NONBLOCK) != -1)
+ restore_stdin_flags = true;
#endif
+#ifdef HAVE_POSIX_FADVISE
+ // It will fail if stdin is a pipe and that's fine.
+ (void)posix_fadvise(STDIN_FILENO, 0, 0, POSIX_FADV_SEQUENTIAL);
+#endif
return false;
}
@@ -311,13 +437,12 @@
int flags = O_RDONLY | O_BINARY | O_NOCTTY;
#ifndef TUKLIB_DOSLIKE
- // If we accept only regular files, we need to be careful to avoid
- // problems with special files like devices and FIFOs. O_NONBLOCK
- // prevents blocking when opening such files. When we want to accept
- // special files, we must not use O_NONBLOCK, or otherwise we won't
- // block waiting e.g. FIFOs to become readable.
- if (reg_files_only)
- flags |= O_NONBLOCK;
+ // Use non-blocking I/O:
+ // - It prevents blocking when opening FIFOs and some other
+ // special files, which is good if we want to accept only
+ // regular files.
+ // - It can help avoiding some race conditions with signal handling.
+ flags |= O_NONBLOCK;
#endif
#if defined(O_NOFOLLOW)
@@ -345,30 +470,13 @@
(void)follow_symlinks;
#endif
- // Try to open the file. If we are accepting non-regular files,
- // unblock the caught signals so that open() can be interrupted
- // if it blocks e.g. due to a FIFO file.
- if (!reg_files_only)
- signals_unblock();
+ // Try to open the file. Signals have been blocked so EINTR shouldn't
+ // be possible.
+ pair->src_fd = open(pair->src_name, flags);
- // Maybe this wouldn't need a loop, since all the signal handlers for
- // which we don't use SA_RESTART set user_abort to true. But it
- // doesn't hurt to have it just in case.
- do {
- pair->src_fd = open(pair->src_name, flags);
- } while (pair->src_fd == -1 && errno == EINTR && !user_abort);
-
- if (!reg_files_only)
- signals_block();
-
if (pair->src_fd == -1) {
- // If we were interrupted, don't display any error message.
- if (errno == EINTR) {
- // All the signals that don't have SA_RESTART
- // set user_abort.
- assert(user_abort);
- return true;
- }
+ // Signals (that have a signal handler) have been blocked.
+ assert(errno != EINTR);
#ifdef O_NOFOLLOW
// Give an understandable error message if the reason
@@ -427,26 +535,20 @@
return true;
}
-#ifndef TUKLIB_DOSLIKE
- // Drop O_NONBLOCK, which is used only when we are accepting only
- // regular files. After the open() call, we want things to block
- // instead of giving EAGAIN.
- if (reg_files_only) {
- flags = fcntl(pair->src_fd, F_GETFL);
- if (flags == -1)
- goto error_msg;
-
- flags &= ~O_NONBLOCK;
-
- if (fcntl(pair->src_fd, F_SETFL, flags) == -1)
- goto error_msg;
- }
-#endif
-
// Stat the source file. We need the result also when we copy
// the permissions, and when unlinking.
+ //
+ // NOTE: Use stat() instead of fstat() with DJGPP, because
+ // then we have a better chance to get st_ino value that can
+ // be used in io_open_dest_real() to prevent overwriting the
+ // source file.
+#ifdef __DJGPP__
+ if (stat(pair->src_name, &pair->src_st))
+ goto error_msg;
+#else
if (fstat(pair->src_fd, &pair->src_st))
goto error_msg;
+#endif
if (S_ISDIR(pair->src_st.st_mode)) {
message_warning(_("%s: Is a directory, skipping"),
@@ -492,8 +594,25 @@
goto error;
}
}
+
+ // If it is something else than a regular file, wait until
+ // there is input available. This way reading from FIFOs
+ // will work when open() is used with O_NONBLOCK.
+ if (!S_ISREG(pair->src_st.st_mode)) {
+ signals_unblock();
+ const io_wait_ret ret = io_wait(pair, -1, true);
+ signals_block();
+
+ if (ret != IO_WAIT_MORE)
+ goto error;
+ }
#endif
+#ifdef HAVE_POSIX_FADVISE
+ // It will fail with some special files like FIFOs but that is fine.
+ (void)posix_fadvise(pair->src_fd, 0, 0, POSIX_FADV_SEQUENTIAL);
+#endif
+
return false;
error_msg:
@@ -542,6 +661,19 @@
static void
io_close_src(file_pair *pair, bool success)
{
+#ifndef TUKLIB_DOSLIKE
+ if (restore_stdin_flags) {
+ assert(pair->src_fd == STDIN_FILENO);
+
+ restore_stdin_flags = false;
+
+ if (fcntl(STDIN_FILENO, F_SETFL, stdin_flags) == -1)
+ message_error(_("Error restoring the status flags "
+ "to standard input: %s"),
+ strerror(errno));
+ }
+#endif
+
if (pair->src_fd != STDIN_FILENO && pair->src_fd != -1) {
#ifdef TUKLIB_DOSLIKE
(void)close(pair->src_fd);
@@ -575,6 +707,26 @@
pair->dest_fd = STDOUT_FILENO;
#ifdef TUKLIB_DOSLIKE
setmode(STDOUT_FILENO, O_BINARY);
+#else
+ // Try to set O_NONBLOCK if it isn't already set.
+ // If it fails, we assume that stdout is non-blocking
+ // in practice. See the comments in io_open_src_real()
+ // for similar situation with stdin.
+ //
+ // NOTE: O_APPEND may be unset later in this function
+ // and it relies on stdout_flags being set here.
+ stdout_flags = fcntl(STDOUT_FILENO, F_GETFL);
+ if (stdout_flags == -1) {
+ message_error(_("Error getting the file status flags "
+ "from standard output: %s"),
+ strerror(errno));
+ return true;
+ }
+
+ if ((stdout_flags & O_NONBLOCK) == 0
+ && fcntl(STDOUT_FILENO, F_SETFL,
+ stdout_flags | O_NONBLOCK) != -1)
+ restore_stdout_flags = true;
#endif
} else {
pair->dest_name = suffix_get_dest_name(pair->src_name);
@@ -581,6 +733,30 @@
if (pair->dest_name == NULL)
return true;
+#ifdef __DJGPP__
+ struct stat st;
+ if (stat(pair->dest_name, &st) == 0) {
+ // Check that it isn't a special file like "prn".
+ if (st.st_dev == -1) {
+ message_error("%s: Refusing to write to "
+ "a DOS special file",
+ pair->dest_name);
+ free(pair->dest_name);
+ return true;
+ }
+
+ // Check that we aren't overwriting the source file.
+ if (st.st_dev == pair->src_st.st_dev
+ && st.st_ino == pair->src_st.st_ino) {
+ message_error("%s: Output file is the same "
+ "as the input file",
+ pair->dest_name);
+ free(pair->dest_name);
+ return true;
+ }
+ }
+#endif
+
// If --force was used, unlink the target file first.
if (opt_force && unlink(pair->dest_name) && errno != ENOENT) {
message_error(_("%s: Cannot remove: %s"),
@@ -590,8 +766,11 @@
}
// Open the file.
- const int flags = O_WRONLY | O_BINARY | O_NOCTTY
+ int flags = O_WRONLY | O_BINARY | O_NOCTTY
| O_CREAT | O_EXCL;
+#ifndef TUKLIB_DOSLIKE
+ flags |= O_NONBLOCK;
+#endif
const mode_t mode = S_IRUSR | S_IWUSR;
pair->dest_fd = open(pair->dest_name, flags, mode);
@@ -603,17 +782,19 @@
}
}
- // If this really fails... well, we have a safe fallback.
+#ifndef TUKLIB_DOSLIKE
+ // dest_st isn't used on DOS-like systems except as a dummy
+ // argument to io_unlink(), so don't fstat() on such systems.
if (fstat(pair->dest_fd, &pair->dest_st)) {
-#if defined(__VMS)
+ // If fstat() really fails, we have a safe fallback here.
+# if defined(__VMS)
pair->dest_st.st_ino[0] = 0;
pair->dest_st.st_ino[1] = 0;
pair->dest_st.st_ino[2] = 0;
-#elif !defined(TUKLIB_DOSLIKE)
+# else
pair->dest_st.st_dev = 0;
pair->dest_st.st_ino = 0;
-#endif
-#ifndef TUKLIB_DOSLIKE
+# endif
} else if (try_sparse && opt_mode == MODE_DECOMPRESS) {
// When writing to standard output, we need to be extra
// careful:
@@ -631,10 +812,6 @@
if (!S_ISREG(pair->dest_st.st_mode))
return false;
- stdout_flags = fcntl(STDOUT_FILENO, F_GETFL);
- if (stdout_flags == -1)
- return false;
-
if (stdout_flags & O_APPEND) {
// Creating a sparse file is not possible
// when O_APPEND is active (it's used by
@@ -653,14 +830,24 @@
if (lseek(STDOUT_FILENO, 0, SEEK_END) == -1)
return false;
- if (fcntl(STDOUT_FILENO, F_SETFL,
- stdout_flags & ~O_APPEND)
- == -1)
+ // Construct the new file status flags.
+ // If O_NONBLOCK was set earlier in this
+ // function, it must be kept here too.
+ int flags = stdout_flags & ~O_APPEND;
+ if (restore_stdout_flags)
+ flags |= O_NONBLOCK;
+
+ // If this fcntl() fails, we continue but won't
+ // try to create sparse output. The original
+ // flags will still be restored if needed (to
+ // unset O_NONBLOCK) when the file is finished.
+ if (fcntl(STDOUT_FILENO, F_SETFL, flags) == -1)
return false;
// Disabling O_APPEND succeeded. Mark
// that the flags should be restored
- // in io_close_dest().
+ // in io_close_dest(). (This may have already
+ // been set when enabling O_NONBLOCK.)
restore_stdout_flags = true;
} else if (lseek(STDOUT_FILENO, 0, SEEK_CUR)
@@ -673,8 +860,8 @@
}
pair->dest_try_sparse = true;
+ }
#endif
- }
return false;
}
@@ -790,6 +977,21 @@
}
+extern void
+io_fix_src_pos(file_pair *pair, size_t rewind_size)
+{
+ assert(rewind_size <= IO_BUFFER_SIZE);
+
+ if (rewind_size > 0) {
+ // This doesn't need to work on unseekable file descriptors,
+ // so just ignore possible errors.
+ (void)lseek(pair->src_fd, -(off_t)(rewind_size), SEEK_CUR);
+ }
+
+ return;
+}
+
+
extern size_t
io_read(file_pair *pair, io_buf *buf_union, size_t size)
{
@@ -815,12 +1017,30 @@
continue;
}
+#ifndef TUKLIB_DOSLIKE
+ if (errno == EAGAIN || errno == EWOULDBLOCK) {
+ const io_wait_ret ret = io_wait(pair,
+ mytime_get_flush_timeout(),
+ true);
+ switch (ret) {
+ case IO_WAIT_MORE:
+ continue;
+
+ case IO_WAIT_ERROR:
+ return SIZE_MAX;
+
+ case IO_WAIT_TIMEOUT:
+ return size - left;
+
+ default:
+ message_bug();
+ }
+ }
+#endif
+
message_error(_("%s: Read error: %s"),
pair->src_name, strerror(errno));
- // FIXME Is this needed?
- pair->src_eof = true;
-
return SIZE_MAX;
}
@@ -885,6 +1105,15 @@
continue;
}
+#ifndef TUKLIB_DOSLIKE
+ if (errno == EAGAIN || errno == EWOULDBLOCK) {
+ if (io_wait(pair, -1, false) == IO_WAIT_MORE)
+ continue;
+
+ return true;
+ }
+#endif
+
// Handle broken pipe specially. gzip and bzip2
// don't print anything on SIGPIPE. In addition,
// gzip --quiet uses exit status 2 (warning) on
Modified: vendor/xz/dist/src/xz/file_io.h
===================================================================
--- vendor/xz/dist/src/xz/file_io.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/file_io.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -68,6 +68,14 @@
extern void io_init(void);
+#ifndef TUKLIB_DOSLIKE
+/// \brief Write a byte to user_abort_pipe[1]
+///
+/// This is called from a signal handler.
+extern void io_write_to_user_abort_pipe(void);
+#endif
+
+
/// \brief Disable creation of sparse files when decompressing
extern void io_no_sparse(void);
@@ -102,6 +110,19 @@
extern size_t io_read(file_pair *pair, io_buf *buf, size_t size);
+/// \brief Fix the position in src_fd
+///
+/// This is used when --single-thream has been specified and decompression
+/// is successful. If the input file descriptor supports seeking, this
+/// function fixes the input position to point to the next byte after the
+/// decompressed stream.
+///
+/// \param pair File pair having the source file open for reading
+/// \param rewind_size How many bytes of extra have been read i.e.
+/// how much to seek backwards.
+extern void io_fix_src_pos(file_pair *pair, size_t rewind_size);
+
+
/// \brief Read from source file from given offset to a buffer
///
/// This is remotely similar to standard pread(). This uses lseek() though,
Modified: vendor/xz/dist/src/xz/hardware.c
===================================================================
--- vendor/xz/dist/src/xz/hardware.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/hardware.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -11,12 +11,11 @@
///////////////////////////////////////////////////////////////////////////////
#include "private.h"
-#include "tuklib_cpucores.h"
-/// Maximum number of free *coder* threads. This can be set with
+/// Maximum number of worker threads. This can be set with
/// the --threads=NUM command line option.
-static uint32_t threadlimit;
+static uint32_t threads_max = 1;
/// Memory usage limit for compression
static uint64_t memlimit_compress;
@@ -29,15 +28,23 @@
extern void
-hardware_threadlimit_set(uint32_t new_threadlimit)
+hardware_threads_set(uint32_t n)
{
- if (new_threadlimit == 0) {
- // The default is the number of available CPU cores.
- threadlimit = tuklib_cpucores();
- if (threadlimit == 0)
- threadlimit = 1;
+ if (n == 0) {
+ // Automatic number of threads was requested.
+ // If threading support was enabled at build time,
+ // use the number of available CPU cores. Otherwise
+ // use one thread since disabling threading support
+ // omits lzma_cputhreads() from liblzma.
+#ifdef MYTHREAD_ENABLED
+ threads_max = lzma_cputhreads();
+ if (threads_max == 0)
+ threads_max = 1;
+#else
+ threads_max = 1;
+#endif
} else {
- threadlimit = new_threadlimit;
+ threads_max = n;
}
return;
@@ -45,9 +52,9 @@
extern uint32_t
-hardware_threadlimit_get(void)
+hardware_threads_get(void)
{
- return threadlimit;
+ return threads_max;
}
@@ -139,6 +146,5 @@
// Set the defaults.
hardware_memlimit_set(0, true, true, false);
- hardware_threadlimit_set(0);
return;
}
Modified: vendor/xz/dist/src/xz/hardware.h
===================================================================
--- vendor/xz/dist/src/xz/hardware.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/hardware.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -15,12 +15,11 @@
extern void hardware_init(void);
-/// Set custom value for maximum number of coder threads.
-extern void hardware_threadlimit_set(uint32_t threadlimit);
+/// Set the maximum number of worker threads.
+extern void hardware_threads_set(uint32_t threadlimit);
-/// Get the maximum number of coder threads. Some additional helper threads
-/// are allowed on top of this).
-extern uint32_t hardware_threadlimit_get(void);
+/// Get the maximum number of worker threads.
+extern uint32_t hardware_threads_get(void);
/// Set the memory usage limit. There are separate limits for compression
Modified: vendor/xz/dist/src/xz/list.c
===================================================================
--- vendor/xz/dist/src/xz/list.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/list.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -29,9 +29,12 @@
/// Uncompressed Size fields
bool all_have_sizes;
+ /// Oldest XZ Utils version that will decompress the file
+ uint32_t min_version;
+
} xz_file_info;
-#define XZ_FILE_INFO_INIT { NULL, 0, 0, true }
+#define XZ_FILE_INFO_INIT { NULL, 0, 0, true, 50000002 }
/// Information about a .xz Block
@@ -104,10 +107,34 @@
uint64_t stream_padding;
uint64_t memusage_max;
uint32_t checks;
+ uint32_t min_version;
bool all_have_sizes;
-} totals = { 0, 0, 0, 0, 0, 0, 0, 0, true };
+} totals = { 0, 0, 0, 0, 0, 0, 0, 0, 0, true };
+/// Convert XZ Utils version number to a string.
+static const char *
+xz_ver_to_str(uint32_t ver)
+{
+ static char buf[32];
+
+ unsigned int major = ver / 10000000U;
+ ver -= major * 10000000U;
+
+ unsigned int minor = ver / 10000U;
+ ver -= minor * 10000U;
+
+ unsigned int patch = ver / 10U;
+ ver -= patch * 10U;
+
+ const char *stability = ver == 0 ? "alpha" : ver == 1 ? "beta" : "";
+
+ snprintf(buf, sizeof(buf), "%u.%u.%u%s",
+ major, minor, patch, stability);
+ return buf;
+}
+
+
/// \brief Parse the Index(es) from the given .xz file
///
/// \param xfi Pointer to structure where the decoded information
@@ -478,6 +505,21 @@
if (xfi->memusage_max < bhi->memusage)
xfi->memusage_max = bhi->memusage;
+ // Determine the minimum XZ Utils version that supports this Block.
+ //
+ // Currently the only thing that 5.0.0 doesn't support is empty
+ // LZMA2 Block. This decoder bug was fixed in 5.0.2.
+ {
+ size_t i = 0;
+ while (filters[i + 1].id != LZMA_VLI_UNKNOWN)
+ ++i;
+
+ if (filters[i].id == LZMA_FILTER_LZMA2
+ && iter->block.uncompressed_size == 0
+ && xfi->min_version < 50000022U)
+ xfi->min_version = 50000022U;
+ }
+
// Convert the filter chain to human readable form.
message_filters_to_str(bhi->filter_chain, filters, false);
@@ -856,6 +898,8 @@
round_up_to_mib(xfi->memusage_max), 0));
printf(_(" Sizes in headers: %s\n"),
xfi->all_have_sizes ? _("Yes") : _("No"));
+ printf(_(" Minimum XZ Utils version: %s\n"),
+ xz_ver_to_str(xfi->min_version));
}
return false;
@@ -938,9 +982,10 @@
}
if (message_verbosity_get() >= V_DEBUG)
- printf("summary\t%" PRIu64 "\t%s\n",
+ printf("summary\t%" PRIu64 "\t%s\t%" PRIu32 "\n",
xfi->memusage_max,
- xfi->all_have_sizes ? "yes" : "no");
+ xfi->all_have_sizes ? "yes" : "no",
+ xfi->min_version);
return false;
}
@@ -961,6 +1006,9 @@
if (totals.memusage_max < xfi->memusage_max)
totals.memusage_max = xfi->memusage_max;
+ if (totals.min_version < xfi->min_version)
+ totals.min_version = xfi->min_version;
+
totals.all_have_sizes &= xfi->all_have_sizes;
return;
@@ -1025,6 +1073,8 @@
round_up_to_mib(totals.memusage_max), 0));
printf(_(" Sizes in headers: %s\n"),
totals.all_have_sizes ? _("Yes") : _("No"));
+ printf(_(" Minimum XZ Utils version: %s\n"),
+ xz_ver_to_str(totals.min_version));
}
return;
@@ -1050,9 +1100,10 @@
totals.files);
if (message_verbosity_get() >= V_DEBUG)
- printf("\t%" PRIu64 "\t%s",
+ printf("\t%" PRIu64 "\t%s\t%" PRIu32,
totals.memusage_max,
- totals.all_have_sizes ? "yes" : "no");
+ totals.all_have_sizes ? "yes" : "no",
+ totals.min_version);
putchar('\n');
Modified: vendor/xz/dist/src/xz/main.c
===================================================================
--- vendor/xz/dist/src/xz/main.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/main.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -212,7 +212,7 @@
// Process the files given on the command line. Note that if no names
// 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) {
// Processing from stdin to stdout. Check that we
// aren't writing compressed data to a terminal or
@@ -275,6 +275,11 @@
list_totals();
}
+#ifndef NDEBUG
+ coder_free();
+ args_free();
+#endif
+
// If we have got a signal, raise it to kill the program instead
// of calling tuklib_exit().
signals_exit();
Modified: vendor/xz/dist/src/xz/message.c
===================================================================
--- vendor/xz/dist/src/xz/message.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/message.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -12,10 +12,6 @@
#include "private.h"
-#ifdef HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
-
#include <stdarg.h>
@@ -64,10 +60,7 @@
/// and estimate remaining time.
static uint64_t expected_in_size;
-/// Time when we started processing the file
-static uint64_t start_time;
-
// Use alarm() and SIGALRM when they are supported. This has two minor
// advantages over the alternative of polling gettimeofday():
// - It is possible for the user to send SIGINFO, SIGUSR1, or SIGALRM to
@@ -112,16 +105,6 @@
#endif
-/// Get the current time as microseconds since epoch
-static uint64_t
-my_time(void)
-{
- struct timeval tv;
- gettimeofday(&tv, NULL);
- return (uint64_t)(tv.tv_sec) * UINT64_C(1000000) + tv.tv_usec;
-}
-
-
extern void
message_init(void)
{
@@ -264,11 +247,10 @@
// It is needed to find out the position in the stream.
progress_strm = strm;
- // Store the processing start time of the file and its expected size.
- // If we aren't printing any statistics, then these are unused. But
- // since it is possible that the user sends us a signal to show
- // statistics, we need to have these available anyway.
- start_time = my_time();
+ // Store the expected size of the file. If we aren't printing any
+ // statistics, then is will be unused. But since it is possible
+ // that the user sends us a signal to show statistics, we need
+ // to have it available anyway.
expected_in_size = in_size;
// Indicate that progress info may need to be printed before
@@ -290,7 +272,7 @@
alarm(1);
#else
progress_needs_updating = true;
- progress_next_update = 1000000;
+ progress_next_update = 1000;
#endif
}
@@ -364,7 +346,7 @@
{
// Don't print the speed immediately, since the early values look
// somewhat random.
- if (elapsed < 3000000)
+ if (elapsed < 3000)
return "";
static const char unit[][8] = {
@@ -377,7 +359,7 @@
// Calculate the speed as KiB/s.
double speed = (double)(uncompressed_pos)
- / ((double)(elapsed) * (1024.0 / 1e6));
+ / ((double)(elapsed) * (1024.0 / 1000.0));
// Adjust the unit of the speed if needed.
while (speed > 999.0) {
@@ -399,15 +381,16 @@
}
-/// 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.
static const char *
-progress_time(uint64_t useconds)
+progress_time(uint64_t mseconds)
{
// 9999 hours = 416 days
static char buf[sizeof("9999:59:59")];
- uint32_t seconds = useconds / 1000000;
+ // 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.
if (seconds == 0 || seconds > ((9999 * 60) + 59) * 60 + 59)
@@ -445,7 +428,7 @@
// - Only a few seconds has passed since we started (de)compressing,
// so estimate would be too inaccurate.
if (expected_in_size == 0 || in_pos > expected_in_size
- || in_pos < (UINT64_C(1) << 19) || elapsed < 8000000)
+ || in_pos < (UINT64_C(1) << 19) || elapsed < 8000)
return "";
// Calculate the estimate. Don't give an estimate of zero seconds,
@@ -452,7 +435,7 @@
// since it is possible that all the input has been already passed
// to the library, but there is still quite a bit of output pending.
uint32_t remaining = (double)(expected_in_size - in_pos)
- * ((double)(elapsed) / 1e6) / (double)(in_pos);
+ * ((double)(elapsed) / 1000.0) / (double)(in_pos);
if (remaining < 1)
remaining = 1;
@@ -518,28 +501,26 @@
}
-/// Calculate the elapsed time as microseconds.
-static uint64_t
-progress_elapsed(void)
-{
- return my_time() - start_time;
-}
-
-
-/// Get information about position in the stream. This is currently simple,
-/// but it will become more complicated once we have multithreading support.
+/// Get how much uncompressed and compressed data has been processed.
static void
progress_pos(uint64_t *in_pos,
uint64_t *compressed_pos, uint64_t *uncompressed_pos)
{
- *in_pos = progress_strm->total_in;
+ uint64_t out_pos;
+ lzma_get_progress(progress_strm, in_pos, &out_pos);
+ // It cannot have processed more input than it has been given.
+ assert(*in_pos <= progress_strm->total_in);
+
+ // It cannot have produced more output than it claims to have ready.
+ assert(out_pos >= progress_strm->total_out);
+
if (opt_mode == MODE_COMPRESS) {
- *compressed_pos = progress_strm->total_out;
- *uncompressed_pos = progress_strm->total_in;
+ *compressed_pos = out_pos;
+ *uncompressed_pos = *in_pos;
} else {
- *compressed_pos = progress_strm->total_in;
- *uncompressed_pos = progress_strm->total_out;
+ *compressed_pos = *in_pos;
+ *uncompressed_pos = out_pos;
}
return;
@@ -553,13 +534,13 @@
return;
// Calculate how long we have been processing this file.
- const uint64_t elapsed = progress_elapsed();
+ const uint64_t elapsed = mytime_get_elapsed();
#ifndef SIGALRM
if (progress_next_update > elapsed)
return;
- progress_next_update = elapsed + 1000000;
+ progress_next_update = elapsed + 1000;
#endif
// Get our current position in the stream.
@@ -652,7 +633,7 @@
progress_active = false;
- const uint64_t elapsed = progress_elapsed();
+ const uint64_t elapsed = mytime_get_elapsed();
signals_block();
@@ -1122,8 +1103,11 @@
" -f, --force force overwrite of output file and (de)compress links\n"
" -c, --stdout write to standard output and don't delete input files"));
- if (long_help)
+ if (long_help) {
puts(_(
+" --single-stream decompress only the first stream, and silently\n"
+" ignore possible remaining input data"));
+ puts(_(
" --no-sparse do not create sparse files when decompressing\n"
" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n"
" --files[=FILE] read filenames to process from FILE; if FILE is\n"
@@ -1130,6 +1114,7 @@
" omitted, filenames are read from the standard input;\n"
" filenames must be terminated with the newline character\n"
" --files0[=FILE] like --files but use the null character as terminator"));
+ }
if (long_help) {
puts(_("\n Basic file format and compression options:\n"));
@@ -1138,6 +1123,8 @@
" `auto' (default), `xz', `lzma', and `raw'\n"
" -C, --check=CHECK integrity check type: `none' (use with caution),\n"
" `crc32', `crc64' (default), or `sha256'"));
+ puts(_(
+" --ignore-check don't verify the integrity check when decompressing"));
}
puts(_(
@@ -1148,7 +1135,25 @@
" -e, --extreme try to improve compression ratio by using more CPU time;\n"
" does not affect decompressor memory requirements"));
+ puts(_(
+" -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n"
+" to use as many threads as there are processor cores"));
+
if (long_help) {
+ puts(_(
+" --block-size=SIZE\n"
+" start a new .xz block after every SIZE bytes of input;\n"
+" use this to set the block size for threaded compression"));
+ puts(_(
+" --block-list=SIZES\n"
+" start a new .xz block after the given comma-separated\n"
+" intervals of uncompressed data"));
+ puts(_(
+" --flush-timeout=TIMEOUT\n"
+" when compressing, if more than TIMEOUT milliseconds has\n"
+" passed since the previous flush and reading more input\n"
+" would block, all pending data is flushed out"
+ ));
puts(_( // xgettext:no-c-format
" --memlimit-compress=LIMIT\n"
" --memlimit-decompress=LIMIT\n"
@@ -1244,5 +1249,10 @@
PACKAGE_BUGREPORT);
printf(_("%s home page: <%s>\n"), PACKAGE_NAME, PACKAGE_URL);
+#if LZMA_VERSION_STABILITY != LZMA_VERSION_STABILITY_STABLE
+ puts(_(
+"THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."));
+#endif
+
tuklib_exit(E_SUCCESS, E_ERROR, verbosity != V_SILENT);
}
Added: vendor/xz/dist/src/xz/mytime.c
===================================================================
--- vendor/xz/dist/src/xz/mytime.c (rev 0)
+++ vendor/xz/dist/src/xz/mytime.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -0,0 +1,89 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+/// \file mytime.c
+/// \brief Time handling functions
+//
+// Author: Lasse Collin
+//
+// This file has been put into the public domain.
+// You can do whatever you want with this file.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "private.h"
+
+#if !(defined(HAVE_CLOCK_GETTIME) && HAVE_DECL_CLOCK_MONOTONIC)
+# include <sys/time.h>
+#endif
+
+uint64_t opt_flush_timeout = 0;
+bool flush_needed;
+
+static uint64_t start_time;
+static uint64_t next_flush;
+
+
+/// \brief Get the current time as milliseconds
+///
+/// It's relative to some point but not necessarily to the UNIX Epoch.
+static uint64_t
+mytime_now(void)
+{
+ // NOTE: HAVE_DECL_CLOCK_MONOTONIC is always defined to 0 or 1.
+#if defined(HAVE_CLOCK_GETTIME) && HAVE_DECL_CLOCK_MONOTONIC
+ // If CLOCK_MONOTONIC was available at compile time but for some
+ // reason isn't at runtime, fallback to CLOCK_REALTIME which
+ // according to POSIX is mandatory for all implementations.
+ static clockid_t clk_id = CLOCK_MONOTONIC;
+ struct timespec tv;
+ while (clock_gettime(clk_id, &tv))
+ clk_id = CLOCK_REALTIME;
+
+ return (uint64_t)(tv.tv_sec) * UINT64_C(1000) + tv.tv_nsec / 1000000;
+#else
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ return (uint64_t)(tv.tv_sec) * UINT64_C(1000) + tv.tv_usec / 1000;
+#endif
+}
+
+
+extern void
+mytime_set_start_time(void)
+{
+ start_time = mytime_now();
+ next_flush = start_time + opt_flush_timeout;
+ flush_needed = false;
+ return;
+}
+
+
+extern uint64_t
+mytime_get_elapsed(void)
+{
+ return mytime_now() - start_time;
+}
+
+
+extern void
+mytime_set_flush_time(void)
+{
+ next_flush = mytime_now() + opt_flush_timeout;
+ flush_needed = false;
+ return;
+}
+
+
+extern int
+mytime_get_flush_timeout(void)
+{
+ if (opt_flush_timeout == 0 || opt_mode != MODE_COMPRESS)
+ return -1;
+
+ const uint64_t now = mytime_now();
+ if (now >= next_flush)
+ return 0;
+
+ const uint64_t remaining = next_flush - now;
+ return remaining > INT_MAX ? INT_MAX : (int)remaining;
+}
Added: vendor/xz/dist/src/xz/mytime.h
===================================================================
--- vendor/xz/dist/src/xz/mytime.h (rev 0)
+++ vendor/xz/dist/src/xz/mytime.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -0,0 +1,47 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+/// \file mytime.h
+/// \brief Time handling functions
+//
+// Author: Lasse Collin
+//
+// This file has been put into the public domain.
+// You can do whatever you want with this file.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+/// \brief Number of milliseconds to between LZMA_SYNC_FLUSHes
+///
+/// If 0, timed flushing is disabled. Otherwise if no more input is available
+/// and not at the end of the file and at least opt_flush_timeout milliseconds
+/// has elapsed since the start of compression or the previous flushing
+/// (LZMA_SYNC_FLUSH or LZMA_FULL_FLUSH), set LZMA_SYNC_FLUSH to flush
+/// the pending data.
+extern uint64_t opt_flush_timeout;
+
+
+/// \brief True when flushing is needed due to expired timeout
+extern bool flush_needed;
+
+
+/// \brief Store the time when (de)compression was started
+///
+/// The start time is also stored as the time of the first flush.
+extern void mytime_set_start_time(void);
+
+
+/// \brief Get the number of milliseconds since the operation started
+extern uint64_t mytime_get_elapsed(void);
+
+
+/// \brief Store the time of when compressor was flushed
+extern void mytime_set_flush_time(void);
+
+
+/// \brief Get the number of milliseconds until the next flush
+///
+/// This returns -1 if no timed flushing is used.
+///
+/// The return value is inteded for use with poll().
+extern int mytime_get_flush_timeout(void);
Modified: vendor/xz/dist/src/xz/options.c
===================================================================
--- vendor/xz/dist/src/xz/options.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/options.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -59,7 +59,7 @@
static void
parse_options(const char *str, const option_map *opts,
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)
{
if (str == NULL || str[0] == '\0')
@@ -87,7 +87,7 @@
"pairs separated with commas"), str);
// Look for the option name from the option map.
- size_t i = 0;
+ unsigned i = 0;
while (true) {
if (opts[i].name == NULL)
message_fatal(_("%s: Invalid option name"),
@@ -103,7 +103,7 @@
if (opts[i].map != NULL) {
// value is a string which we should map
// to an integer.
- size_t j;
+ unsigned j;
for (j = 0; opts[i].map[j].name != NULL; ++j) {
if (strcmp(opts[i].map[j].name, value) == 0)
break;
@@ -149,7 +149,7 @@
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__)))
{
lzma_options_delta *opt = options;
@@ -193,7 +193,7 @@
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__)))
{
lzma_options_bcj *opt = options;
@@ -249,7 +249,7 @@
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;
Modified: vendor/xz/dist/src/xz/private.h
===================================================================
--- vendor/xz/dist/src/xz/private.h 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/private.h 2016-10-15 16:14:07 UTC (rev 9176)
@@ -12,6 +12,7 @@
#include "sysdefs.h"
#include "mythread.h"
+
#include "lzma.h"
#include <sys/types.h>
@@ -45,6 +46,7 @@
#endif
#include "main.h"
+#include "mytime.h"
#include "coder.h"
#include "message.h"
#include "args.h"
Modified: vendor/xz/dist/src/xz/signals.c
===================================================================
--- vendor/xz/dist/src/xz/signals.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/signals.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -41,6 +41,11 @@
{
exit_signal = sig;
user_abort = true;
+
+#ifndef TUKLIB_DOSLIKE
+ io_write_to_user_abort_pipe();
+#endif
+
return;
}
Modified: vendor/xz/dist/src/xz/suffix.c
===================================================================
--- vendor/xz/dist/src/xz/suffix.c 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/suffix.c 2016-10-15 16:14:07 UTC (rev 9176)
@@ -12,6 +12,10 @@
#include "private.h"
+#ifdef __DJGPP__
+# include <fcntl.h>
+#endif
+
// For case-insensitive filename suffix on case-insensitive systems
#if defined(TUKLIB_DOSLIKE) || defined(__VMS)
# define strcmp strcasecmp
@@ -45,6 +49,31 @@
}
+#ifdef __DJGPP__
+/// \brief Test for special suffix used for 8.3 short filenames (SFN)
+///
+/// \return If str matches *.?- or *.??-, true is returned. Otherwise
+/// false is returned.
+static bool
+has_sfn_suffix(const char *str, size_t len)
+{
+ if (len >= 4 && str[len - 1] == '-' && str[len - 2] != '.'
+ && !is_dir_sep(str[len - 2])) {
+ // *.?-
+ if (str[len - 3] == '.')
+ return !is_dir_sep(str[len - 4]);
+
+ // *.??-
+ if (len >= 5 && !is_dir_sep(str[len - 3])
+ && str[len - 4] == '.')
+ return !is_dir_sep(str[len - 5]);
+ }
+
+ return false;
+}
+#endif
+
+
/// \brief Checks if src_name has given compressed_suffix
///
/// \param suffix Filename suffix to look for
@@ -87,6 +116,9 @@
{ ".xz", "" },
{ ".txz", ".tar" }, // .txz abbreviation for .txt.gz is rare.
{ ".lzma", "" },
+#ifdef __DJGPP__
+ { ".lzm", "" },
+#endif
{ ".tlz", ".tar" },
// { ".gz", "" },
// { ".tgz", ".tar" },
@@ -112,6 +144,17 @@
break;
}
}
+
+#ifdef __DJGPP__
+ // Support also *.?- -> *.? and *.??- -> *.?? on DOS.
+ // This is done also when long filenames are available
+ // to keep it easy to decompress files created when
+ // long filename support wasn't available.
+ if (new_len == 0 && has_sfn_suffix(src_name, src_len)) {
+ new_suffix = "";
+ new_len = src_len - 1;
+ }
+#endif
}
if (new_len == 0 && custom_suffix != NULL)
@@ -134,15 +177,26 @@
}
+/// This message is needed in multiple places in compressed_name(),
+/// so the message has been put into its own function.
+static void
+msg_suffix(const char *src_name, const char *suffix)
+{
+ message_warning(_("%s: File already has `%s' suffix, skipping"),
+ src_name, suffix);
+ return;
+}
+
+
/// \brief Appends suffix to src_name
///
/// In contrast to uncompressed_name(), we check only suffixes that are valid
/// for the specified file format.
static char *
-compressed_name(const char *src_name, const size_t src_len)
+compressed_name(const char *src_name, size_t src_len)
{
// The order of these must match the order in args.h.
- static const char *const all_suffixes[][3] = {
+ static const char *const all_suffixes[][4] = {
{
".xz",
".txz",
@@ -149,6 +203,9 @@
NULL
}, {
".lzma",
+#ifdef __DJGPP__
+ ".lzm",
+#endif
".tlz",
NULL
/*
@@ -170,20 +227,27 @@
const size_t format = opt_format - 1;
const char *const *suffixes = all_suffixes[format];
+ // Look for known filename suffixes and refuse to compress them.
for (size_t i = 0; suffixes[i] != NULL; ++i) {
if (test_suffix(suffixes[i], src_name, src_len) != 0) {
- message_warning(_("%s: File already has `%s' "
- "suffix, skipping"), src_name,
- suffixes[i]);
+ msg_suffix(src_name, suffixes[i]);
return NULL;
}
}
+#ifdef __DJGPP__
+ // Recognize also the special suffix that is used when long
+ // filename (LFN) support isn't available. This suffix is
+ // recognized on LFN systems too.
+ if (opt_format == FORMAT_XZ && has_sfn_suffix(src_name, src_len)) {
+ msg_suffix(src_name, "-");
+ return NULL;
+ }
+#endif
+
if (custom_suffix != NULL) {
if (test_suffix(custom_suffix, src_name, src_len) != 0) {
- message_warning(_("%s: File already has `%s' "
- "suffix, skipping"), src_name,
- custom_suffix);
+ msg_suffix(src_name, custom_suffix);
return NULL;
}
}
@@ -199,8 +263,102 @@
const char *suffix = custom_suffix != NULL
? custom_suffix : suffixes[0];
- const size_t suffix_len = strlen(suffix);
+ size_t suffix_len = strlen(suffix);
+#ifdef __DJGPP__
+ if (!_use_lfn(src_name)) {
+ // Long filename (LFN) support isn't available and we are
+ // limited to 8.3 short filenames (SFN).
+ //
+ // Look for suffix separator from the filename, and make sure
+ // that it is in the filename, not in a directory name.
+ const char *sufsep = strrchr(src_name, '.');
+ if (sufsep == NULL || sufsep[1] == '\0'
+ || has_dir_sep(sufsep)) {
+ // src_name has no filename extension.
+ //
+ // Examples:
+ // xz foo -> foo.xz
+ // xz -F lzma foo -> foo.lzm
+ // xz -S x foo -> foox
+ // xz -S x foo. -> foo.x
+ // xz -S x.y foo -> foox.y
+ // xz -S .x foo -> foo.x
+ // xz -S .x foo. -> foo.x
+ //
+ // Avoid double dots:
+ if (sufsep != NULL && sufsep[1] == '\0'
+ && suffix[0] == '.')
+ --src_len;
+
+ } else if (custom_suffix == NULL
+ && strcasecmp(sufsep, ".tar") == 0) {
+ // ".tar" is handled specially.
+ //
+ // Examples:
+ // xz foo.tar -> foo.txz
+ // xz -F lzma foo.tar -> foo.tlz
+ static const char *const tar_suffixes[] = {
+ ".txz",
+ ".tlz",
+ // ".tgz",
+ };
+ suffix = tar_suffixes[format];
+ suffix_len = 4;
+ src_len -= 4;
+
+ } else {
+ if (custom_suffix == NULL && opt_format == FORMAT_XZ) {
+ // Instead of the .xz suffix, use a single
+ // character at the end of the filename
+ // extension. This is to minimize name
+ // conflicts when compressing multiple files
+ // with the same basename. E.g. foo.txt and
+ // foo.exe become foo.tx- and foo.ex-. Dash
+ // is rare as the last character of the
+ // filename extension, so it seems to be
+ // quite safe choice and it stands out better
+ // in directory listings than e.g. x. For
+ // comparison, gzip uses z.
+ suffix = "-";
+ suffix_len = 1;
+ }
+
+ if (suffix[0] == '.') {
+ // The first character of the suffix is a dot.
+ // Throw away the original filename extension
+ // and replace it with the new suffix.
+ //
+ // Examples:
+ // xz -F lzma foo.txt -> foo.lzm
+ // xz -S .x foo.txt -> foo.x
+ src_len = sufsep - src_name;
+
+ } else {
+ // The first character of the suffix is not
+ // a dot. Preserve the first 0-2 characters
+ // of the original filename extension.
+ //
+ // Examples:
+ // xz foo.txt -> foo.tx-
+ // xz -S x foo.c -> foo.cx
+ // xz -S ab foo.c -> foo.cab
+ // xz -S ab foo.txt -> foo.tab
+ // xz -S abc foo.txt -> foo.abc
+ //
+ // Truncate the suffix to three chars:
+ if (suffix_len > 3)
+ suffix_len = 3;
+
+ // If needed, overwrite 1-3 characters.
+ if (strlen(sufsep) > 4 - suffix_len)
+ src_len = sufsep - src_name
+ + 4 - suffix_len;
+ }
+ }
+ }
+#endif
+
char *dest_name = xmalloc(src_len + suffix_len + 1);
memcpy(dest_name, src_name, src_len);
Modified: vendor/xz/dist/src/xz/xz.1
===================================================================
--- vendor/xz/dist/src/xz/xz.1 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/xz.1 2016-10-15 16:14:07 UTC (rev 9176)
@@ -5,7 +5,7 @@
.\" This file has been put into the public domain.
.\" You can do whatever you want with this file.
.\"
-.TH XZ 1 "2013-06-21" "Tukaani" "XZ Utils"
+.TH XZ 1 "2015-05-11" "Tukaani" "XZ Utils"
.
.SH NAME
xz, unxz, xzcat, lzma, unlzma, lzcat \- Compress or decompress .xz and .lzma files
@@ -435,6 +435,29 @@
This implies
.BR \-\-keep .
.TP
+.B \-\-single\-stream
+Decompress only the first
+.B .xz
+stream, and
+silently ignore possible remaining input data following the stream.
+Normally such trailing garbage makes
+.B xz
+display an error.
+.IP ""
+.B xz
+never decompresses more than one stream from
+.B .lzma
+files or raw streams, but this option still makes
+.B xz
+ignore the possible trailing data after the
+.B .lzma
+file or raw stream.
+.IP ""
+This option has no effect if the operation mode is not
+.B \-\-decompress
+or
+.BR \-\-test .
+.TP
.B \-\-no\-sparse
Disable creation of sparse files.
By default, if decompressing into a regular file,
@@ -586,6 +609,25 @@
headers is always verified with CRC32.
It is not possible to change or disable it.
.TP
+.B \-\-ignore\-check
+Don't verify the integrity check of the compressed data when decompressing.
+The CRC32 values in the
+.B .xz
+headers will still be verified normally.
+.IP ""
+.B "Do not use this option unless you know what you are doing."
+Possible reasons to use this option:
+.RS
+.IP \(bu 3
+Trying to recover data from a corrupt .xz file.
+.IP \(bu 3
+Speeding up decompression.
+This matters mostly with SHA-256 or
+with files that have compressed extremely well.
+It's recommended to not use this option for this purpose
+unless the file integrity is verified externally in some other way.
+.RE
+.TP
.BR \-0 " ... " \-9
Select a compression preset level.
The default is
@@ -778,6 +820,124 @@
with LZMA Utils.
Avoid using these options.
.TP
+.BI \-\-block\-size= size
+When compressing to the
+.B .xz
+format, split the input data into blocks of
+.I size
+bytes.
+The blocks are compressed independently from each other,
+which helps with multi-threading and
+makes limited random-access decompression possible.
+This option is typically used to override the default
+block size in multi-threaded mode,
+but this option can be used in single-threaded mode too.
+.IP ""
+In multi-threaded mode about three times
+.I size
+bytes will be allocated in each thread for buffering input and output.
+The default
+.I size
+is three times the LZMA2 dictionary size or 1 MiB,
+whichever is more.
+Typically a good value is 2\-4 times
+the size of the LZMA2 dictionary or at least 1 MiB.
+Using
+.I size
+less than the LZMA2 dictionary size is waste of RAM
+because then the LZMA2 dictionary buffer will never get fully used.
+The sizes of the blocks are stored in the block headers,
+which a future version of
+.B xz
+will use for multi-threaded decompression.
+.IP ""
+In single-threaded mode no block splitting is done by default.
+Setting this option doesn't affect memory usage.
+No size information is stored in block headers,
+thus files created in single-threaded mode
+won't be identical to files created in multi-threaded mode.
+The lack of size information also means that a future version of
+.B xz
+won't be able decompress the files in multi-threaded mode.
+.TP
+.BI \-\-block\-list= sizes
+When compressing to the
+.B .xz
+format, start a new block after
+the given intervals of uncompressed data.
+.IP ""
+The uncompressed
+.I sizes
+of the blocks are specified as a comma-separated list.
+Omitting a size (two or more consecutive commas) is a shorthand
+to use the size of the previous block.
+.IP ""
+If the input file is bigger than the sum of
+.IR sizes ,
+the last value in
+.I sizes
+is repeated until the end of the file.
+A special value of
+.B 0
+may be used as the last value to indicate that
+the rest of the file should be encoded as a single block.
+.IP ""
+If one specifies
+.I sizes
+that exceed the encoder's block size
+(either the default value in threaded mode or
+the value specified with \fB\-\-block\-size=\fIsize\fR),
+the encoder will create additional blocks while
+keeping the boundaries specified in
+.IR sizes .
+For example, if one specifies
+.B \-\-block\-size=10MiB
+.B \-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB
+and the input file is 80 MiB,
+one will get 11 blocks:
+5, 10, 8, 10, 2, 10, 10, 4, 10, 10, and 1 MiB.
+.IP ""
+In multi-threaded mode the sizes of the blocks
+are stored in the block headers.
+This isn't done in single-threaded mode,
+so the encoded output won't be
+identical to that of the multi-threaded mode.
+.TP
+.BI \-\-flush\-timeout= timeout
+When compressing, if more than
+.I timeout
+milliseconds (a positive integer) has passed since the previous flush and
+reading more input would block,
+all the pending input data is flushed from the encoder and
+made available in the output stream.
+This can be useful if
+.B xz
+is used to compress data that is streamed over a network.
+Small
+.I timeout
+values make the data available at the receiving end
+with a small delay, but large
+.I timeout
+values give better compression ratio.
+.IP ""
+This feature is disabled by default.
+If this option is specified more than once, the last one takes effect.
+The special
+.I timeout
+value of
+.B 0
+can be used to explicitly disable this feature.
+.IP ""
+This feature is not available on non-POSIX systems.
+.IP ""
+.\" FIXME
+.B "This feature is still experimental."
+Currently
+.B xz
+is unsuitable for decompressing the stream in real time due to how
+.B xz
+does buffering.
+.TP
.BI \-\-memlimit\-compress= limit
Set a memory usage limit for compression.
If this option is specified multiple times,
@@ -876,24 +1036,33 @@
.TP
\fB\-T\fR \fIthreads\fR, \fB\-\-threads=\fIthreads
Specify the number of worker threads to use.
+Setting
+.I threads
+to a special value
+.B 0
+makes
+.B xz
+use as many threads as there are CPU cores on the system.
The actual number of threads can be less than
.I threads
+if the input file is not big enough
+for threading with the given settings or
if using more threads would exceed the memory usage limit.
.IP ""
-.B "Multithreaded compression and decompression are not"
-.B "implemented yet, so this option has no effect for now."
+Currently the only threading method is to split the input into
+blocks and compress them independently from each other.
+The default block size depends on the compression level and
+can be overriden with the
+.BI \-\-block\-size= size
+option.
.IP ""
-.B "As of writing (2010-09-27), it hasn't been decided"
-.B "if threads will be used by default on multicore systems"
-.B "once support for threading has been implemented."
-.B "Comments are welcome."
-The complicating factor is that using many threads
-will increase the memory usage dramatically.
-Note that if multithreading will be the default,
-it will probably be done so that single-threaded and
-multithreaded modes produce the same output,
-so compression ratio won't be significantly affected
-if threading will be enabled by default.
+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"
A custom filter chain allows specifying
@@ -1863,6 +2032,14 @@
.B no
indicating if all block headers have both compressed size and
uncompressed size stored in them
+.PP
+.I Since
+.B xz
+.I 5.1.2alpha:
+.IP 4. 4
+Minimum
+.B xz
+version required to decompress the file
.RE
.PD
.PP
@@ -1913,6 +2090,14 @@
.B no
indicating if all block headers have both compressed size and
uncompressed size stored in them
+.PP
+.I Since
+.B xz
+.I 5.1.2alpha:
+.IP 12. 4
+Minimum
+.B xz
+version required to decompress the file
.RE
.PD
.PP
@@ -2173,7 +2358,9 @@
.B .lzma
stream,
.B xz
-considers the file to be corrupt.
+considers the file to be corrupt unless
+.B \-\-single\-stream
+was used.
This may break obscure scripts which have
assumed that trailing garbage is ignored.
.
Deleted: vendor/xz/dist/src/xz/xz_w32res.rc
===================================================================
--- vendor/xz/dist/src/xz/xz_w32res.rc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xz/xz_w32res.rc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,12 +0,0 @@
-/*
- * Author: Lasse Collin
- *
- * This file has been put into the public domain.
- * You can do whatever you want with this file.
- */
-
-#define MY_TYPE VFT_APP
-#define MY_NAME "xz"
-#define MY_SUFFIX ".exe"
-#define MY_DESC "xz data compression tool for .xz and .lzma files"
-#include "common_w32res.rc"
Deleted: vendor/xz/dist/src/xzdec/lzmadec_w32res.rc
===================================================================
--- vendor/xz/dist/src/xzdec/lzmadec_w32res.rc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xzdec/lzmadec_w32res.rc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,12 +0,0 @@
-/*
- * Author: Lasse Collin
- *
- * This file has been put into the public domain.
- * You can do whatever you want with this file.
- */
-
-#define MY_TYPE VFT_APP
-#define MY_NAME "lzmadec"
-#define MY_SUFFIX ".exe"
-#define MY_DESC "lzmadec decompression tool for .lzma files"
-#include "common_w32res.rc"
Deleted: vendor/xz/dist/src/xzdec/xzdec_w32res.rc
===================================================================
--- vendor/xz/dist/src/xzdec/xzdec_w32res.rc 2016-10-15 13:51:14 UTC (rev 9175)
+++ vendor/xz/dist/src/xzdec/xzdec_w32res.rc 2016-10-15 16:14:07 UTC (rev 9176)
@@ -1,12 +0,0 @@
-/*
- * Author: Lasse Collin
- *
- * This file has been put into the public domain.
- * You can do whatever you want with this file.
- */
-
-#define MY_TYPE VFT_APP
-#define MY_NAME "xzdec"
-#define MY_SUFFIX ".exe"
-#define MY_DESC "xzdec decompression tool for .xz files"
-#include "common_w32res.rc"
More information about the Midnightbsd-cvs
mailing list