[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