commit e17caec12e14eb46ae90f4a5e59401ada4ab2842
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-29 17:51:23 +0300

    Bump version and soname for 5.2.13

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit c38f850536208409674adb0d84b374f899aec7dc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-29 17:49:42 +0300

    Add NEWS for 5.2.13

 NEWS | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 115 insertions(+)

commit a59aae8d28323ecf79ad8e1dd46d15c5d8129ba9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-29 16:33:24 +0300

    Build: Update po/*.po files only when needed
    
    When po/xz.pot doesn't exist, running "make" or "make dist" will
    create it. Then the .po files will be updated but only if they
    actually would change more than the POT-Creation-Date line.
    Then the .gmo files would be generated from the .po files.
    This is the case before and after this commit.
    
    However, "make dist" and thus "make mydist" did a forced update
    to the files, updating them even if the only change was the
    POT-Creation-Date line. This had pros and cons: It made it clear
    that the .po file really is in sync with the recent strings in
    the package. On the other hand, it added noise in form of changed
    files in the source tree and distribution tarballs. It can be
    ignored with something like "diff -I'^"POT-Creation-Date: '" but
    it's still a minor annoyance *if* there's not enough value in
    having the most recent timestamp.
    
    Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced
    update won't happen in "make dist" anymore. However, the "mydist"
    target will use xz.pot-update target which is the same target that
    is run when xz.pot doesn't exist at all yet. Thus "mydist" will
    ensure that the translations are up to date, without noise from
    changes that would affect only the POT-Creation-Date line.
    
    Note that po4a always uses msgmerge with --update, so POT-Creation-Date
    in the man page translations is never the only change in .po files.
    In that sense this commit makes the message translations behave more
    similarly to the man page translations.
    
    Distribution tarballs will still have non-reproducible POT-Creation-Date
    in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they
    could be made reproducible from a Git timestamp if desired.
    
    (cherry picked from commit 9284f1aea31f0eb23e2ea72f7218b271e2234762)

 Makefile.am | 3 ++-
 po/Makevars | 6 +++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

commit ac0658fa6d765b26efca68e4a464c659ef74cf11
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 21:23:40 +0300

    Translations: Run po4a/update-po and cleanup unused strings
    
    The v5.2 branch won't get any translation updates so the fuzzy
    strings and obsolete strings are all useless. Cleaning them up
    makes the files smaller and less messy to compare.
    
        ./update-po
    
        for I in *.po
        do
            msgattrib --clear-fuzzy --clear-previous --empty \
                      --no-obsolete --no-wrap "$I" > tmp
            mv tmp "$I"
        done
    
    The po4a run gave "Parse error at" message from fr.po but
    after the fr.po was rewritten the error is gone.

 po4a/de.po | 4482 +++++++++++++++++-------------------------------------------
 po4a/fr.po | 1664 +++++++++++-----------
 2 files changed, 2072 insertions(+), 4074 deletions(-)

commit 2bc80e5f820a2e8548e9b1ba60dc1eda4218439e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 21:10:33 +0300

    po4a/update-po: Disable wrapping in .pot and .po files
    
    The .po files from the Translation Project come with unwrapped
    strings so this matches it.
    
    This may reduce the noise in diffs too. When the beginning of
    a paragraph had changed, the rest of the lines got rewrapped
    in msgsid. Now it's just one very long line that changes when
    a paragraph has been edited.
    
    The --add-location=file option was removed as redundant. The line
    numbers don't exist in the .pot file due to --porefs file and thus
    they cannot get copied to the .po files either.
    
    (cherry picked from commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599)

 po4a/update-po | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

commit 27cfdc58971700767082df1c9ce37c77550b7ec5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 18:36:53 +0300

    Update contact info in README
    
    (cherry picked from commit b14c130a58a649f9a73392eeb122cb252327c569)

 README | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit 649b1ca6e51659e8f48f301f9d211338aa837c69
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 17:46:52 +0300

    Translations: Run "make -C po update-po"
    
    In the past this wasn't done before releases; the Git repository
    just contained the files from the Translation Project. But this
    way it is clearer when comparing release tarballs against the
    Git repository.

 po/ca.po    | 340 ++++++++++++++++++++++++++++++------------------------------
 po/cs.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/da.po    | 338 ++++++++++++++++++++++++++++++-----------------------------
 po/de.po    | 338 ++++++++++++++++++++++++++++++-----------------------------
 po/eo.po    | 336 +++++++++++++++++++++++++++++------------------------------
 po/es.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/fi.po    | 336 +++++++++++++++++++++++++++++------------------------------
 po/fr.po    | 338 ++++++++++++++++++++++++++++++-----------------------------
 po/hr.po    | 336 +++++++++++++++++++++++++++++------------------------------
 po/hu.po    | 336 +++++++++++++++++++++++++++++------------------------------
 po/it.po    | 338 ++++++++++++++++++++++++++++++-----------------------------
 po/ko.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/pl.po    | 338 ++++++++++++++++++++++++++++++-----------------------------
 po/pt.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/pt_BR.po | 322 ++++++++++++++++++++++++++++----------------------------
 po/ro.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/sr.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/sv.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/tr.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/uk.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/vi.po    | 330 ++++++++++++++++++++++++++++------------------------------
 po/zh_CN.po | 336 +++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 338 ++++++++++++++++++++++++++++++-----------------------------
 23 files changed, 3783 insertions(+), 3815 deletions(-)

commit af667d7f499a69adf9fbee02db9a20cb0feb2b24
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 13:25:07 +0300

    Translations: Use --package-name=xz-man with po4a
    
    This is to match reality. See the added comment.
    
    (cherry picked from commit 75f5f2e014b0ee646963f36bc6a9c840fb272353)

 po4a/update-po | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 6e49bd6c46a2773a3b97b21221a427cf62f560ec
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 01:17:45 +0300

    Translations: Omit man page line numbers from .pot and .po files
    
    (cherry picked from commit 9114267038deaecf4832a5cacb5acbe6591ac839)

 po4a/update-po | 5 +++++
 1 file changed, 5 insertions(+)

commit fd38afb62866847ce0256d704d5cf1dcdc086a44
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 17:10:19 +0300

    Translations: Update po/Makevars
    
    Use the template from gettext 0.22.5.
    Add --add-location=file to XGETTEXT_OPTIONS and MSGMERGE_OPTIONS.
    Add --no-wrap to MSGINIT_OPTIONS.
    
    (cherry picked from commit 451f6986a5621201367c7ace5b31c552124eac13)

 po/Makevars | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 44 insertions(+), 5 deletions(-)

commit 31d3912f293056379b9640bcb0ef9eb68be8fb4a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-06 23:00:09 +0300

    liblzma: Omit an unneeded array from the x86 filter
    
    Fixes: 6aa2a6deeba04808a0fe4461396e7fb70277f3d4
    (cherry picked from commit de06b9f0c0a3f72569829ecadbc9c0a3ef099f57)

 src/liblzma/simple/x86.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit 891602da970788cb7b1d92400ff7d500b6736d7a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-19 22:04:21 +0300

    liblzma: Silence a warning from Coverity static analysis
    
    It is logical why it cannot know for sure that the value has
    to be at most 4 if it is less than 16.
    
    The x86 filter is based on a very old LZMA SDK version. Newer
    ones have quite a different implementation for the same filter.
    
    Thanks to Sam James.
    
    (cherry picked from commit 6aa2a6deeba04808a0fe4461396e7fb70277f3d4)

 src/liblzma/simple/x86.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

commit 702b9ed690828ec078f9d3fd8ecaa61ce9f3af72
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-18 00:34:07 +0300

    Fix typos
    
    Thanks to xx on #tukaani.
    
    (cherry picked from commit 4e9023857d287f624562156b60dc23d2b64c0f10)

 src/common/mythread.h                      | 2 +-
 src/common/tuklib_integer.h                | 2 +-
 src/liblzma/common/filter_buffer_decoder.c | 2 +-
 src/liblzma/common/filter_common.c         | 2 +-
 src/scripts/xzgrep.in                      | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

commit 37314d4d183a4c12a3b989ef2f31b7d397c186e9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-08 18:27:39 +0300

    Update maintainer and author info.
    
    The other maintainer suddenly disappeared.
    
    (cherry picked from commit 77a294d98a9d2d48f7e4ac273711518bf689f5c4)
    (cherry picked from commit 37c46f7b67feddc164f227273770121412038ee2)

 AUTHORS                |  9 +++++++--
 README                 | 10 +++-------
 THANKS                 |  1 -
 src/liblzma/api/lzma.h |  6 +++---
 4 files changed, 13 insertions(+), 13 deletions(-)

commit 02d03186293ba65d5d1271c8ded336c08cc98d6e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-30 22:22:45 +0300

    liblzma: Fix incorrect function type error from sanitizer
    
    Clang 17 with -fsanitize=address,undefined:
    
        src/liblzma/common/filter_common.c:366:8: runtime error:
            call to function encoder_find through pointer to incorrect
            function type 'const lzma_filter_coder *(*)(unsigned long)'
        src/liblzma/common/filter_encoder.c:187: note:
            encoder_find defined here
    
    Use a wrapper function to get the correct type neatly.
    This reduces the number of casts needed too.
    
    This issue could be a problem with control flow integrity (CFI)
    methods that check the function type on indirect function calls.
    
    Fixes: 3b34851de1eaf358cf9268922fa0eeed8278d680
    (cherry picked from commit 278563ef8f2b8d98d7f2c85e1a64ec1bc21d26d8)
    (cherry picked from commit 64e0a5f726c483bdda2ee35ed7ae5f515278272f)

 src/liblzma/common/filter_decoder.c | 15 ++++++++++++---
 src/liblzma/common/filter_encoder.c | 17 +++++++++++++----
 2 files changed, 25 insertions(+), 7 deletions(-)

commit b933ef49a5b50153aa6c547d5f782b71878c128d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-30 21:41:11 +0300

    xz: Avoid arithmetic on a null pointer
    
    It's undefined behavior. The result wasn't ever used as it occurred
    in the last iteration of a loop.
    
    Clang 17 with -fsanitize=address,undefined:
    
        $ src/xz/xz --block-list=123
        src/xz/args.c:164:12: runtime error: applying non-zero offset 1
            to null pointer
    
    Fixes: 88ccf47205d7f3aa314d358c72ef214f10f68b43
    Co-authored-by: Sam James <sam@gentoo.org>
    (cherry picked from commit 77c8f60547decefca8f2d0c905d9c708c38ee8ff)
    (cherry picked from commit 203d48259935bad1c26e35d42f3db3c0f414bd8c)

 src/xz/args.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit ecbc34d90b5457c9669ca2078e5acbc17422839e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-27 14:33:38 +0300

    liblzma: index_decoder: Fix missing initializations on LZMA_PROG_ERROR
    
    If the arguments to lzma_index_decoder() or lzma_index_buffer_decode()
    were such that LZMA_PROG_ERROR was returned, the lzma_index **i
    argument wasn't touched even though the API docs say that *i = NULL
    is done if an error occurs. This obviously won't be done even now
    if i == NULL but otherwise it is best to do it due to the wording
    in the API docs.
    
    In practice this matters very little: The problem can occur only
    if the functions are called with invalid arguments, that is,
    the calling application must already have a bug.
    
    (cherry picked from commit 71eed2520e2eecae89bade9dceea16e56cfa2ea0)
    (cherry picked from commit 214569ace8ebb34a853cdc958ac7117c8051fe03)

 src/liblzma/common/index_decoder.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit e0e53eb80f4bdb9348da1f1813761f1e31074a9a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-07 19:30:19 +0300

    CMake: Bump maximum policy version to 3.29
    
    (cherry picked from commit 80f72396ea391c6e3e6856b16b49433e07067865)

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 46c574e70a8be8001a0ae617b25047e867ec067a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-08 21:19:38 +0300

    xz man page: Use .ft CR instead of CW to silence warnings from groff.
    
    (cherry picked from commit 31ef676567c9d6fcc4ec9fc833c312f7a7c21c48)
    (cherry picked from commit 6edc2b554f1c96bb6065e8dc1d8aa6af1056747f)

 src/xz/xz.1 | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

commit 33b2a5104a1aee36ce2a36a9c89e4a1b376afe54
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-09 18:22:16 +0300

    Update THANKS.
    
    (cherry picked from commit db4dd74a344580e0b81436598d9741a3454245b0)
    (cherry picked from commit 995afe464604c89f15c50b22cbdfa4b4acc8b001)

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit e60534b03bc6877bd13858dcdcccec53897eb85f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-15 17:43:39 +0200

    INSTALL: Document arguments of --enable-symbol-versions.
    
    (cherry picked from commit 8a25ba024d55610c448c6e4f1400a00bae51b493)
    (cherry picked from commit 44a5c1374e9622054a20dc48c02bd146cbd51ec0)

 INSTALL | 43 +++++++++++++++++++++++++++++++++++++++----
 1 file changed, 39 insertions(+), 4 deletions(-)

commit be86d78acf87f1a54857ae299eb69fa3f9f4083d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-15 17:15:50 +0200

    Build: Use only the generic symbol versioning with NVIDIA HPC Compiler.
    
    This does the previous commit with CMake.
    
    AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must
    be changed to AS_IF to ensure that things wont break some day.
    See 5a5bd7f871818029d5ccbe189f087f591258c294.
    
    (cherry picked from commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5)
    (cherry picked from commit b03139b1d210865526ab0e945aa79b2627f8c202)

 configure.ac | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

commit 0f455c26877d0511e00d8876351ce349067a9a6b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-15 16:36:35 +0200

    CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler.
    
    It doesn't support the __symver__ attribute or __asm__(".symver ...").
    The generic symbol versioning can still be used since it only needs
    linker support.
    
    (cherry picked from commit c273123ed0ebaebf49994057a7fe98aae7f42c40)
    (cherry picked from commit 08754772e801218e5e06dc06e51c9e712ddf3e49)

 CMakeLists.txt | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 880556e98cbf1c1f284245a535441aad76a857fb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-13 21:38:24 +0200

    Update THANKS.
    
    (cherry picked from commit df7f487648d18a3992386a59b8a061edca862d17)
    (cherry picked from commit 9579efdbfd1499b41e17c00811bab9416165e19f)

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 639d053823a51aeacfd3935e170cceb0fa2427c7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-13 21:30:18 +0200

    liblzma: Minor comment edits.
    
    (cherry picked from commit 3217b82b3ec023bf8338249134a076bea0ea30ec)
    (cherry picked from commit 32e256c12ac703bbfcaad6c7157148a20e10a633)

 src/liblzma/delta/delta_decoder.c | 2 ++
 1 file changed, 2 insertions(+)

commit 7de966a02b57eb44b77e5b7266e49c324eaad9f6
Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
Date:   2024-03-13 13:07:13 +0100

    liblzma: Fix building with NVHPC (NVIDIA HPC SDK).
    
    NVHPC compiler has several issues that make it impossible to
    build liblzma:
      - the compiler fails to produce valid code for delta_decode if the
        vectorization is enabled, which results in failed tests.
    
    This introduces NVHPC-specific workarounds that address the issues.
    
    (This commit was contributed under 0BSD but the author confirmed
    that it is fine to backport it to the public domain branches. See
    https://github.com/tukaani-project/xz/pull/90#issuecomment-2100185936
    and the next two messages.)
    
    (cherry picked from commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31)
    (cherry picked from commit 65ac20807c1303e80fb8fc28ec810d740078e328)

 src/liblzma/delta/delta_decoder.c | 3 +++
 1 file changed, 3 insertions(+)

commit 13a0a0fc8fc9db6837f7d42fc3e279ca8cccff8f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-13 21:17:10 +0200

    CMake: Disable symbol versioning on non-glibc Linux.
    
    This better matches what configure.ac does. For example, musl has
    only basic symbol versioning support:
    
    https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning
    
    configure.ac tries to enable symbol versioning only with glibc
    so now CMake does the same.
    
    (cherry picked from commit 2ad7fad67080e88fa7fc191f9d613d8b7add9c62)
    (cherry picked from commit 78a015e753d40d604952d6c1e4428c5f440ea6b9)

 CMakeLists.txt | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

commit 706134d965c39e42ea69edaab178b2d03c915b2c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-13 20:32:46 +0200

    CMake: Make symbol versioning configurable.
    
    (cherry picked from commit 82f0c0d39eb2c026b1d96ee706f70ace868d4ed4)
    (cherry picked from commit 20e590bbed2b618911acf248477bd1f81b74c05a)

 CMakeLists.txt | 62 +++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 42 insertions(+), 20 deletions(-)

commit a9b2d85120f4ad6b441346038bf8764852e8654d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-18 14:59:52 +0200

    CMake: Handle symbol versioning on MicroBlaze specially.
    
    This is to match configure.ac.
    
    (cherry picked from commit 025eb6d7879e4c4e8cb29716b371e0f4c1aea660)
    (cherry picked from commit bcac3e3aa29d476e38a8722d687776cdbac1f3dc)

 CMakeLists.txt | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

commit 93b928b2303e51f47499d4b592f675c096dea4c8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-13 19:47:36 +0200

    Build: Style tweaks to configure.ac.
    
    The AC_MSG_ERROR line is overlong anyway as are a few other
    AC_MSG_ERROR lines already.
    
    (cherry picked from commit 45d33bfc45e4295b8ad743bc2ae61cc724f98076)
    (cherry picked from commit 9e7daa8dbdc38f32696b6ec90cb4ba4ca49fa6cc)

 configure.ac | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit 2dbc0fc5c29cf047099199aff359a3dfb8a3562a
Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
Date:   2024-03-12 20:03:49 +0100

    Build: Let the users override the symbol versioning variant.
    
    There are cases when the users want to decide themselves whether
    they want to have the generic (even on GNU/Linux) or the linux
    (even if we do not recommend that) symbol versioning variant.
    The former might be needed to circumvent compiler issues (i.e.
    the compiler does not support all features that are required
    for the linux versioning), the latter might help in overriding
    the assumptions made in the configure script.
    
    (This commit was contributed under 0BSD but the author confirmed
    that it is fine to backport it to the public domain branches. See
    https://github.com/tukaani-project/xz/pull/90#issuecomment-2100185936
    and the next two messages.)
    
    (cherry picked from commit f56ed6fac6619b56b005878d3b5210e2f0d721c0)
    (cherry picked from commit ce3a9fa94d6092665c3b000dc0dbe9a2900d4df2)

 configure.ac | 91 +++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 50 insertions(+), 41 deletions(-)

commit be29fac96d19187fec9c744306dde25af7946424
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-21 17:41:32 +0200

    INSTALL: Clarify that --disable-assembler affects only 32-bit x86.
    
    (cherry picked from commit 00440f52be9ac2c7438c7b0cb1082f12399632c6)
    (cherry picked from commit a8b3fb6d2f8e662dc03b4c239116bd057f3a5f0b)

 INSTALL | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 769b5d00557fa1562030eb21783a9bdd96fe302c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-17 23:07:35 +0200

    xz: Delete old commented-out code.
    
    (cherry picked from commit 4ce300ce0884c6e552de2af9ae8050b47b01f0e7)
    (cherry picked from commit b4b315a2060c0771b0d0ca83b9b31fcf1db40484)

 src/xz/message.c | 19 -------------------
 1 file changed, 19 deletions(-)

commit d800c85838517efe0f67b14fb9a0d5ec8b586aae
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-17 23:07:35 +0200

    xz: Tweak comments.
    
    (cherry picked from commit 7312dfbb02197c7f990c7a3cefd027a9387d1473)
    (cherry picked from commit 9c9a3e7b3f70b214cfdc2aada90d28a54466a5db)

 src/xz/main.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 7d487a4c2afb326cd5735047800b248332b75000
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-17 23:07:35 +0200

    xz: Fix message_init() description.
    
    Also explicitly initialize progress_automatic to make it clear
    that it can be read before message_init() sets it. Static variable
    was initialized to false by default already so this is only for
    clarity.
    
    (cherry picked from commit c701a5909ad9882469fbab4fab5d2d5556d3ba78)
    (cherry picked from commit 7d3418e496d00287d08a7f5af265379b757247a6)

 src/xz/main.c    | 3 ++-
 src/xz/message.c | 2 +-
 src/xz/message.h | 5 ++++-
 3 files changed, 7 insertions(+), 3 deletions(-)

commit 9c2d1b52cec053bf3861a102f4be0c39e0f231c9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-17 19:25:05 +0200

    Build: Don't install TODO.
    
    (cherry picked from commit f3440e78c9517db75bfa52e1a378fad60b073bbe)
    (cherry picked from commit fb6cf07ac7797d072aa04012c44def2dfd3b256b)

 Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2c024f60c2e51224981ecc7d1426ec821355f9b4
Author: Jia Tan <jiat0218@gmail.com>
Date:   2024-02-15 22:26:43 +0800

    Update m4/.gitignore.
    
    (cherry picked from commit 4323bc3e0c1e1d2037d5e670a3bf6633e8a3031e)
    (cherry picked from commit e164211b09d65f7f8663c46b1f74f12ac1c54d48)

 m4/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit fda91a5d77202fa377b053ca533e44b8ff8bfa3e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-12 17:09:10 +0200

    liblzma: Fix compilation of price_tablegen.c.
    
    It is built and run only manually so this didn't matter
    unless one wanted to regenerate the price_table.c.
    
    (cherry picked from commit 8e4ec794836bc1701d8c9bd5e347b8ce8cc5bbb4)
    (cherry picked from commit 65b5ee071697e4fe4c2a31c14c1d68b727f1654c)

 src/liblzma/rangecoder/price_tablegen.c | 5 +++++
 src/liblzma/rangecoder/range_common.h   | 5 ++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

commit 594b64742f86e87ef76347e04179d98c3caf45a2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-12 23:25:54 +0200

    liblzma: Sync the AUTHORS fix about SHA-256 to lzma.h.
    
    (based on commit 23de53421ea258cde6a3c33a038b1e9d08f771d1)
    
    (cherry picked from commit f200c338f8d40b1b961033a3403d6512d3f34730)

 src/liblzma/api/lzma.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 6aba0e2a5e32261cd9b515891291b09b2771890e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-09 17:20:31 +0200

    Fix SHA-256 authors.
    
    The initial commit 5d018dc03549c1ee4958364712fb0c94e1bf2741
    in 2007 had a comment in sha256.c that the code is based on
    Crypto++ Library 5.5.1. In 2009 the Authors list in sha256.c
    and the AUTHORS file was updated with information that the
    code had come from Crypto++ but via 7-Zip. I know I had viewed
    7-Zip's SHA-256 code but back then the C code has been identical
    enough with Crypto++, so I don't why I thought the author info
    would need that extra step via 7-Zip for this single file.
    
    Another error is that I had mixed sha.* and shacal2.* files
    when checking for author info in Crypto++. The shacal2.* files
    aren't related to liblzma's sha256.c and thus Kevin Springle's
    code in Crypto++ isn't either.
    
    (cherry picked from commit 76946dc4336c831fe2cc26696a035d807dd3cf13)
    (cherry picked from commit 402fb45c743b736fa033b4b04881f6d1098581fd)

 AUTHORS                    |  6 ++----
 src/liblzma/check/sha256.c | 14 ++++----------
 2 files changed, 6 insertions(+), 14 deletions(-)

commit 2c89f377cd959209f7ae66851bd26d70961350b4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-09 23:21:01 +0200

    xzless: Use ||- in LESSOPEN with with "less" 451 and newer.
    
    (cherry picked from commit 9860d418d296eb3c721e5384fb367c0499b579c8)
    (cherry picked from commit e5ba545f16e989ac51c38556e727c8c81988c04e)

 src/scripts/xzless.in | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 3af41a23c4c0ac6f5fd116eb90591d9bea498158
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-09 23:00:05 +0200

    xzless: Use --show-preproc-errors with "less" 632 and newer.
    
    This makes "less" show a warning if a decompression error occurred.
    
    (cherry picked from commit fd0692b0525e6c26b496492be9e2c865cab734f8)
    (cherry picked from commit 5e7a8c0869d9b4c32c34d70b48b0935721aa37fd)

 src/scripts/xzless.in | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 74d36a57c5fe65e5447f61a6ed0b57c6bb7c4f0f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-07 19:56:46 +0300

    liblzma: Set all values in lzma_lz_encoder to NULL after allocation.
    
    This is unlikely to be a bug in an existing application since it relies
    on calling lzma_filters_update() on an LZMA1 encoder in the first place.
    For instance, it does not affect xz because lzma_filters_update() can
    only be used when encoding to the .xz format.
    
    (based on commit 8191720eac950a5db89c4d33d6beea6316a49b19)

 src/liblzma/lz/lz_encoder.c | 1 +
 1 file changed, 1 insertion(+)

commit 176ae9073c1ca66669d2174aba58e51e94611f6e
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-12-16 20:28:21 +0800

    liblzma: Make parameter names in function definition match declaration.
    
    lzma_raw_encoder() and lzma_raw_encoder_init() used "options" as the
    parameter name instead of "filters" (used by the declaration). "filters"
    is more clear since the parameter represents the list of filters passed
    to the raw encoder, each of which contains filter options.
    
    (cherry picked from commit 27ab54af848ec4adc9c17362f6c64a42a7003df5)

 src/liblzma/common/filter_encoder.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 94c8503486ad394245f455924fa0bbb8539d8282
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-12-16 20:18:47 +0800

    liblzma: Improve lzma encoder init function consistency.
    
    lzma_encoder_init() did not check for NULL options, but
    lzma2_encoder_init() did. This is more of a code style improvement than
    anything else to help make lzma_encoder_init() and lzma2_encoder_init()
    more similar.
    
    (cherry picked from commit 019afd72e02339a6bf00c32bfb56f649c637dd6b)

 src/liblzma/lzma/lzma_encoder.c | 3 +++
 1 file changed, 3 insertions(+)

commit fa91e29dba074c263455ba45eeb31b21d9e54150
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-12-16 11:20:20 +0800

    Docs: Update repository URL in Changelog.
    
    (cherry picked from commit 6af9a4cbe5b677a2c48b009b370539ad30dc269a)

 ChangeLog | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6a7c0a9ab2e1544499b85d49c368dcc889d0f3a3
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-11-23 22:13:39 +0800

    xz: Use is_tty() in message.c.
    
    (cherry picked from commit 7dc466d62155cb7442aa5e10633e084ed384360d)

 src/xz/message.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9f00ad72f0127f83e83f44ba991ac3683c5bc860
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-11-23 22:04:35 +0800

    xz: Create separate is_tty() function.
    
    The new is_tty() will report if a file descriptor is a terminal or not.
    On POSIX systems, it is a wrapper around isatty(). However, the native
    Windows implementation of isatty() will return true for all character
    devices, not just terminals. So is_tty() has a special case for Windows
    so it can use alternative Windows API functions to determine if a file
    descriptor is a terminal.
    
    This fixes a bug with MSVC and MinGW-w64 builds that refused to read from
    or write to non-terminal character devices because xz thought it was a
    terminal. For instance:
    
        xz foo -c > /dev/null
    
    would fail because /dev/null was assumed to be a terminal.
    
    (cherry picked from commit 0ecfaa6df91f7c37510f370295f593b9c0b88b98)

 src/xz/util.c | 25 +++++++++++++++++++++++--
 src/xz/util.h | 14 ++++++++++++++
 2 files changed, 37 insertions(+), 2 deletions(-)

commit aa036419c28f2fa0140ff36ced0bafe4803007e0
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-11-17 20:04:58 +0800

    Tests: Fix typo in a comment.
    
    (cherry picked from commit 9b469da8f3415e12d650705c7a82256e62e7871b)

 tests/test_files.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9c47c0ea1892e10df69b1428f1f061775f1c970b
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-11-09 01:21:53 +0800

    liblzma: Add missing comments to lz_encoder.h.
    
    (cherry picked from commit 84196e8c094402cb71b669fb9e984c56ebabb145)

 src/liblzma/lz/lz_encoder.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 290c9542894743408f1859c56b1e84bd562c61ea
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-31 21:41:09 +0200

    liblzma: Fix compilation of fastpos_tablegen.c.
    
    The macro lzma_attr_visibility_hidden has to be defined to make
    fastpos.h usable. The visibility attribute is irrelevant to
    fastpos_tablegen.c so simply #define the macro to an empty value.
    
    fastpos_tablegen.c is never built by the included build systems
    and so the problem wasn't noticed earlier. It's just a standalone
    program for generating fastpos_table.c.
    
    Fixes: https://github.com/tukaani-project/xz/pull/69
    Thanks to GitHub user Jamaika1.
    
    (cherry picked from commit d90ed84db9770712e2421e170076b43bda9b64a7)

 src/liblzma/lzma/fastpos_tablegen.c | 2 ++
 1 file changed, 2 insertions(+)

commit d7bff1341e458da86d243980b4acaa8cc6ff162e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-22 17:59:11 +0300

    liblzma: Use lzma_always_inline in memcmplen.h.
    
    (cherry picked from commit 068ee436f4a8a706125ef43e8228b30001b1554e)

 src/liblzma/common/memcmplen.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit ce8d257cbbb56ce2cc4976e3c903227dcd4720db
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-30 17:43:03 +0200

    liblzma: #define lzma_always_inline in common.h.
    
    (cherry picked from commit 6cdf0a7b7974baf58c1fd20ec3278f3b84ae56e5)

 src/liblzma/common/common.h | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 47b3d2761e0d6c74b8205a80ead59d33e1d671ae
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-22 17:15:32 +0300

    liblzma: Use lzma_attr_visibility_hidden on private extern declarations.
    
    These variables are internal to liblzma and not exposed in the API.
    
    (cherry picked from commit 33daad3961a4f07f3902b40f13e823e6e43e85da)

 src/liblzma/check/check.h                | 7 +++++++
 src/liblzma/common/stream_flags_common.h | 3 +++
 src/liblzma/lz/lz_encoder_hash.h         | 1 +
 src/liblzma/lzma/fastpos.h               | 1 +
 src/liblzma/rangecoder/price.h           | 1 +
 5 files changed, 13 insertions(+)

commit 44c98e939997337e9469878dbae4f261497f793a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-22 17:08:39 +0300

    liblzma: #define lzma_attr_visibility_hidden in common.h.
    
    In ELF shared libs:
    
    -fvisibility=hidden affects definitions of symbols but not
    declarations.[*] This doesn't affect direct calls to functions
    inside liblzma as a linker can replace a call to lzma_foo@plt
    with a call directly to lzma_foo when -fvisibility=hidden is used.
    
    [*] It has to be like this because otherwise every installed
        header file would need to explictly set the symbol visibility
        to default.
    
    When accessing extern variables that aren't defined in the
    same translation unit, compiler assumes that the variable has
    the default visibility and thus indirection is needed. Unlike
    function calls, linker cannot optimize this.
    
    Using __attribute__((__visibility__("hidden"))) with the extern
    variable declarations tells the compiler that indirection isn't
    needed because the definition is in the same shared library.
    
    About 15+ years ago, someone told me that it would be good if
    the CRC tables would be defined in the same translation unit
    as the C code of the CRC functions. While I understood that it
    could help a tiny amount, I didn't want to change the code because
    a separate translation unit for the CRC tables was needed for the
    x86 assembly code anyway. But when visibility attributes are
    supported, simply marking the extern declaration with the
    hidden attribute will get identical result. When there are only
    a few affected variables, this is trivial to do. I wish I had
    understood this back then already.
    
    (cherry picked from commit 6961a5ac7df178bfc2b7a181c40575847bc3035f)

 src/liblzma/common/common.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 7834108dfef0fd800050be264005317a4020bb14
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-30 22:54:28 +0300

    liblzma: Refer to MinGW-w64 instead of MinGW in the API headers.
    
    MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project
    at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the
    most recent GCC package (released 2021-02-02). The project might
    still be alive but majority of people have switched to MinGW-w64.
    Thus it seems clearer to refer to MinGW-w64 in our API headers too.
    Building with MinGW is likely to still work but I haven't tested it
    in the recent years.
    
    (cherry picked from commit 5b9e16764905d06fa8e8339ba185ddfee304e5fb)

 src/liblzma/api/lzma.h         | 4 ++--
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit d9d08fb479ad5d431049ca162c0d52e6dd9ed82b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-27 00:58:17 +0300

    CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed.
    
    A CMake option LARGE_FILE_SUPPORT is created if and only if
    -D_FILE_OFFSET_BITS=64 affects sizeof(off_t).
    
    This is needed on many 32-bit platforms and even with 64-bit builds
    with MinGW-w64 to get support for files larger than 2 GiB.
    
    (cherry picked from commit 36fabdbe67c8a8fbdc3ac695a91fc443a1328cc4)

 CMakeLists.txt                        |  7 ++++-
 cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+), 1 deletion(-)

commit 3c026350e8d23ddaca35e34477746b428563b933
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-29 20:46:11 +0300

    liblzma: Add Cflags.private to liblzma.pc.in for MSYS2.
    
    It properly adds -DLZMA_API_STATIC when compiling code that
    will be linked against static liblzma. Having it there on
    systems other than Windows does no harm.
    
    See: https://www.msys2.org/docs/pkgconfig/
    (cherry picked from commit 4083c8e9501a48934a5fb563d2c3ce2ae143cd27)

 src/liblzma/liblzma.pc.in | 1 +
 1 file changed, 1 insertion(+)

commit 23f50b81084889262916bbaef684790339ce443d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-01 19:10:57 +0300

    CMake/Windows: Fix the import library filename.
    
    Both PREFIX and IMPORT_PERFIX have to be set to "" to get
    liblzma.dll and liblzma.dll.a.
    
    (cherry picked from commit da4d04e4d6e199d28b58bd2e0df4e120c52dd5d7)

 CMakeLists.txt | 1 +
 1 file changed, 1 insertion(+)

commit aa2723888aeca2d31749b45731d5f64def788455
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-07 16:21:15 +0300

    Build: Update visibility.m4 from Gnulib
    
    This fixes the syntax of the "serial" line and renames
    a temporary variable.

 m4/visibility.m4 | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

commit 5dca63f4d969d43f49dd183982145754481b7cdb
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-10-12 20:12:18 +0800

    Build: Update visibility.m4 from Gnulib.
    
    Updating from version 6 -> 8 from upstream. Declarations for variables
    and function bodies were added to avoid unnecessary failures with
    -Werror.
    
    (cherry picked from commit 4cc91ceb3992ef4f51302b56178c3b2c2aeaaaad)

 m4/visibility.m4 | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 23674a476bd50822e78375ac9b4753a1cec077cf
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-06 19:36:35 +0300

    Update THANKS.
    
    (cherry picked from commit 1824a6007cb1c8d5d7abcc7bf649148bc06fa72c)

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 4847e40d4b83cdb902a7d8f32019e962640b8825
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-27 19:54:35 +0300

    CMake: Fix Windows build with Clang/LLVM 17.
    
    llvm-windres 17.0.0 has more accurate emulation of GNU windres, so
    the hack for GNU windres must now be used with llvm-windres too.
    
    LLVM 16.0.6 has the old behavior and there likely won't be more
    16.x releases. So we can simply check for >= 17.0.0.
    
    The workaround must not be used with Clang that is acting in
    MSVC mode. This checks for the known environments that need
    the workaround instead of using "NOT MSVC".
    
    See also:
    https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47
    
    (cherry picked from commit 38171492ded6426ddf53d0c200fa8c93fcd02a60)

 CMakeLists.txt | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

commit f3449507ad05094a32d957ca4649954fb07d3a7a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-26 13:51:31 +0300

    Build: Fix underquoted AC_LANG_SOURCE.
    
    It made no practical difference in this case.
    
    (cherry picked from commit f3c32762ae309afa2fe330e7fb397acfdedc4d37)

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cf003b3ac27d0091eb3f97eae1ab9dc56904251b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-24 16:32:32 +0300

    sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO.
    
    (cherry picked from commit 4ae13cfe0dedb8ddc3cf9ded8cd1ac09361b3bd1)

 src/common/sysdefs.h | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit 1456a9d94334226be115eb9926d79b98bd69770d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-22 02:33:29 +0300

    xz: Windows: Don't (de)compress to special files like "con" or "nul".
    
    Before this commit, the following writes "foo" to the
    console and deletes the input file:
    
        echo foo | xz > con_xz
        xz --suffix=_xz --decompress con_xz
    
    It cannot happen without --suffix because names like con.xz
    are also special and so attempting to decompress con.xz
    (or compress con to con.xz) will already fail when opening
    the input file.
    
    Similar thing is possible when compressing. The following
    writes to "nul" and the input file "n" is deleted.
    
        echo foo | xz > n
        xz --suffix=ul n
    
    Now xz checks if the destination is a special file before
    continuing. DOS/DJGPP version had a check for this but
    Windows (and OS/2) didn't.
    
    (cherry picked from commit 660c8c29e57d30dbd5009ef1f0ec1bbe195ccef6)

 src/xz/file_io.c | 35 ++++++++++++++++++++++++++++-------
 1 file changed, 28 insertions(+), 7 deletions(-)

commit 3d70e66ecb9a3d9bce9a2fad3df746ab861dc94a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-12 21:12:34 +0300

    CMake: Bump maximum policy version to 3.27.
    
    There are several new policies. CMP0149 may affect the Windows SDK
    version that CMake will choose by default. The new behavior is more
    predictable, always choosing the latest SDK version by default.
    
    The other new policies shouldn't affect this package.
    
    (cherry picked from commit 5be6275f19784cdd5a954f0188045c8ff4934d54)

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a3de1b841e7ee19d9f51f450b45b7dde82a1e03e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-11 18:47:26 +0300

    liblzma: Move a few __attribute__ uses in function declarations.
    
    The API headers have many attributes but these were left
    as is for now.
    
    (cherry picked from commit e3478ae4f36cd06522a2fef023860893f068434d)

 src/liblzma/common/common.c    | 6 ++++--
 src/liblzma/common/common.h    | 8 ++++----
 src/liblzma/common/memcmplen.h | 3 ++-
 3 files changed, 10 insertions(+), 7 deletions(-)

commit 737318447a25c2fddacef2c20ecc883c6186e0c6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-11 19:03:35 +0300

    xz, xzdec, lzmainfo: Use tuklib_attr_noreturn.
    
    For compatibility with C23's [[noreturn]], tuklib_attr_noreturn
    must be at the beginning of declaration (before "extern" or
    "static", and even before any GNU C's __attribute__).
    
    This commit also moves all other function attributes to
    the beginning of function declarations. "extern" is kept
    at the beginning of a line so the attributes are listed on
    separate lines before "extern" or "static".
    
    (cherry picked from commit b71b8922ef3971e5ccffd1e213888d44abe21d11)

 src/lzmainfo/lzmainfo.c |  6 ++++--
 src/xz/coder.c          |  3 ++-
 src/xz/hardware.h       |  3 ++-
 src/xz/message.h        | 30 +++++++++++++++++-------------
 src/xz/options.c        |  3 ++-
 src/xz/util.h           |  8 ++++----
 src/xzdec/xzdec.c       |  9 ++++++---
 7 files changed, 37 insertions(+), 25 deletions(-)

commit 015e62b18d38cd3a67fea631375ebbab610274fe
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-11 18:53:31 +0300

    Remove incorrect uses of __attribute__((__malloc__)).
    
    xrealloc() is obviously incorrect, modern GCC docs even
    mention realloc() as an example where this attribute
    cannot be used.
    
    liblzma's lzma_alloc() and lzma_alloc_zero() would be
    correct uses most of the time but custom allocators
    may use a memory pool or otherwise hold the pointer
    so aliasing issues could happen in theory.
    
    The xstrdup() case likely was correct but I removed it anyway.
    Now there are no __malloc__ attributes left in the code.
    The allocations aren't in hot paths so this should make
    no practical difference.
    
    (cherry picked from commit 359e5c6cb128dab64ea6070d21d1c240f96cea6b)

 src/liblzma/common/common.c | 4 ++--
 src/liblzma/common/common.h | 4 ++--
 src/xz/util.h               | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

commit ba791978d5f3d86d22b8f75c9e047fbd5794ed08
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-09-12 22:36:12 +0800

    CMake: Fix time.h checks not running on second CMake run.
    
    If CMake was configured more than once, HAVE_CLOCK_GETTIME and
    HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check
    for librt being needed to provide HAVE_CLOCK_GETTIME was also
    simplified.
    
    (cherry picked from commit a70e96d2da761b8b3a77bf14e08002d871e5950b)

 CMakeLists.txt | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit df8daea2825d1857c82bf96a8772b792475af9fb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-08-31 18:14:43 +0300

    xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX.
    
    SSIZE_MAX isn't readily available on MSVC. Removing it means
    that there is one thing less to worry when porting to MSVC.
    
    (cherry picked from commit ef71f83973a20cc28a3221f85681922026ea33f5)

 src/xz/file_io.c | 5 ++---
 src/xz/file_io.h | 4 ++--
 2 files changed, 4 insertions(+), 5 deletions(-)

commit f2aea3d4546152699fa5855bc1ddd6001ded5c64
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-08-28 21:52:54 +0800

    Update THANKS.
    
    (cherry picked from commit 4b23b84b89e39a5117e16f66c3b01db4f08ed3e7)

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 519896fc94ed2a1518c9083db06575f1813e94ce
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-08-28 21:50:16 +0800

    liblzma: Update assert in vli_ceil4().
    
    The argument to vli_ceil4() should always guarantee the return value
    is also a valid lzma_vli. Thus the highest three valid lzma_vli values
    are invalid arguments. All uses of the function ensure this so the
    assert is updated to match this.
    
    (cherry picked from commit 773f1e8622cb1465df528cb16a749517650acd93)

 src/liblzma/common/index.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 591ac56d42dfe543bdf8290bc361d800f0209bc5
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-08-28 21:31:25 +0800

    liblzma: Add overflow check for Unpadded size in lzma_index_append().
    
    This was not a security bug since there was no path to overflow
    UINT64_MAX in lzma_index_append() or when it calls index_file_size().
    The bug was discovered by a failing assert() in vli_ceil4() when called
    from index_file_size() when unpadded_sum (the sum of the compressed size
    of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX.
    
    Previously, the unpadded_size parameter was checked to be not greater
    than UNPADDED_SIZE_MAX, but no check was done once compressed_base was
    added.
    
    This could not have caused an integer overflow in index_file_size() when
    called by lzma_index_append(). The calculation for file_size breaks down
    into the sum of:
    
    - Compressed base from all previous Streams
    - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and
      footer)
    - stream_padding (can be set by lzma_index_stream_padding())
    - Compressed base from the current Stream
    - Unpadded size (parameter to lzma_index_append())
    
    The sum of everything except for Unpadded size must be less than
    LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions
    that can set these values including lzma_index_stream_padding(),
    lzma_index_append(), and lzma_index_cat(). The maximum value for
    Unpadded size is enforced by lzma_index_append() to be less than or
    equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since
    LZMA_VLI_MAX is half of UINT64_MAX.
    
    Thanks to Joona Kannisto for reporting this.
    
    (cherry picked from commit 68bda971bb8b666a009331455fcedb4e18d837a4)

 src/liblzma/common/index.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit ec0d5c99c3ff785dd9d555fb1effe6ef7ad284da
Author: Jamaika1 <lukaszcz18@wp.pl>
Date:   2023-08-08 14:07:59 +0200

    mythread.h: Fix typo error in Vista threads mythread_once().
    
    The "once_" variable was accidentally referred to as just "once". This
    prevented building with Vista threads when
    HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined.
    
    (cherry picked from commit c0c0cd4a483a672b66a13761583bc4f84d86d501)

 src/common/mythread.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f1123eefe16401614430b827913554496ebb17eb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-08-02 15:19:43 +0300

    build-aux/manconv.sh: Fix US-ASCII and UTF-8 output.
    
    groff defaults to SGR escapes. Using -P-c passes -c to grotty
    which restores the old behavior. Perhaps there is a better way to
    get pure plain text output but this works for now.
    
    (cherry picked from commit 6a1093c0004c42eeaef312456c295671496dd67a)

 build-aux/manconv.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9d4bf2d06f6a85fd107f2d58c744fe4880dd4b02
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-07-24 21:43:44 +0800

    liblzma: Prevent an empty translation unit in Windows builds.
    
    To workaround Automake lacking Windows resource compiler support, an
    empty source file is compiled to overwrite the resource files for static
    library builds. Translation units without an external declaration are
    not allowed by the C standard and result in a warning when used with
    -Wempty-translation-unit (Clang) or -pedantic (GCC).
    
    (cherry picked from commit 19899340cf74d98304f9f5b726c72e85c7017d72)

 src/liblzma/Makefile.am | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 5a87d91321b73ccb60381c808da3cdc1554ae3ca
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-07-18 13:57:54 +0300

    liblzma: Tweak #if condition in memcmplen.h.
    
    Maybe ICC always #defines _MSC_VER on Windows but now
    it's very clear which code will get used.
    
    (cherry picked from commit b406828a6dfd3caa4f77efe3ff3e3eea263eee62)

 src/liblzma/common/memcmplen.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0c53f52657ca7c0bab66a2694ecbd21721b3ee6d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-07-18 13:49:43 +0300

    liblzma: Omit unnecessary parenthesis in a preprocessor directive.
    
    (cherry picked from commit ef4a07ad9434f81417395f6fe0bb331e027a703b)

 src/liblzma/common/memcmplen.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit eede1df4afdbed8e5dde2ebbf699f7e23f0dd594
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-06-28 20:22:38 +0800

    liblzma: Prevent warning for MSYS2 Windows build.
    
    In lzma_memcmplen(), the <intrin.h> header file is only included if
    _MSC_VER and _M_X64 are both defined but _BitScanForward64() was
    previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but
    not _MSC_VER so _BitScanForward64() was used without including
    <intrin.h>.
    
    Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as
    expected.
    
    (cherry picked from commit 64ee0caaea06654b28afaee850fb187a11bf9cb2)

 src/liblzma/common/memcmplen.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 5f9bf810441d37a1ab3626a67c9369ea27243915
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-06-28 20:31:11 +0800

    liblzma: Prevent uninitialzed warning in mt stream encoder.
    
    This change only impacts the compiler warning since it was impossible
    for the wait_abs struct in stream_encode_mt() to be used before it was
    initialized since mythread_condtime_set() will always be called before
    mythread_cond_timedwait().
    
    Since the mythread.h code is different between the POSIX and
    Windows versions, this warning was only present on Windows builds.
    
    Thanks to Arthur S for reporting the warning and providing an initial
    patch.
    
    (cherry picked from commit 1155471651ad456c5f90aee6435931fae65682bf)

 src/liblzma/common/stream_encoder_mt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6174ac8e60a5a9d202cc302917f007e07b38cf8b
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-06-07 00:10:38 +0800

    Update THANKS.
    
    (cherry picked from commit 62dd1c9bf0c66679ceeebc8b99bca136ca43bcb9)

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit b276ef1f490e6ad53f880db8e12e5406538e1387
Author: Benjamin Buch <bebuch@users.noreply.github.com>
Date:   2023-06-06 15:32:45 +0200

    CMake: Protects against double find_package
    
    Boost iostream uses `find_package` in quiet mode and then again uses
    `find_package` with required. This second call triggers a
    `add_library cannot create imported target "LibLZMA::LibLZMA"
    because another target with the same name already exists.`
    
    This can simply be fixed by skipping the alias part on secondary
    `find_package` runs.
    
    (cherry picked from commit d04eb78ab3892d3678c180437dd66379efa051fd)

 CMakeLists.txt | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit 774145adfda4c33c07ef6543c081230edf63ba04
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-05-04 19:48:19 +0800

    Bump version and soname for 5.2.12.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit dbb481270a78c99514f92bb3e7e09ed9ce9df266
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-05-02 20:39:37 +0800

    Add NEWS for 5.2.12.

 NEWS | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 46b19ec4ae06116875dc3b5243ec44233a497fcf
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-05-04 20:38:52 +0800

    Translations: Update the Croatian translation.

 po/hr.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 809a2fd6984c6789b4db17cfb6b206d96bff9d0c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-05-03 22:46:42 +0300

    tuklib_integer.h: Fix a recent copypaste error in Clang detection.
    
    Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7.
    Also, this has >= instead of == since ints larger than 32 bits would
    work too even if not relevant in practice.

 src/common/tuklib_integer.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit fbecaa2eb426f06b6680c2bf516df68367710e7c
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-04-20 20:15:00 +0800

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit b02e74eb7387fe2bc91b3481d99e2755329efc05
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-04-19 22:22:16 +0800

    Windows: Include <intrin.h> when needed.
    
    Legacy Windows did not need to #include <intrin.h> to use the MSVC
    intrinsics. Newer versions likely just issue a warning, but the MSVC
    documentation says to include the header file for the intrinsics we use.
    
    GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are
    needed in tuklib_integer.h to only include <intrin.h> when it will is
    actually needed.

 src/common/tuklib_integer.h    |  6 ++++++
 src/liblzma/common/memcmplen.h | 10 ++++++++++
 2 files changed, 16 insertions(+)

commit 8efb6ea63ba4353104add3cbf9fb76203142ea4c
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-04-19 21:59:03 +0800

    tuklib_integer: Use __builtin_clz() with Clang.
    
    Clang has support for __builtin_clz(), but previously Clang would
    fallback to either the MSVC intrinsic or the regular C code. This was
    discovered due to a bug where a new version of Clang required the
    <intrin.h> header file in order to use the MSVC intrinsics.
    
    Thanks to Anton Kochkov for notifying us about the bug.

 src/common/tuklib_integer.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 3bd906f1f3d162ed8493c4b494ccbafdb613a34f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-04-14 18:42:33 +0300

    liblzma: Update project maintainers in lzma.h.
    
    AUTHORS was updated earlier, lzma.h was simply forgotten.

 src/liblzma/api/lzma.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0ab5527c469dd632a2a78f12675cad3b980e2e44
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-04-13 20:45:19 +0800

    liblzma: Cleans up old commented out code.

 src/liblzma/common/alone_encoder.c | 11 -----------
 1 file changed, 11 deletions(-)

commit 275e36013d091a9cb68201d908bbea765c5a8cb1
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-03-22 15:42:04 +0800

    Build: Removes redundant check for LZMA1 filter support.

 src/liblzma/lzma/Makefile.inc | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit a2e129a81fe95261342b6f76a3c2474b95e4cf82
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-03-21 14:07:51 +0200

    Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69.
    
    It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC
    but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler.

 configure.ac | 3 +++
 1 file changed, 3 insertions(+)

commit 260683a6e2d0525640729b3329b0c0009cda7122
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-03-21 14:04:37 +0200

    Build: configure.ac: Use AS_IF and AS_CASE where required.
    
    This makes no functional difference in the generated configure
    (at least with the Autotools versions I have installed) but this
    change might prevent future bugs like the one that was just
    fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294.

 configure.ac | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit edcde3e3871ae5ac4ed615c324b81d81d35973e0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-03-21 13:12:03 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit dcd6882cb91fb18fd5e3b51a1ca4ec818695f451
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-03-21 13:11:49 +0200

    Build: Fix --disable-threads breaking the building of shared libs.
    
    This is broken in the releases 5.2.6 to 5.4.2. A workaround
    for these releases is to pass EGREP='grep -E' as an argument
    to configure in addition to --disable-threads.
    
    The problem appeared when m4/ax_pthread.m4 was updated in
    the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which
    introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls
    AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP
    but this was only executed if POSIX threads were enabled.
    Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf
    omits it as AC_PROG_EGREP has already been required earlier.
    Thus, if not using POSIX threads, the shell variable EGREP
    would be undefined in the Libtool code in configure.
    
    ax_pthread.m4 is fine. The bug was in configure.ac which called
    AX_PTHREAD conditionally in an incorrect way. Using AS_CASE
    ensures that all AC_REQUIREs get always run.
    
    Thanks to Frank Busse for reporting the bug.
    Fixes: https://github.com/tukaani-project/xz/issues/45

 configure.ac | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 3e206e5c436d35ac8942357c1867cf8253dad862
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-03-18 22:25:59 +0800

    Bump version and soname for 5.2.11.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 05b0a071b63e024029f8ae87e27a1c4f4e0d09bc
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-03-18 22:16:09 +0800

    Add NEWS for 5.2.11.

 NEWS | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

commit 84b8cd3ffc6a9eb4c48b3d81a7bc49ec9af06bb2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-03-18 16:00:54 +0200

    Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3.

 COPYING.GPLv3 | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 090ea9ddd34f9d110bff7450586b2c93d78f3af1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-03-18 15:51:57 +0200

    Change a few HTTP URLs to HTTPS.
    
    The xz man page timestamp was intentionally left unchanged.

 INSTALL                    |  2 +-
 README                     |  8 ++++----
 configure.ac               |  2 +-
 dos/INSTALL.txt            |  4 ++--
 src/liblzma/api/lzma.h     |  8 ++++----
 src/liblzma/check/sha256.c |  2 +-
 src/xz/xz.1                |  2 +-
 windows/INSTALL-MinGW.txt  | 10 +++++-----
 8 files changed, 19 insertions(+), 19 deletions(-)

commit 01f1da25e5b4b851f850eb3263e184a57cefe923
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-02-27 18:38:35 +0200

    CMake: Require that the C compiler supports C99 or a newer standard.
    
    Thanks to autoantwort for reporting the issue and suggesting
    a different patch:
    https://github.com/tukaani-project/xz/pull/42

 CMakeLists.txt | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 2333bb5454631226393d82b336340ada0eaa7ed7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-02-23 20:46:16 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 09363bea466ec0bf93f8a9d55609296bdd345780
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-02-21 22:57:10 +0200

    liblzma: Avoid null pointer + 0 (undefined behavior in C).
    
    In the C99 and C17 standards, section 6.5.6 paragraph 8 means that
    adding 0 to a null pointer is undefined behavior. As of writing,
    "clang -fsanitize=undefined" (Clang 15) diagnoses this. However,
    I'm not aware of any compiler that would take advantage of this
    when optimizing (Clang 15 included). It's good to avoid this anyway
    since compilers might some day infer that pointer arithmetic implies
    that the pointer is not NULL. That is, the following foo() would then
    unconditionally return 0, even for foo(NULL, 0):
    
        void bar(char *a, char *b);
    
        int foo(char *a, size_t n)
        {
            bar(a, a + n);
            return a == NULL;
        }
    
    In contrast to C, C++ explicitly allows null pointer + 0. So if
    the above is compiled as C++ then there is no undefined behavior
    in the foo(NULL, 0) call.
    
    To me it seems that changing the C standard would be the sane
    thing to do (just add one sentence) as it would ensure that a huge
    amount of old code won't break in the future. Based on web searches
    it seems that a large number of codebases (where null pointer + 0
    occurs) are being fixed instead to be future-proof in case compilers
    will some day optimize based on it (like making the above foo(NULL, 0)
    return 0) which in the worst case will cause security bugs.
    
    Some projects don't plan to change it. For example, gnulib and thus
    many GNU tools currently require that null pointer + 0 is defined:
    
        https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html
    
        https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html
    
    In XZ Utils null pointer + 0 issue should be fixed after this
    commit. This adds a few if-statements and thus branches to avoid
    null pointer + 0. These check for size > 0 instead of ptr != NULL
    because this way bugs where size > 0 && ptr == NULL will likely
    get caught quickly. None of them are in hot spots so it shouldn't
    matter for performance.
    
    A little less readable version would be replacing
    
        ptr + offset
    
    with
    
        offset != 0 ? ptr + offset : ptr
    
    or creating a macro for it:
    
        #define my_ptr_add(ptr, offset) \
                ((offset) != 0 ? ((ptr) + (offset)) : (ptr))
    
    Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1,
    Clang >= 7, and Clang-based ICX to optimize it to the very same code
    as ptr + offset. That is, it won't create a branch. So for hot code
    this could be a good solution to avoid null pointer + 0. Unfortunately
    other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a
    branch from my_ptr_add().
    
    Thanks to Marcin Kowalczyk for reporting the problem:
    https://github.com/tukaani-project/xz/issues/36

 src/liblzma/common/block_decoder.c |  5 ++++-
 src/liblzma/common/block_encoder.c |  7 +++++--
 src/liblzma/common/common.c        | 20 ++++++++++++++------
 src/liblzma/common/index_decoder.c | 13 ++++++++++---
 src/liblzma/common/index_encoder.c | 11 +++++++++--
 src/liblzma/common/index_hash.c    | 13 ++++++++++---
 src/liblzma/delta/delta_decoder.c  |  7 ++++++-
 src/liblzma/delta/delta_encoder.c  | 12 ++++++++++--
 src/liblzma/simple/simple_coder.c  |  6 ++++--
 9 files changed, 72 insertions(+), 22 deletions(-)

commit d9445b5b2da0e666e9dfd92b3120d769de7bd9d1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-02-17 20:56:49 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 3cc8ece2dcd7bd60835b4a7b0619254d9f75e164
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-02-17 20:48:28 +0200

    Build: Use only the generic symbol versioning on MicroBlaze.
    
    On MicroBlaze, GCC 12 is broken in sense that
    __has_attribute(__symver__) returns true but it still doesn't
    support the __symver__ attribute even though the platform is ELF
    and symbol versioning is supported if using the traditional
    __asm__(".symver ...") method. Avoiding the traditional method is
    good because it breaks LTO (-flto) builds with GCC.
    
    See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
    
    For now the only extra symbols in liblzma_linux.map are the
    compatibility symbols with the patch that spread from RHEL/CentOS 7.
    These require the use of __symver__ attribute or __asm__(".symver ...")
    in the C code. Compatibility with the patch from CentOS 7 doesn't
    seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze
    instead. It doesn't require anything special in the C code and thus
    no LTO issues either.
    
    An alternative would be to detect support for __symver__
    attribute in configure.ac and CMakeLists.txt and fall back
    to __asm__(".symver ...") but then LTO would be silently broken
    on MicroBlaze. It sounds likely that MicroBlaze is a special
    case so let's treat it as a such because that is simpler. If
    a similar issue exists on some other platform too then hopefully
    someone will report it and this can be reconsidered.
    
    (This doesn't do the same fix in CMakeLists.txt. Perhaps it should
    but perhaps CMake build of liblzma doesn't matter much on MicroBlaze.
    The problem breaks the build so it's easy to notice and can be fixed
    later.)
    
    Thanks to Vincent Fazio for reporting the problem and proposing
    a patch (in the end that solution wasn't used):
    https://github.com/tukaani-project/xz/pull/32

 configure.ac | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 050c6dbf96b15dc3b546589e554e0abc83e19816
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-01-21 21:32:03 +0800

    liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR.
    
    LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put
    documentation after a member.

 src/liblzma/api/lzma/base.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8daaac8e10f68289b44f68d0925e169176ce8a5c
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-01-19 20:35:09 +0800

    tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64.
    
    tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64
    to retrieve a function address. The proper way to do this is to cast the
    return value to the type of function pointer retrieved. Unfortunately,
    this causes a cast-function-type warning, so the best solution is to
    simply ignore the warning.

 src/common/tuklib_physmem.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit 6c9a2c2e465a80aa079cf3c8b3fdd382b396d21f
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-01-16 21:35:45 +0800

    xz: Add missing comment for coder_set_compression_settings()

 src/xz/coder.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit ccbb991efab1b03783fa00bc7bb2ab14180674f8
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-01-16 20:55:10 +0800

    xz: Do not set compression settings with raw format in list mode.
    
    Calling coder_set_compression_settings() in list mode with verbose mode
    on caused the filter chain and memory requirements to print. This was
    unnecessary since the command results in an error and not consistent
    with other formats like lzma and alone.

 src/xz/args.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 6df383be4a22963e87ee06f9ac630d4c0ed927c9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-01-12 06:05:58 +0200

    xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1).
    
    It makes no difference here as the return value fits into an int
    too and it then gets ignored but this looks better.

 src/xz/file_io.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2ca95b7cfea589fa7c79c38b99deafc44d851803
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-01-12 03:19:59 +0200

    liblzma: Silence warnings from clang -Wconditional-uninitialized.
    
    This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0.
    The actual initialization of the variables is done inside
    mythread_sync() macro. Clang doesn't seem to see that
    the initialization code inside the macro is always executed.

 src/liblzma/common/stream_encoder_mt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f900dd937f35f88b80536a60e8040664ba53dc1f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-01-12 03:11:40 +0200

    Fix warnings from clang -Wdocumentation.

 src/liblzma/check/check.h      | 4 ----
 src/liblzma/lz/lz_encoder_mf.c | 4 ++--
 src/xz/options.c               | 4 ++--
 3 files changed, 4 insertions(+), 8 deletions(-)

commit 3e2b345cfd28bdf0aabbd326254bc7246dd1125e
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-01-11 22:46:48 +0800

    xz: Fix warning -Wformat-nonliteral on clang in message.c.
    
    clang and gcc differ in how they handle -Wformat-nonliteral. gcc will
    allow a non-literal format string as long as the function takes its
    format arguments as a va_list.

 src/xz/message.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit f2192d13b5723e4869bb7f1b18c4b21cd72975af
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-01-10 08:50:26 +0200

    CMake/Windows: Add a workaround for windres from GNU binutils.
    
    This is combined from the following commits in the master branch:
    443dfebced041adc88f10d824188eeef5b5821a9
    6b117d3b1fe91eb26d533ab16a2e552f84148d47
    5e34774c31d1b7509b5cb77a3be9973adec59ea0
    
    Thanks to Iouri Kharon for the bug report, the original patch,
    and testing.

 CMakeLists.txt | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

commit 35167d71f8bdc72e68296aa808f80d2113eb5bcd
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-01-07 21:57:11 +0200

    CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.
    
    The changes listed on cmake-policies(7) for versions 3.17 to 3.25
    shouldn't affect this project.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f8cae7cee0c03f72ac7ada7677e9c65682955e84
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-01-07 19:50:35 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 7c337404bf8eedf574b30322524063048873df96
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-01-09 11:27:24 +0200

    CMake: Fix a copypaste error in xzdec Windows resource file handling.
    
    It was my mistake. Thanks to Iouri Kharon for the bug report.

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 4dbdbd02d2a09e7e8c530d46de3d31e31c8f09a7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-01-07 19:50:03 +0200

    CMake/Windows: Add resource files to xz.exe and xzdec.exe.
    
    The command line tools cannot be built with MSVC for now but
    they can be built with MinGW-w64.
    
    Thanks to Iouri Kharon for the bug report and the original patch.

 CMakeLists.txt | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 2155fef5285bd524a9b8476dd7d146d845c846a9
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-12-22 23:14:53 +0800

    liblzma: Update documentation for lzma_filter_encoder.

 src/liblzma/common/filter_encoder.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 7067c1ca6534bfb4a5f0293109e945d8316ebbf5
Author: Jia Cheong Tan <jiat0218@gmail.com>
Date:   2022-12-20 22:05:21 +0800

    Doxygen: Update .gitignore for generating docs for in source build.
    
    In source builds are not recommended, but we should still ignore
    the generated artifacts.

 .gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit f62e5aae51c6dcb03ea675f67f8a0cf72ea8d259
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-12-16 20:58:55 +0800

    CMake: Update .gitignore for CMake artifacts from in source build.
    
    In source builds are not recommended, but we can make it easier
    by ignoring the generated artifacts from CMake.

 .gitignore | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit f7c2cc55618b9af3318f0c908cf8db0df1e28e7c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-12-13 13:03:20 +0200

    Bump version and soname for 5.2.10.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit e4e5d5bbb1b4965d9874b558520c48c6eaefdfcd
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-12-13 13:02:15 +0200

    Add NEWS for 5.2.10.

 NEWS | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit e207267c4b735a31dbf8495b32f76113a188bc98
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-12-13 12:30:45 +0200

    Tests: Fix a typo in tests/files/README.

 tests/files/README | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 90f8e0828b95bb91b07eb29a64c4cabb182e7c89
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-12-12 19:09:20 +0200

    Update AUTHORS.

 AUTHORS | 4 ++++
 1 file changed, 4 insertions(+)

commit 59a17888e96d748a119558e793ebb60d7f08a857
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-12-08 19:24:22 +0200

    xz: Make args_info.files_name a const pointer.

 src/xz/args.c | 2 +-
 src/xz/args.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 4af80d4f5131bcdc827020ddc64172531f365bd7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-12-08 19:18:16 +0200

    xz: Don't modify argv[].
    
    The code that parses --memlimit options and --block-list modified
    the argv[] when parsing the option string from optarg. This was
    visible in "ps auxf" and such and could be confusing. I didn't
    understand it back in the day when I wrote that code. Now a copy
    is allocated when modifiable strings are needed.

 src/xz/args.c | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

commit 7623b22d1d59c78033425a2448613837bcd203a2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-12-08 17:30:09 +0200

    liblzma: Check for unexpected NULL pointers in block_header_decode().
    
    The API docs gave an impression that such checks are done
    but they actually weren't done. In practice it made little
    difference since the calling code has a bug if these are NULL.
    
    Thanks to Jia Tan for the original patch that checked for
    block->filters == NULL.

 src/liblzma/common/block_header_decoder.c | 4 ++++
 1 file changed, 4 insertions(+)

commit ef315163efdf82e327608ae9b8df1bfea42eb6b5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-12-01 20:04:17 +0200

    liblzma: Use __has_attribute(__symver__) to fix Clang detection.
    
    If someone sets up Clang to define __GNUC__ to 10 or greater
    then symvers broke. __has_attribute is supported by such GCC
    and Clang versions that don't support __symver__ so this should
    be much better and simpler way to detect if __symver__ is
    actually supported.
    
    Thanks to Tomasz Gajc for the bug report.

 src/liblzma/common/common.h | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

commit 7e86a7632c98657be3967a3fe5304d696574aa23
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-12-12 15:45:04 +0200

    Update THANKS (sync all from master).

 THANKS | 8 ++++++++
 1 file changed, 8 insertions(+)

commit d8a898eb9974683bc725c49ec76722f9a8758f48
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-30 18:33:05 +0200

    Bump version and soname for 5.2.9.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit efd4430e21f798e198a6ee8a368a79065139eb54
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-30 18:31:16 +0200

    Add NEWS for 5.2.9.

 NEWS | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

commit 2dc1bc97a562ef4d4134c8df4d344d0f403428b8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-30 18:08:34 +0200

    Change the bug report address.
    
    It forwards to me and Jia Tan.
    
    Also update the IRC reference in README as #tukaani was moved
    to Libera Chat long ago.

 CMakeLists.txt             |  2 +-
 README                     | 11 +++++------
 configure.ac               |  2 +-
 dos/config.h               |  2 +-
 windows/README-Windows.txt |  2 +-
 5 files changed, 9 insertions(+), 10 deletions(-)

commit fb13a234d9def06cbe2b8ed88ece7db0c6d5c39f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-30 17:38:32 +0200

    Update to HTTPS URLs in AUTHORS.

 AUTHORS | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 841448e36d4455d39ff1e1115843360934e7a507
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-27 01:03:16 +0200

    liblzma: Remove two FIXME comments.

 src/liblzma/common/filter_encoder.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b61da00c7f535bd48930a878efdf6843d804983e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-24 14:52:44 +0200

    Build: Don't put GNU/Linux-specific symbol versions into static liblzma.
    
    It not only makes no sense to put symbol versions into a static library
    but it can also cause breakage.
    
    By default Libtool #defines PIC if building a shared library and
    doesn't define it for static libraries. This is documented in the
    Libtool manual. It can be overriden using --with-pic or --without-pic.
    configure.ac detects if --with-pic or --without-pic is used and then
    gives an error if neither --disable-shared nor --disable-static was
    used at the same time. Thus, in normal situations it works to build
    both shared and static library at the same time on GNU/Linux,
    only --with-pic or --without-pic requires that only one type of
    library is built.
    
    Thanks to John Paul Adrian Glaubitz from Debian for reporting
    the problem that occurred on ia64:
    https://www.mail-archive.com/xz-devel@tukaani.org/msg00610.html

 CMakeLists.txt              |   5 +-
 configure.ac                | 143 +++++++++++++++++++++++++++++---------------
 src/liblzma/common/common.h |  12 ++++
 3 files changed, 111 insertions(+), 49 deletions(-)

commit 6c29793b3cac292b25801d011db6d8ccade50396
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-24 00:02:31 +0200

    CMake: Don't use symbol versioning with static library.

 CMakeLists.txt | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 872623def5e3e5c7f9f14f366d908f3e012d1007
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-24 01:26:37 +0200

    liblzma: Fix another invalid free() after memory allocation failure.
    
    This time it can happen when lzma_stream_encoder_mt() is used
    to reinitialize an existing multi-threaded Stream encoder
    and one of 1-4 tiny allocations in lzma_filters_copy() fail.
    
    It's very similar to the previous bug
    10430fbf3820dafd4eafd38ec8be161a6978ed2b, happening with
    an array of lzma_filter structures whose old options are freed
    but the replacement never arrives due to a memory allocation
    failure in lzma_filters_copy().

 src/liblzma/common/stream_encoder_mt.c | 4 ++++
 1 file changed, 4 insertions(+)

commit b0f8d9293ca5a0a56964695a59a098c9d1e82b99
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-05-05 20:53:42 +0800

    liblzma: Add support for LZMA_SYNC_FLUSH in the Block encoder.
    
    The documentation mentions that lzma_block_encoder() supports
    LZMA_SYNC_FLUSH but it was never added to supported_actions[]
    in the internal structure. Because of this, LZMA_SYNC_FLUSH could
    not be used with the Block encoder unless it was the next coder
    after something like stream_encoder() or stream_encoder_mt().

 src/liblzma/common/block_encoder.c | 1 +
 1 file changed, 1 insertion(+)

commit 6997e0b5e2339025646cfaec13a3317fb340729b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-23 21:55:22 +0200

    liblzma: Add lzma_attr_warn_unused_result to lzma_filters_copy().

 src/liblzma/api/lzma/filter.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit f94a3e34603c56c55777056bb5412bfd0e948f0b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-23 21:26:21 +0200

    liblzma: Fix invalid free() after memory allocation failure.
    
    The bug was in the single-threaded .xz Stream encoder
    in the code that is used for both re-initialization and for
    lzma_filters_update(). To trigger it, an application had
    to either re-initialize an existing encoder instance with
    lzma_stream_encoder() or use lzma_filters_update(), and
    then one of the 1-4 tiny allocations in lzma_filters_copy()
    (called from stream_encoder_update()) must fail. An error
    was correctly reported but the encoder state was corrupted.
    
    This is related to the recent fix in
    f8ee61e74eb40600445fdb601c374d582e1e9c8a which is good but
    it wasn't enough to fix the main problem in stream_encoder.c.

 src/liblzma/common/stream_encoder.c | 39 +++++++++++++++++++++++++++++--------
 1 file changed, 31 insertions(+), 8 deletions(-)

commit 8309385b444bce23e56256e21fb008a170434008
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-22 16:37:15 +0200

    liblzma: Fix language in a comment.

 src/liblzma/common/stream_encoder.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5fecba6022cbbeed8103b49d79b2fb36086be72d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-22 11:20:17 +0200

    liblzma: Fix infinite loop in LZMA encoder init with dict_size >= 2 GiB.
    
    The encoder doesn't support dictionary sizes larger than 1536 MiB.
    This is validated, for example, when calculating the memory usage
    via lzma_raw_encoder_memusage(). It is also enforced by the LZ
    part of the encoder initialization. However, LZMA encoder with
    LZMA_MODE_NORMAL did an unsafe calculation with dict_size before
    such validation and that results in an infinite loop if dict_size
    was 2 << 30 or greater.

 src/liblzma/lzma/lzma_encoder.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

commit 1946b2b141d8b12c9325ba48d3a04ad8e8206750
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-21 13:02:33 +0200

    liblzma: Fix two Doxygen commands in the API headers.
    
    These were caught by clang -Wdocumentation.

 src/liblzma/api/lzma/hardware.h   | 2 +-
 src/liblzma/api/lzma/index_hash.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 5476089d9c42b9b04e92b80e1800b384a98265cb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-13 19:58:47 +0200

    Bump version and soname for 5.2.8.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit f9994f395d04d37b75e879f90397258b86b466cc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-13 19:57:26 +0200

    Add NEWS for 5.2.8.

 NEWS | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)

commit cdf14b28993ef2f3168821372467e3aa7cf1e973
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-11 17:16:03 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 454f567e58bbadea5cff4f31ef450c1305e9853d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-11 17:15:25 +0200

    liblzma: Fix building with Intel ICC (the classic compiler).
    
    It claims __GNUC__ >= 10 but doesn't support __symver__ attribute.
    
    Thanks to Stephen Sachs.

 src/liblzma/common/common.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2f01169f5a81e21e7a7e5f799c32472c6277b1d5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-11 14:35:58 +0200

    liblzma: Fix incorrect #ifdef for x86 SSE2 support.
    
    __SSE2__ is the correct macro for SSE2 support with GCC, Clang,
    and ICC. __SSE2_MATH__ means doing floating point math with SSE2
    instead of 387. Often the latter macro is defined if the first
    one is but it was still a bug.

 src/liblzma/common/memcmplen.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit fc1358679ed3994f67e5e8c869c281be82370a32
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-11 12:23:58 +0200

    Scripts: Ignore warnings from xz.
    
    In practice this means making the scripts work when
    the input files have an unsupported check type which
    isn't a problem in practice unless support for
    some check types has been disabled at build time.

 src/scripts/xzdiff.in | 5 +++--
 src/scripts/xzgrep.in | 2 +-
 src/scripts/xzless.in | 4 ++--
 src/scripts/xzmore.in | 4 ++--
 4 files changed, 8 insertions(+), 7 deletions(-)

commit a08be1c420501b1c75770a8f6103e3959486c895
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-09 14:10:52 +0200

    xz: Add comments about stdin and src_st.st_size.
    
    "xz -v < regular_file > out.xz" doesn't display the percentage
    and estimated remaining time because it doesn't even try to
    check the input file size when input is read from stdin.
    This could be improved but for now there's just a comment
    to remind about it.

 src/xz/coder.c   | 9 +++++++++
 src/xz/file_io.c | 4 ++++
 2 files changed, 13 insertions(+)

commit 3ee411cd1cd636bdced6ecede4651394bb4f9cb1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-09 12:48:22 +0200

    xz: Fix displaying of file sizes in progress indicator in passthru mode.
    
    It worked for one input file since the counters are zero when
    xz starts but they weren't reset when starting a new file in
    passthru mode. For example, if files A, B, and C are one byte each,
    then "xz -dcvf A B C" would show file sizes as 1, 2, and 3 bytes
    instead of 1, 1, and 1 byte.

 src/xz/coder.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit aa7fa9d960df4bb21f7727bbf7ce0503f3d211b4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-09 11:27:20 +0200

    xz: Add a comment why --to-stdout is not in --help.
    
    It is on the man page still.

 src/xz/message.c | 3 +++
 1 file changed, 3 insertions(+)

commit ff49ff84a4ba3fab25ffb6d65af321dee36c1273
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-08 22:26:54 +0200

    Docs: Update faq.txt a little.

 doc/faq.txt | 66 ++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 43 insertions(+), 23 deletions(-)

commit 3489565b75b45ee514cf0a6785bb721c7dc624f3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-08 14:13:03 +0200

    liblzma: Update API docs about decoder flags.

 src/liblzma/api/lzma/container.h | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

commit e4937710805c4b660fc629c15d9a6164b2d97822
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-08 14:00:58 +0200

    liblzma: Fix a comment in auto_decoder.c.

 src/liblzma/common/auto_decoder.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d4674dfbb7d1df1feb841f5dbce6ae1f0b026879
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-11-07 16:24:14 +0200

    xz: Avoid a compiler warning in progress_speed() in message.c.
    
    This should be smaller too since it avoids the string constants.

 src/xz/message.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

commit 4ed56d32a91ff8ff21c71db4082a54a72ae08b3d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-31 16:26:05 +0200

    Build: Clarify comment in configure.ac about SSE2.

 configure.ac | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit f930638797f1fec05b272367c052d4fc9de35896
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-31 16:16:37 +0200

    Build: Remove obsolete commented-out lines from configure.ac.

 configure.ac | 4 ----
 1 file changed, 4 deletions(-)

commit 6930f14733757592a4f8d92513f642a5dcc9ec9c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-31 13:31:58 +0200

    Windows: Fix mythread_once() macro with Vista threads.
    
    Don't call InitOnceComplete() if initialization was already done.
    
    So far mythread_once() has been needed only when building
    with --enable-small. windows/build.bash does this together
    with --disable-threads so the Vista-specific mythread_once()
    is never needed by those builds. VS project files or
    CMake-builds don't support HAVE_SMALL builds at all.

 src/common/mythread.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 1c8cbb5be3a97bf22e933777369c4cc28ef9ed5f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-31 11:49:47 +0200

    CMake: Sync tuklib_cpucores.cmake with tuklib_cpucores.m4.
    
    This was forgotten from commit 2611c4d90535652d3eb7ef4a026a6691276fab43.

 cmake/tuklib_cpucores.cmake | 5 +++++
 1 file changed, 5 insertions(+)

commit fa9efb729b1827b25ec71aefcf32f3aceeaf9597
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-25 23:45:03 +0300

    Build: Use AC_CONFIG_HEADERS instead of the ancient AC_CONFIG_HEADER.
    
    We require Autoconf >= 2.69 and that has AC_CONFIG_HEADERS.
    
    There is a warning about AC_PROG_CC_C99 being obsolete but
    it cannot be removed because it is needed with Autoconf 2.69.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b10ba4bf39edd9c9fef42cade3e64fc3b9e3fd19
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-25 23:31:44 +0300

    Build: Update m4/ax_pthread.m4 from Autoconf Archive.

 m4/ax_pthread.m4 | 29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

commit 01744b280c6e35d331b9dc4cc64716b82bc8b3db
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-25 23:09:11 +0300

    xz: Fix --single-stream with an empty .xz Stream.
    
    Example:
    
        $ xz -dc --single-stream good-0-empty.xz
        xz: good-0-empty.xz: Internal error (bug)
    
    The code, that is tries to catch some input file issues early,
    didn't anticipate LZMA_STREAM_END which is possible in that
    code only when --single-stream is used.

 src/xz/coder.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit a3e4606134058241bf1c396243bebcec42c2a780
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-25 19:07:17 +0300

    xz: Fix decompressor behavior if input uses an unsupported check type.
    
    Now files with unsupported check will make xz display
    a warning, set the exit status to 2 (unless --no-warn is used),
    and then decompress the file normally. This is how it was
    supposed to work since the beginning but this was broken by
    the commit 231c3c7098f1099a56abb8afece76fc9b8699f05, that is,
    a little before 5.0.0 was released. The buggy behavior displayed
    a message, set exit status 1 (error), and xz didn't attempt to
    to decompress the file.
    
    This doesn't matter today except for special builds that disable
    CRC64 or SHA-256 at build time (but such builds should be used
    in special situations only). The bug matters if new check type
    is added in the future and an old xz version is used to decompress
    such a file; however, it's likely that such files would use a new
    filter too and an old xz wouldn't be able to decompress the file
    anyway.
    
    The first hunk in the commit is the actual fix. The second hunk
    is a cleanup since LZMA_TELL_ANY_CHECK isn't used in xz.
    
    There is a test file for unsupported check type but it wasn't
    used by test_files.sh, perhaps due to different behavior between
    xz and the simpler xzdec.

 src/xz/coder.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

commit 0b5e8c7e073bce07c59112af1e8a7495e3576e6c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-25 18:36:19 +0300

    xz: Clarify the man page: input file isn't removed if an error occurs.

 src/xz/xz.1 | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 23b7416d5ba0e3579265467bd546865d2ea4cef0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-25 18:23:54 +0300

    xz: If input file cannot be removed, treat it as a warning, not error.
    
    Treating it as a warning (message + exit status 2) matches gzip
    and it seems more logical as at that point the output file has
    already been successfully closed. When it's a warning it is
    possible to suppress it with --no-warn.

 src/xz/file_io.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5daa40454b63c4eb04ab5caeb339eddc95c94bb1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-20 20:22:50 +0300

    tuklib_cpucores: Use HW_NCPUONLINE on OpenBSD.
    
    On OpenBSD the number of cores online is often less
    than what HW_NCPU would return because OpenBSD disables
    simultaneous multi-threading (SMT) by default.
    
    Thanks to Christian Weisgerber.

 m4/tuklib_cpucores.m4        | 5 +++++
 src/common/tuklib_cpucores.c | 9 +++++++++
 2 files changed, 14 insertions(+)

commit 0af861050f375678eafc4e1136ca589ae47d31c0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-11 13:25:02 +0200

    NEWS: Omit the extra copy of 5.2.5 NEWS.
    
    It was a copy-paste error.

 NEWS | 105 -------------------------------------------------------------------
 1 file changed, 105 deletions(-)

commit f0c6a66701afed12c5926c0499b150ecd5b0a63c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-10 12:34:43 +0200

    Translations: Rename poa4/fr_FR.po to po4a/fr.po.
    
    That's how it is preferred at the Translation Project.
    On my system /usr/share/man/fr_FR doesn't contain any
    other man pages than XZ Utils while /usr/share/man/fr
    has quite a few, so this will fix that too.
    
    Thanks to Benno Schulenberg from the Translation Project.

 po4a/{fr_FR.po => fr.po} | 0
 po4a/po4a.conf           | 2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)

commit 6bf8b1f870870a1a0c3f555c34decc9ffb9f8d7a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-08 16:57:17 +0200

    Translations: Update Turkish translation.

 po/tr.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9f8e9d3c8189d8c6f587c99b0da1cf83f72330c2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-08 14:55:32 +0200

    Translations: Update Croatian translation.

 po/hr.po | 190 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 96 insertions(+), 94 deletions(-)

commit d24a57b7fc7e5e9267b84367cb0788d3acf7f569
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-30 16:41:03 +0300

    Bump version and soname for 5.2.7.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit d2003362dd42004355a5550ee7a60ace3b3ea2d8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-30 16:40:39 +0300

    Add NEWS for 5.2.7.

 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

commit 369afb51991e91a5c3a23c4ae3872329a403eb31
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-30 12:06:13 +0300

    liblzma: Add API doc note about the .xz decoder LZMA_MEMLIMIT_ERROR bug.
    
    The bug was fixed in 660739f99ab211edec4071de98889fb32ed04e98.

 src/liblzma/api/lzma/base.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 166431e9951613481b8136f52b570d7bc30b5a03
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-09-21 16:15:50 +0800

    liblzma: Add dest and src NULL checks to lzma_index_cat.
    
    The documentation states LZMA_PROG_ERROR can be returned from
    lzma_index_cat. Previously, lzma_index_cat could not return
    LZMA_PROG_ERROR. Now, the validation is similar to
    lzma_index_append, which does a NULL check on the index
    parameter.

 src/liblzma/common/index.c | 3 +++
 1 file changed, 3 insertions(+)

commit 5e53a6c28b87a0bb9b0cfeaf708cc99ef8e9bc66
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-09-21 20:29:28 +0800

    Tests: Create a test for the lzma_index_cat bug.

 tests/test_index.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)

commit 4ed5fd54c676b735e3f58158f214af68755d59b5
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-09-21 19:28:53 +0800

    liblzma: Fix copying of check type statistics in lzma_index_cat().
    
    The check type of the last Stream in dest was never copied to
    dest->checks (the code tried to copy it but it was done too late).
    This meant that the value returned by lzma_index_checks() would
    only include the check type of the last Stream when multiple
    lzma_indexes had been concatenated.
    
    In xz --list this meant that the summary would only list the
    check type of the last Stream, so in this sense this was only
    a visual bug. However, it's possible that some applications
    use this information for purposes other than merely showing
    it to the users in an informational message. I'm not aware of
    such applications though and it's quite possible that such
    applications don't exist.
    
    Regular streamed decompression in xz or any other application
    doesn't use lzma_index_cat() and so this bug cannot affect them.

 src/liblzma/common/index.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit c4476f695291a2d7376d5fa406d32e354f858858
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-28 12:20:41 +0300

    tuklib_physmem: Fix Unicode builds on Windows.
    
    Thanks to ArSaCiA Game.

 src/common/tuklib_physmem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 976f897bbba9890a99f01a8d59c6d59c230142e6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-28 11:05:15 +0300

    liblzma: Stream decoder: Fix restarting after LZMA_MEMLIMIT_ERROR.
    
    If lzma_code() returns LZMA_MEMLIMIT_ERROR it is now possible
    to use lzma_memlimit_set() to increase the limit and continue
    decoding. This was supposed to work from the beginning but
    there was a bug. With other decoders (.lzma or threaded .xz)
    this already worked correctly.

 src/liblzma/common/stream_decoder.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

commit 2caa9580e5f7c5cc6668e9427a2c21f3f63bb684
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-28 11:00:23 +0300

    liblzma: Stream decoder: Fix comments.

 src/liblzma/common/stream_decoder.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

commit 51882fec5b96cf7760389b670d86c1e7a5a0ced2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-16 14:09:07 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 974186f7cd839f1dbf937b98e112dff670d2bd5c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-16 14:07:03 +0300

    xzgrep: Fix compatibility with old shells.
    
    Running the current xzgrep on Slackware 10.1 with GNU bash 3.00.15:
    
        xzgrep: line 231: syntax error near unexpected token `;;'
    
    On SCO OpenServer 5.0.7 with Korn Shell 93r:
    
        syntax error at line 231 : `;;' unexpected
    
    Turns out that some old shells don't like apostrophes (') inside
    command substitutions. For example, the following fails:
    
        x=$(echo foo
        # asdf'zxcv
        echo bar)
        printf '%s\n' "$x"
    
    The problem was introduced by commits
    69d1b3fc29677af8ade8dc15dba83f0589cb63d6 (2022-03-29),
    bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 (2022-07-18), and
    a648978b20495b7aa4a8b029c5a810b5ad9d08ff (2022-07-19).
    5.2.6 is the only stable release that included
    this problem.
    
    Thanks to Kevin R. Bulgrien for reporting the problem
    on SCO OpenServer 5.0.7 and for providing the fix.

 src/scripts/xzgrep.in | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f94da15120c3d3c363ca12c2262ac6cb9f321f4f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-09 13:51:57 +0300

    liblzma: lzma_filters_copy: Keep dest[] unmodified if an error occurs.
    
    lzma_stream_encoder() and lzma_stream_encoder_mt() always assumed
    this. Before this patch, failing lzma_filters_copy() could result
    in free(invalid_pointer) or invalid memory reads in stream_encoder.c
    or stream_encoder_mt.c.
    
    To trigger this, allocating memory for a filter options structure
    has to fail. These are tiny allocations so in practice they very
    rarely fail.
    
    Certain badness in the filter chain array could also make
    lzma_filters_copy() fail but both stream_encoder.c and
    stream_encoder_mt.c validate the filter chain before
    trying to copy it, so the crash cannot occur this way.

 src/liblzma/api/lzma/filter.h      |  4 +++-
 src/liblzma/common/filter_common.c | 18 ++++++++++++------
 2 files changed, 15 insertions(+), 7 deletions(-)

commit ea57b9aa2c3e1cdb667f8dd698314b1c36047018
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-16 17:08:53 +0300

    Tests: Add a test file for lzma_index_append() integer overflow bug.
    
    This test fails before commit 18d7facd3802b55c287581405c4d49c98708c136.
    
    test_files.sh now runs xz -l for bad-3-index-uncomp-overflow.xz
    because only then the previously-buggy code path gets tested.
    Normal decompression doesn't use lzma_index_append() at all.
    Instead, lzma_index_hash functions are used and those already
    did the overflow check.

 tests/files/README                         |  10 ++++++++++
 tests/files/bad-3-index-uncomp-overflow.xz | Bin 0 -> 132 bytes
 tests/test_files.sh                        |   8 ++++++++
 3 files changed, 18 insertions(+)

commit 72e1645a439a999638a63ec9abb7210671ea5415
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-09-02 20:18:55 +0800

    liblzma: lzma_index_append: Add missing integer overflow check.
    
    The documentation in src/liblzma/api/lzma/index.h suggests that
    both the unpadded (compressed) size and the uncompressed size
    are checked for overflow, but only the unpadded size was checked.
    The uncompressed check is done first since that is more likely to
    occur than the unpadded or index field size overflows.

 src/liblzma/common/index.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 20d82bc90781aa9d2373efe872d90ba64dc7dc62
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-08 15:11:08 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 31d80c6b261b24220776dfaeb8a04f80f80e0a24
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-04 23:23:00 +0300

    liblzma: Vaccinate against an ill patch from RHEL/CentOS 7.
    
    RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded
    encoder that is behind #ifdef LZMA_UNSTABLE in the API headers.
    In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map.
    API/ABI compatibility tracking isn't done between development
    releases so newer releases didn't have XZ_5.1.2alpha anymore.
    
    Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep
    the exported symbols compatible with 5.1.2alpha. After checking
    the ABI changes it turned out that >= 5.2.0 ABI is backward
    compatible with the threaded encoder functions from 5.1.2alpha
    (but not vice versa as fixes and extensions to these functions
    were made between 5.1.2alpha and 5.2.0).
    
    In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with
    xz-5.2.2-compat-libs.patch to modify liblzma.map:
    
      - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and
        lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha.
    
      - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was
        an error; the intention was to keep using XZ_5.2 (XZ_5.2.2
        has never been used in XZ Utils). So XZ_5.2.2 lists all
        symbols that were listed under XZ_5.2 before the patch.
        lzma_stream_encoder_mt and _mt_memusage are included too so
        they are listed both here and under XZ_5.1.2alpha.
    
    The patch didn't add any __asm__(".symver ...") lines to the .c
    files. Thus the resulting liblzma.so exports the threaded encoder
    functions under XZ_5.1.2alpha only. Listing the two functions
    also under XZ_5.2.2 in liblzma.map has no effect without
    matching .symver lines.
    
    The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked
    against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7.
    This is unfortunate but this alone isn't too bad as the problem
    is contained within RHEL/CentOS 7 and doesn't affect users
    of other distributions. It could also be fixed internally in
    RHEL/CentOS 7.
    
    The second problem is more serious: In XZ Utils 5.2.2 the API
    headers don't have #ifdef LZMA_UNSTABLE for obvious reasons.
    This is true in RHEL/CentOS 7 version too. Thus now programs
    using new APIs can be compiled without an extra #define. However,
    the programs end up depending on symbol version XZ_5.1.2alpha
    (and possibly also XZ_5.2.2) instead of XZ_5.2 as they would
    with an unpatched XZ Utils 5.2.2. This means that such binaries
    won't run on other distributions shipping XZ Utils >= 5.2.0 as
    they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide
    XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch
    luckily isn't included there anymore with XZ Utils 5.2.4.)
    
    Binaries built by RHEL/CentOS 7 users get distributed and then
    people wonder why they don't run on some other distribution.
    Seems that people have found out about the patch and been copying
    it to some build scripts, seemingly curing the symptoms but
    actually spreading the illness further and outside RHEL/CentOS 7.
    
    The ill patch seems to be from late 2016 (RHEL 7.3) and in 2017 it
    had spread at least to EasyBuild. I heard about the events only
    recently. :-(
    
    This commit splits liblzma.map into two versions: one for
    GNU/Linux and another for other OSes that can use symbol versioning
    (FreeBSD, Solaris, maybe others). The Linux-specific file and the
    matching additions to .c files add full compatibility with binaries
    that have been built against a RHEL/CentOS-patched liblzma. Builds
    for OSes other than GNU/Linux won't get the vaccine as they should
    be immune to the problem (I really hope that no build script uses
    the RHEL/CentOS 7 patch outside GNU/Linux).
    
    The RHEL/CentOS compatibility symbols XZ_5.1.2alpha and XZ_5.2.2
    are intentionally put *after* XZ_5.2 in liblzma_linux.map. This way
    if one forgets to #define HAVE_SYMBOL_VERSIONS_LINUX when building,
    the resulting liblzma.so.5 will have lzma_stream_encoder_mt@@XZ_5.2
    since XZ_5.2 {...} is the first one that lists that function.
    Without HAVE_SYMBOL_VERSIONS_LINUX @XZ_5.1.2alpha and @XZ_5.2.2
    will be missing but that's still a minor problem compared to
    only having lzma_stream_encoder_mt@@XZ_5.1.2alpha!
    
    The "local: *;" line was moved to XZ_5.0 so that it doesn't need
    to be moved around. It doesn't matter where it is put.
    
    Having two similar liblzma_*.map files is a bit silly as it is,
    at least for now, easily possible to generate the generic one
    from the Linux-specific file. But that adds extra steps and
    increases the risk of mistakes when supporting more than one
    build system. So I rather maintain two files in parallel and let
    validate_map.sh check that they are in sync when "make mydist"
    is run.
    
    This adds .symver lines for lzma_stream_encoder_mt@XZ_5.2.2 and
    lzma_stream_encoder_mt_memusage@XZ_5.2.2 even though these
    weren't exported by RHEL/CentOS 7 (only @@XZ_5.1.2alpha was
    for these two). I added these anyway because someone might
    misunderstand the RHEL/CentOS 7 patch and think that @XZ_5.2.2
    (@@XZ_5.2.2) versions were exported too.
    
    At glance one could suggest using __typeof__ to copy the function
    prototypes when making aliases. However, this doesn't work trivially
    because __typeof__ won't copy attributes (lzma_nothrow, lzma_pure)
    and it won't change symbol visibility from hidden to default (done
    by LZMA_API()). Attributes could be copied with __copy__ attribute
    but that needs GCC 9 and a fallback method would be needed anyway.
    
    This uses __symver__ attribute with GCC >= 10 and
    __asm__(".symver ...") with everything else. The attribute method
    is required for LTO (-flto) support with GCC. Using -flto with
    GCC older than 10 is now broken on GNU/Linux and will not be fixed
    (can silently result in a broken liblzma build that has dangerously
    incorrect symbol versions). LTO builds with Clang seem to work
    with the traditional __asm__(".symver ...") method.
    
    Thanks to Boud Roukema for reporting the problem and discussing
    the details and testing the fix.

 configure.ac                                     |  23 ++++-
 src/liblzma/Makefile.am                          |  10 +-
 src/liblzma/common/block_buffer_encoder.c        |  18 ++++
 src/liblzma/common/common.c                      |  14 +++
 src/liblzma/common/common.h                      |  28 ++++++
 src/liblzma/common/hardware_cputhreads.c         |  12 +++
 src/liblzma/common/stream_encoder_mt.c           |  42 ++++++++
 src/liblzma/{liblzma.map => liblzma_generic.map} |   6 +-
 src/liblzma/liblzma_linux.map                    | 123 +++++++++++++++++++++++
 src/liblzma/validate_map.sh                      | 113 +++++++++++++++++++--
 10 files changed, 374 insertions(+), 15 deletions(-)

commit e7a7ac744eb0f890ef52388de838596ef566c73f
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-09-08 15:07:00 +0300

    CMake: Clarify a comment about Windows symlinks without file extension.

 CMakeLists.txt | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit a273a0cb77c6000e4da627b07f28c5af41f0908c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-08 15:02:41 +0300

    CMake: Update for liblzma_*.map files and fix wrong common_w32res.rc dep.
    
    The previous commit split liblzma.map into liblzma_linux.map and
    liblzma_generic.map. This commit updates the CMake build for those.
    
    common_w32res.rc dependency was listed under Linux/FreeBSD while
    obviously it belongs to Windows when building a DLL.

 CMakeLists.txt | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

commit 5875a45be0ab399e37acc31165725a9b5291f67e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-08-31 16:42:04 +0300

    CMake: Add xz symlinks.
    
    These are a minor thing especially since the xz build has
    some real problems still like lack of large file support
    on 32-bit systems but I'll commit this since the code exists.
    
    Thanks to Jia Tan.

 CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

commit 3523b6ebb56c447f21736f01bfe91602741aa3e7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-08-31 16:29:38 +0300

    CMake: Put xz man page install under if(UNIX) like is for xzdec.
    
    Thanks to Jia Tan.

 CMakeLists.txt | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 5af9e8759f748a11a408bfc5aef829df3811fc23
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-16 15:10:07 +0300

    Translations: Add Turkish translation.

 po/LINGUAS |   1 +
 po/tr.po   | 977 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 978 insertions(+)

commit f05a69685e9c7f7157d751abfbd2d8ea6e3bacc7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-08-18 17:49:16 +0300

    Build: Include the CMake files in the distribution.
    
    This was supposed to be done in 2020 with 5.2.5 release
    already but it was noticed only today. 5.2.5 and 5.2.6
    even mention experiemental CMake support in the NEWS entries.
    
    Thanks to Olivier B. for reporting the problem.

 Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit ad5ef6d3c30bb749113c51aa0bbe8bcb5e193fbe
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-08-18 17:38:05 +0300

    Windows: Fix broken liblzma.dll build with Visual Studio project files.
    
    The bug was introduced in 352ba2d69af2136bc814aa1df1a132559d445616
    "Windows: Fix building of resource files when config.h isn't used."
    
    That commit fixed liblzma.dll build with CMake while keeping it
    working with Autotools on Windows but the VS project files were
    forgotten.
    
    I haven't tested these changes.
    
    Thanks to Olivier B. for reporting the bug and for the initial patch.

 windows/vs2013/liblzma_dll.vcxproj | 6 ++++++
 windows/vs2017/liblzma_dll.vcxproj | 6 ++++++
 windows/vs2019/liblzma_dll.vcxproj | 6 ++++++
 3 files changed, 18 insertions(+)

commit 8dfed05bdaa4873833ba24279f02ad2db25effea
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-08-12 14:30:13 +0300

    Bump version and soname for 5.2.6.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 09b4af4e04def5777b06124200b64b0b941eea7f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-08-12 14:29:28 +0300

    Add NEWS for 5.2.6.

 NEWS | 226 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 226 insertions(+)

commit 692de534fae6c38f92416793addcf5f60ffe2bf6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-08-12 14:28:41 +0300

    Add Jia Tan to AUTHORS.

 AUTHORS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 275de376a645f406be7c453bb68427aa9466cf83
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-25 19:11:05 +0300

    Translations: Change the copyright comment string to use with po4a.
    
    This affects the second line in po4a/xz-man.pot. The man pages of
    xzdiff, xzgrep, and xzmore are from GNU gzip and under GNU GPLv2+
    while the rest of the man pages are in the public domain.

 po4a/update-po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 76a5a752b8467ff591dd028deb61e9bf2c274c7e
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-07-25 18:30:05 +0300

    liblzma: Refactor lzma_mf_is_supported() to use a switch-statement.

 src/liblzma/lz/lz_encoder.c | 32 ++++++++++++++------------------
 1 file changed, 14 insertions(+), 18 deletions(-)

commit 749b86c2c18ab61a07f19ec8fefc67325da97397
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-07-25 18:20:01 +0300

    Build: Don't allow empty LIST in --enable-match-finders=LIST.
    
    It's enforced only when a match finder is needed, that is,
    when LZMA1 or LZMA2 encoder is enabled.

 configure.ac | 4 ++++
 1 file changed, 4 insertions(+)

commit 63e3cdef805a4d9ea94c76c36cbabe4dc76abe36
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-01-11 23:41:16 +0200

    xz: Make --keep accept symlinks, hardlinks, and setuid/setgid/sticky.
    
    Previously this required using --force but that has other
    effects too which might be undesirable. Changing the behavior
    of --keep has a small risk of breaking existing scripts but
    since this is a fairly special corner case I expect the
    likehood of breakage to be low enough.
    
    I think the new behavior is more logical. The only reason for
    the old behavior was to be consistent with gzip and bzip2.
    
    Thanks to Vincent Lefevre and Sebastian Andrzej Siewior.

 src/xz/file_io.c |  9 +++++----
 src/xz/xz.1      | 16 +++++++++++++++-
 2 files changed, 20 insertions(+), 5 deletions(-)

commit 9055584be0ae47032b7fb3ba8531aa56b9ed572a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-19 23:19:49 +0300

    xzgrep man page: Document exit statuses.

 src/scripts/xzgrep.1 | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

commit 57e1ccbb7ce30e5298ea7ec3934e462fa8d32237
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-19 23:13:24 +0300

    xzgrep: Improve error handling, especially signals.
    
    xzgrep wouldn't exit on SIGPIPE or SIGQUIT when it clearly
    should have. It's quite possible that it's not perfect still
    but at least it's much better.
    
    If multiple exit statuses compete, now it tries to pick
    the largest of value.
    
    Some comments were added.
    
    The exit status handling of signals is still broken if the shell
    uses values larger than 255 in $? to indicate that a process
    died due to a signal ***and*** their "exit" command doesn't take
    this into account. This seems to work well with the ksh and yash
    versions I tried. However, there is a report in gzip/zgrep that
    OpenSolaris 5.11 (not 5.10) has a problem with "exit" truncating
    the argument to 8 bits:
    
        https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22900#25
    
    Such a bug would break xzgrep but I didn't add a workaround
    at least for now. 5.11 is old and I don't know if the problem
    exists in modern descendants, or if the problem exists in other
    ksh implementations in use.

 src/scripts/xzgrep.in | 72 +++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 53 insertions(+), 19 deletions(-)

commit 6351ea1afb261ec9be95f808bcbe724e0da4ae09
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-19 00:10:55 +0300

    xzgrep: Make the fix for ZDI-CAN-16587 more robust.
    
    I don't know if this can make a difference in the real world
    but it looked kind of suspicious (what happens with sed
    implementations that cannot process very long lines?).
    At least this commit shouldn't make it worse.

 src/scripts/xzgrep.in | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 2c1ff2ed6b9f17b3913866a15d776ebbbeb824d2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-18 21:52:31 +0300

    xzgrep: Use grep -H --label when available (GNU, *BSDs).
    
    It avoids the use of sed for prefixing filenames to output lines.
    Using sed for that is slower and prone to security bugs so now
    the sed method is only used as a fallback.
    
    This also fixes an actual bug: When grepping a binary file,
    GNU grep nowadays prints its diagnostics to stderr instead of
    stdout and thus the sed-method for prefixing the filename doesn't
    work. So with this commit grepping binary files gives reasonable
    output with GNU grep now.
    
    This was inspired by zgrep but the implementation is different.

 src/scripts/xzgrep.in | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 8b0be38a795fa1cdffdada64341a34209e630060
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-18 21:10:25 +0300

    xzgrep: Use -e to specify the pattern to grep.
    
    Now we don't need the separate test for adding the -q option
    as it can be added directly in the two places where it's needed.

 src/scripts/xzgrep.in | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

commit 4a61867a874c60b31448d2d4f3c276efba85a243
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-18 19:18:48 +0300

    Scripts: Use printf instead of echo in a few places.
    
    It's a good habbit as echo has some portability corner cases
    when the string contents can be anything.

 src/scripts/xzdiff.in | 6 +++---
 src/scripts/xzgrep.in | 4 ++--
 src/scripts/xzless.in | 4 ++--
 src/scripts/xzmore.in | 8 ++++----
 4 files changed, 11 insertions(+), 11 deletions(-)

commit 0e222bf7d79a9792025c5ffeaa66c8e14eb47615
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-17 21:36:25 +0300

    xzgrep: Add more LC_ALL=C to avoid bugs with multibyte characters.
    
    Also replace one use of expr with printf.
    
    The rationale for LC_ALL=C was already mentioned in
    69d1b3fc29677af8ade8dc15dba83f0589cb63d6 that fixed a security
    issue. However, unrelated uses weren't changed in that commit yet.
    
    POSIX says that with sed and such tools one should use LC_ALL=C
    to ensure predictable behavior when strings contain byte sequences
    that aren't valid multibyte characters in the current locale. See
    under "Application usage" in here:
    
    https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html
    
    With GNU sed invalid multibyte strings would work without this;
    it's documented in its Texinfo manual. Some other implementations
    aren't so forgiving.

 src/scripts/xzgrep.in | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 62c1d2bc2da66e182c52bb1e3aa791f6d8a9e099
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-17 20:55:16 +0300

    xzgrep: Fix parsing of certain options.
    
    Fix handling of "xzgrep -25 foo" (in GNU grep "grep -25 foo" is
    an alias for "grep -C25 foo"). xzgrep would treat "foo" as filename
    instead of as a pattern. This bug was fixed in zgrep in gzip in 2012.
    
    Add -E, -F, -G, and -P to the "no argument required" list.
    
    Add -X to "argument required" list. It is an
    intentionally-undocumented GNU grep option so this isn't
    an important option for xzgrep but it seems that other grep
    implementations (well, those that I checked) don't support -X
    so I hope this change is an improvement still.
    
    grep -d (grep --directories=ACTION) requires an argument. In
    contrast to zgrep, I kept -d in the "no argument required" list
    because it's not supported in xzgrep (or zgrep). This way
    "xzgrep -d" gives an error about option being unsupported instead
    of telling that it requires an argument. Both zgrep and xzgrep
    tell that it's unsupported if an argument is specified.
    
    Add comments.

 src/scripts/xzgrep.in | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

commit 372a0d12c95fad5e5477b4f79646bf66d28e0c31
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-14 20:33:05 +0300

    Tests: Add the .lzma files to test_files.sh.

 tests/test_files.sh | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit b8e3d0c45b62c81dfc6b350556d77cf2c7401edd
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-14 19:37:42 +0300

    Tests: Add .lzma test files.

 tests/files/README                                 |  63 ++++++++++++++++-----
 tests/files/bad-too_big_size-with_eopm.lzma        | Bin 0 -> 37 bytes
 tests/files/bad-too_small_size-without_eopm-1.lzma | Bin 0 -> 31 bytes
 tests/files/bad-too_small_size-without_eopm-2.lzma | Bin 0 -> 31 bytes
 tests/files/bad-too_small_size-without_eopm-3.lzma | Bin 0 -> 36 bytes
 tests/files/bad-unknown_size-without_eopm.lzma     | Bin 0 -> 31 bytes
 tests/files/good-known_size-with_eopm.lzma         | Bin 0 -> 37 bytes
 tests/files/good-known_size-without_eopm.lzma      | Bin 0 -> 31 bytes
 tests/files/good-unknown_size-with_eopm.lzma       | Bin 0 -> 37 bytes
 9 files changed, 50 insertions(+), 13 deletions(-)

commit e96bdf7189916bffec0dcc933cd809fac898587c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-14 18:12:38 +0300

    liblzma: Rename a variable and improve a comment.

 src/liblzma/lzma/lzma_decoder.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit 2d54fdf58e80bb2b0852633838576fd1ae7961c5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-13 22:24:41 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit ff54b557fe3b06b59a24e4028c1464c35dd5b142
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-13 22:24:07 +0300

    liblzma: Add optional autodetection of LZMA end marker.
    
    Turns out that this is needed for .lzma files as the spec in
    LZMA SDK says that end marker may be present even if the size
    is stored in the header. Such files are rare but exist in the
    real world. The code in liblzma is so old that the spec didn't
    exist in LZMA SDK back then and I had understood that such
    files weren't possible (the lzma tool in LZMA SDK didn't
    create such files).
    
    This modifies the internal API so that LZMA decoder can be told
    if EOPM is allowed even when the uncompressed size is known.
    It's allowed with .lzma and not with other uses.
    
    Thanks to Karl Beldan for reporting the problem.

 doc/lzma-file-format.txt           | 11 ++++-
 src/liblzma/common/alone_decoder.c |  2 +-
 src/liblzma/lz/lz_decoder.c        | 10 +++-
 src/liblzma/lz/lz_decoder.h        |  8 +--
 src/liblzma/lzma/lzma2_decoder.c   |  2 +-
 src/liblzma/lzma/lzma_decoder.c    | 99 +++++++++++++++++++++++++++-----------
 6 files changed, 94 insertions(+), 38 deletions(-)

commit bb795fe835cf2b3ae7ed68b155784fbfc14e2faf
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-06-14 17:20:49 +0300

    Tests: Add test file good-1-empty-bcj-lzma2.xz.
    
    This is from test_bcj_exact_size.c.
    It's good to have it as a standalone file.

 tests/files/README                    |   5 +++++
 tests/files/good-1-empty-bcj-lzma2.xz | Bin 0 -> 52 bytes
 2 files changed, 5 insertions(+)

commit dbd8b0bf45c10f991635f585a2ea59fb5ae28ff3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-03-31 00:05:07 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit bb66a98ded39c40df202da17cb2055356dcd4168
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-03-29 19:19:12 +0300

    xzgrep: Fix escaping of malicious filenames (ZDI-CAN-16587).
    
    Malicious filenames can make xzgrep to write to arbitrary files
    or (with a GNU sed extension) lead to arbitrary code execution.
    
    xzgrep from XZ Utils versions up to and including 5.2.5 are
    affected. 5.3.1alpha and 5.3.2alpha are affected as well.
    This patch works for all of them.
    
    This bug was inherited from gzip's zgrep. gzip 1.12 includes
    a fix for zgrep.
    
    The issue with the old sed script is that with multiple newlines,
    the N-command will read the second line of input, then the
    s-commands will be skipped because it's not the end of the
    file yet, then a new sed cycle starts and the pattern space
    is printed and emptied. So only the last line or two get escaped.
    
    One way to fix this would be to read all lines into the pattern
    space first. However, the included fix is even simpler: All lines
    except the last line get a backslash appended at the end. To ensure
    that shell command substitution doesn't eat a possible trailing
    newline, a colon is appended to the filename before escaping.
    The colon is later used to separate the filename from the grep
    output so it is fine to add it here instead of a few lines later.
    
    The old code also wasn't POSIX compliant as it used \n in the
    replacement section of the s-command. Using \<newline> is the
    POSIX compatible method.
    
    LC_ALL=C was added to the two critical sed commands. POSIX sed
    manual recommends it when using sed to manipulate pathnames
    because in other locales invalid multibyte sequences might
    cause issues with some sed implementations. In case of GNU sed,
    these particular sed scripts wouldn't have such problems but some
    other scripts could have, see:
    
        info '(sed)Locale Considerations'
    
    This vulnerability was discovered by:
    cleemy desu wayo working with Trend Micro Zero Day Initiative
    
    Thanks to Jim Meyering and Paul Eggert discussing the different
    ways to fix this and for coordinating the patch release schedule
    with gzip.

 src/scripts/xzgrep.in | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

commit fa3af4e4c6a8f692785b87ba0f165f34d154ae0f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-03-23 16:34:00 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit f12ce0f23a0496daebc77e8359309bf724ad5e8a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-03-06 16:54:23 +0200

    liblzma: Fix docs: lzma_block_decoder() cannot return LZMA_UNSUPPORTED_CHECK.
    
    If Check is unsupported, it will be silently ignored.
    It's the caller's job to handle it.

 src/liblzma/api/lzma/block.h | 3 ---
 1 file changed, 3 deletions(-)

commit 412566731111edc28f0b68bc966d01ab24d17082
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-03-06 15:18:58 +0200

    liblzma: Index hash: Change return value type of hash_append() to void.

 src/liblzma/common/index_hash.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit 7c3ce02df001701a26c2fa41b2dc8b530743f454
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-02-22 03:42:57 +0200

    liblzma: Minor addition to lzma_vli_size() API doc.
    
    Thanks to Jia Tan.

 src/liblzma/api/lzma/vli.h | 2 ++
 1 file changed, 2 insertions(+)

commit b8f667fe0c3e17fd2c559901d2aaf19b1dfd51f2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-02-22 02:04:18 +0200

    liblzma: Check the return value of lzma_index_append() in threaded encoder.
    
    If lzma_index_append() failed (most likely memory allocation failure)
    it could have gone unnoticed and the resulting .xz file would have
    an incorrect Index. Decompressing such a file would produce the
    correct uncompressed data but then an error would occur when
    verifying the Index field.

 src/liblzma/common/stream_encoder_mt.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 2356d53edd8f44ff8f411972ca62d63079ff59af
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-02-22 01:37:39 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 748ef0833821f1ea4ff5d57abc3cab1ae76266d3
Author: Ed Maste <emaste@FreeBSD.org>
Date:   2022-02-11 15:25:46 +0000

    liblzma: Use non-executable stack on FreeBSD as on Linux

 src/liblzma/check/crc32_x86.S | 4 ++--
 src/liblzma/check/crc64_x86.S | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 068a6e3286c9ca7d67f13f4c78646c4f4a3c3c5b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-02-20 20:36:27 +0200

    liblzma: Make Block decoder catch certain types of errors better.
    
    Now it limits the input and output buffer sizes that are
    passed to a raw decoder. This way there's no need to check
    if the sizes can grow too big or overflow when updating
    Compressed Size and Uncompressed Size counts. This also means
    that a corrupt file cannot cause the raw decoder to process
    useless extra input or output that would exceed the size info
    in Block Header (and thus cause LZMA_DATA_ERROR anyway).
    
    More importantly, now the size information is verified more
    carefully in case raw decoder returns LZMA_OK. This doesn't
    really matter with the current single-threaded .xz decoder
    as the errors would be detected slightly later anyway. But
    this helps avoiding corner cases in the upcoming threaded
    decompressor, and it might help other Block decoder uses
    outside liblzma too.
    
    The test files bad-1-lzma2-{9,10,11}.xz test these conditions.
    With the single-threaded .xz decoder the only difference is
    that LZMA_DATA_ERROR is detected in a difference place now.

 src/liblzma/common/block_decoder.c | 79 ++++++++++++++++++++++++++------------
 1 file changed, 54 insertions(+), 25 deletions(-)

commit 766df4f62c165ba96d60af8fadbada51349fd140
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-02-20 19:38:55 +0200

    Tests: Add bad-1-lzma2-11.xz.

 tests/files/README            |   5 +++++
 tests/files/bad-1-lzma2-11.xz | Bin 0 -> 64 bytes
 2 files changed, 5 insertions(+)

commit 12a6d6ce2a9850e32140e542decfd9c8a33c87fc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-02-18 18:51:10 +0200

    Translations: Fix po4a failure with the French man page translations.
    
    Thanks to Mario Blättermann for the patch.

 po4a/fr_FR.po | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 00e6aad836cf301e95575ea53790f5ab96fe8ed6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-02-07 01:14:37 +0200

    Translations: Add French translation of man pages.
    
    This matches xz-utils 5.2.5-2 in Debian.
    
    The translation was done by "bubu", proofread by the debian-l10n-french
    mailing list contributors, and submitted to me on the xz-devel mailing
    list by Jean-Pierre Giraud. Thanks to everyone!

 po4a/fr_FR.po  | 3541 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 po4a/po4a.conf |    2 +-
 2 files changed, 3542 insertions(+), 1 deletion(-)

commit e20ce2b12251a246c50fb5b7fa2204c11611b407
Author: jiat75 <jiat0218@gmail.com>
Date:   2022-01-28 20:47:55 +0800

    liblzma: Add NULL checks to LZMA and LZMA2 properties encoders.
    
    Previously lzma_lzma_props_encode() and lzma_lzma2_props_encode()
    assumed that the options pointers must be non-NULL because the
    with these filters the API says it must never be NULL. It is
    good to do these checks anyway.

 src/liblzma/lzma/lzma2_encoder.c | 3 +++
 src/liblzma/lzma/lzma_encoder.c  | 3 +++
 2 files changed, 6 insertions(+)

commit feb80ace866c3033cefbc39f6b07ada83e316e6a
Author: huangqinjin <huangqinjin@gmail.com>
Date:   2021-12-13 20:49:21 +0800

    CMake: Keep compatible with Windows 95 for 32-bit build.

 CMakeLists.txt | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 725f2e0522c4ef8dc5fdd69b5017bac6322ebce2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-11-13 21:04:05 +0200

    xzgrep: Update man page timestamp.

 src/scripts/xzgrep.1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7955669d423724e69a7f2dae1173dae248f7a596
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-11-13 18:23:24 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 671673a7a209e6131491e6a424758bbc13fb7aa1
Author: Ville Skyttä <ville.skytta@iki.fi>
Date:   2021-11-13 10:11:57 +0200

    xzgrep: use `grep -E/-F` instead of `egrep` and `fgrep`
    
    `egrep` and `fgrep` have been deprecated in GNU grep since 2007, and in
    current post 3.7 Git they have been made to emit obsolescence warnings:
    https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1

 src/scripts/xzgrep.1  | 8 ++++----
 src/scripts/xzgrep.in | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 45e538257e85050f67a6d363961e31b71e3ec565
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-10-27 23:27:48 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit ca21733d24a4f65b46a5efa124a89c859ac5592e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-10-27 23:23:11 +0300

    xz: Change the coding style of the previous commit.
    
    It isn't any better now but it's consistent with
    the rest of the code base.

 src/xz/file_io.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 906b990b151b93750958371e39ad00e8d1daada9
Author: Alexander Bluhm <alexander.bluhm@gmx.net>
Date:   2021-10-05 23:33:16 +0200

    xz: Avoid fchown(2) failure.
    
    OpenBSD does not allow to change the group of a file if the user
    does not belong to this group.  In contrast to Linux, OpenBSD also
    fails if the new group is the same as the old one.  Do not call
    fchown(2) in this case, it would change nothing anyway.
    
    This fixes an issue with Perl Alien::Build module.
    https://github.com/PerlAlien/Alien-Build/issues/62

 src/xz/file_io.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit ca83df96c48371ce0094c73c6f4582899ae4b62b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-09-09 22:21:07 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit d8b294af03840c7c47d6b7b0d4c0d6d2f6357dfa
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-09-09 21:41:51 +0300

    liblzma: Use _MSVC_LANG to detect when "noexcept" can be used with MSVC.
    
    By default, MSVC always sets __cplusplus to 199711L. The real
    C++ standard version is available in _MSVC_LANG (or one could
    use /Zc:__cplusplus to set __cplusplus correctly).
    
    Fixes <https://sourceforge.net/p/lzmautils/discussion/708858/thread/f6bc3b108a/>.
    
    Thanks to Dan Weiss.

 src/liblzma/api/lzma.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit c2fde22befe1f5256ad3d7c4cb35794aa8e64c67
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-06-04 19:02:38 +0300

    xzdiff: Update the man page about the exit status.
    
    This was forgotten from 194029ffaf74282a81f0c299c07f73caca3232ca.

 src/scripts/xzdiff.1 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 8d0fd42fbedd01fd3c847b56d19841e603500dea
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-06-04 18:52:48 +0300

    xzless: Fix less(1) version detection when it contains a dot.
    
    Sometimes the version number from "less -V" contains a dot,
    sometimes not. xzless failed detect the version number when
    it does contain a dot. This fixes it.
    
    Thanks to nick87720z for reporting this. Apparently it had been
    reported here <https://bugs.gentoo.org/489362> in 2013.

 src/scripts/xzless.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6e2cab8579fc6f832b5954510b27fd7e74563436
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-12 18:53:04 +0300

    xz: Document the special memlimit case of 2000 MiB on MIPS32.
    
    See commit 95806a8a52ae57bddf6c77dfd19cf7938a92e040.

 src/xz/xz.1 | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 38b311462bd8974888ba3cd9312de132c76ec2e0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-04-11 19:58:10 +0300

    Update THANKS.

 THANKS | 2 ++
 1 file changed, 2 insertions(+)

commit 95806a8a52ae57bddf6c77dfd19cf7938a92e040
Author: Ivan A. Melnikov <iv@altlinux.org>
Date:   2021-04-09 11:45:10 +0300

    Reduce maximum possible memory limit on MIPS32
    
    Due to architectural limitations, address space available to a single
    userspace process on MIPS32 is limited to 2 GiB, not 4, even on systems
    that have more physical RAM -- e.g. 64-bit systems with 32-bit
    userspace, or systems that use XPA (an extension similar to x86's PAE).
    
    So, for MIPS32, we have to impose stronger memory limits. I've chosen
    2000MiB to give the process some headroom.

 src/xz/hardware.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit a79bd30a6fbfe614f47ad77498c46e218dbe2b1d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-02-13 23:31:27 +0200

    CMake: Use interface library for better FindLibLZMA compatibility.
    
    https://www.mail-archive.com/xz-devel@tukaani.org/msg00446.html
    
    Thanks to Markus Rickert.

 CMakeLists.txt | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 64d98147616c48f2df37fb46b49350f3d5febd34
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-01-30 18:36:04 +0200

    CMake: Try to improve compatibility with the FindLibLZMA module.
    
    The naming conflict with FindLibLZMA module gets worse.
    Not avoiding it in the first place was stupid.
    
    Normally find_package(LibLZMA) will use the module and
    find_package(liblzma 5.2.5 REQUIRED CONFIG) will use the config
    file even with a case insensitive file system. However, if
    CMAKE_FIND_PACKAGE_PREFER_CONFIG is TRUE and the file system
    is case insensitive, find_package(LibLZMA) will find our liblzma
    config file instead of using FindLibLZMA module.
    
    One big problem with this is that FindLibLZMA uses
    LibLZMA::LibLZMA and we use liblzma::liblzma as the target
    name. With target names CMake happens to be case sensitive.
    To workaround this, this commit adds
    
        add_library(LibLZMA::LibLZMA ALIAS liblzma::liblzma)
    
    to the config file. Then both spellings work.
    
    To make the behavior consistent between case sensitive and
    insensitive file systems, the config and related files are
    renamed from liblzmaConfig.cmake to liblzma-config.cmake style.
    With this style CMake looks for lowercase version of the package
    name so find_package(LiBLzmA 5.2.5 REQUIRED CONFIG) will work
    to find our config file.
    
    There are other differences between our config file and
    FindLibLZMA so it's still possible that things break for
    reasons other than the spelling of the target name. Hopefully
    those situations aren't too common.
    
    When the config file is available, it should always give as good or
    better results as FindLibLZMA so this commit doesn't affect the
    recommendation to use find_package(liblzma 5.2.5 REQUIRED CONFIG)
    which explicitly avoids FindLibLZMA.
    
    Thanks to Markus Rickert.

 CMakeLists.txt | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

commit 9e2f9e2d0841dd0417125ca3c7a05418541fb230
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-01-24 22:32:41 +0200

    Tests: Add bad-1-lzma2-10.xz and also modify -9.xz.

 tests/files/README            |  11 +++++++++--
 tests/files/bad-1-lzma2-10.xz | Bin 0 -> 60 bytes
 tests/files/bad-1-lzma2-9.xz  | Bin 72 -> 72 bytes
 3 files changed, 9 insertions(+), 2 deletions(-)

commit 00a4c69bbbf302dd6323fd6970890ee22ddd4f96
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-01-24 18:51:51 +0200

    Tests: Add bad-1-lzma2-9.xz.

 tests/files/README           |   4 ++++
 tests/files/bad-1-lzma2-9.xz | Bin 0 -> 72 bytes
 2 files changed, 4 insertions(+)

commit 1da2269b2e9b952d165ad7bec823de9dfe9a9e9e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-01-24 17:02:00 +0200

    Tests: Add bad-1-check-crc32-2.xz.

 tests/files/README                 |   7 +++++++
 tests/files/bad-1-check-crc32-2.xz | Bin 0 -> 72 bytes
 2 files changed, 7 insertions(+)

commit 11ceecb5e2999ff96989915120e63a2e7e130057
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-01-11 23:57:11 +0200

    Scripts: Add zstd support to xzdiff.

 src/scripts/xzdiff.1  |  6 ++++--
 src/scripts/xzdiff.in | 16 +++++++++++-----
 2 files changed, 15 insertions(+), 7 deletions(-)

commit d655b8c9cb5a4e596c0fa2290fa91e995b734f97
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-01-11 23:28:52 +0200

    Scripts: Fix exit status of xzgrep.
    
    Omit the -q option from xz, gzip, and bzip2. With xz this shouldn't
    matter. With gzip it's important because -q makes gzip replace SIGPIPE
    with exit status 2. With bzip2 it's important because with -q bzip2
    is completely silent if input is corrupt while other decompressors
    still give an error message.
    
    Avoiding exit status 2 from gzip is important because bzip2 uses
    exit status 2 to indicate corrupt input. Before this commit xzgrep
    didn't recognize corrupt .bz2 files because xzgrep was treating
    exit status 2 as SIGPIPE for gzip compatibility.
    
    zstd still needs -q because otherwise it is noisy in normal
    operation.
    
    The code to detect real SIGPIPE didn't check if the exit status
    was due to a signal (>= 128) and so could ignore some other exit
    status too.

 src/scripts/xzgrep.in | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

commit 09c331b03c801414d547fc25711daf099cef6fb5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2021-01-11 22:01:51 +0200

    Scripts: Fix exit status of xzdiff/xzcmp.
    
    This is a minor fix since this affects only the situation when
    the files differ and the exit status is something else than 0.
    In such case there could be SIGPIPE from a decompression tool
    and that would result in exit status of 2 from xzdiff/xzcmp
    while the correct behavior would be to return 1 or whatever
    else diff or cmp may have returned.
    
    This commit omits the -q option from xz/gzip/bzip2/lzop arguments.
    I'm not sure why the -q was used in the first place, perhaps it
    hides warnings in some situation that I cannot see at the moment.
    Hopefully the removal won't introduce a new bug.
    
    With gzip the -q option was harmful because it made gzip return 2
    instead of >= 128 with SIGPIPE. Ignoring exit status 2 (warning
    from gzip) isn't practical because bzip2 uses exit status 2 to
    indicate corrupt input file. It's better if SIGPIPE results in
    exit status >= 128.
    
    With bzip2 the removal of -q seems to be good because with -q
    it prints nothing if input is corrupt. The other tools aren't
    silent in this situation even with -q. On the other hand, if
    zstd support is added, it will need -q since otherwise it's
    noisy in normal situations.
    
    Thanks to Étienne Mollier and Sebastian Andrzej Siewior.

 src/scripts/xzdiff.in | 35 +++++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 14 deletions(-)

commit b33a345cbab90e18b601d26cc3a0dea083b7d8d9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-12-23 17:15:49 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit c01e29a933baba737217a3549eaaced7e499edf5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   2020-12-23 06:49:04 -0800

    liblzma: Enable Intel CET in x86 CRC assembly codes
    
    When Intel CET is enabled, we need to include <cet.h> in assembly codes
    to mark Intel CET support and add _CET_ENDBR to indirect jump targets.
    
    Tested on Intel Tiger Lake under CET enabled Linux.

 src/liblzma/check/crc32_x86.S | 9 +++++++++
 src/liblzma/check/crc64_x86.S | 9 +++++++++
 2 files changed, 18 insertions(+)

commit 0983682f87ae1a9efcbe4e45579d53c9bca16500
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-12-16 18:33:29 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 880596e4b8731b24f6c19cb737ed7d06fe92dda2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-12-16 18:30:14 +0200

    Build: Don't build bundles on Apple OSes.
    
    Thanks to Daniel Packard.

 CMakeLists.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 29050c79f1f83bf73714146a44dfbb4d26e27920
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-12-05 22:44:03 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 94fd72474973978f8369be7c23f77c3b741953a6
Author: Adam Borowski <kilobyte@angband.pl>
Date:   2020-09-25 03:35:18 +0200

    Scripts: Add zstd support to xzgrep.
    
    Thanks to Adam Borowski.

 src/scripts/xzgrep.1  | 9 ++++++---
 src/scripts/xzgrep.in | 1 +
 2 files changed, 7 insertions(+), 3 deletions(-)

commit 13c58ac13e1a84c30de24191931af425286d0550
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-11-17 20:51:48 +0200

    CMake: Fix compatibility with CMake 3.13.
    
    The syntax "if(DEFINED CACHE{FOO})" requires CMake 3.14.
    In some other places the code treats the cache variables
    like normal variables already (${FOO} or if(FOO) is used,
    not ${CACHE{FOO}).
    
    Thanks to ygrek for reporting the bug on IRC.

 CMakeLists.txt              | 2 +-
 cmake/tuklib_cpucores.cmake | 4 ++--
 cmake/tuklib_physmem.cmake  | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

commit 8f7d3345a7c31a20a544dc04232715b1bcdc91f7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-11-01 22:56:43 +0200

    Update THANKS.

 THANKS | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit ca7bcdb30f14e7cd66fe357d10046442eee648a0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-11-01 22:34:25 +0200

    xz: Avoid unneeded \f escapes on the man page.
    
    I don't want to use \c in macro arguments but groff_man(7)
    suggests that \f has better portability. \f would be needed
    for the .TP strings for portability reasons anyway.
    
    Thanks to Bjarni Ingi Gislason.

 src/xz/xz.1 | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

commit 3b40a0792ee5ba0dd4d9ab129b4443585bbfdd14
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-11-01 19:09:53 +0200

    xz: Use non-breaking spaces when intentionally using more than one space.
    
    This silences some style checker warnings. Seems that spaces
    in the beginning of a line don't need this treatment.
    
    Thanks to Bjarni Ingi Gislason.

 src/xz/xz.1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d85699c36df5f839b82800a6e63151eff25677eb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-11-01 18:49:37 +0200

    xz: Protect the ellipsis (...) on the man page with \&.
    
    This does it only when ... appears outside macro calls.
    
    Thanks to Bjarni Ingi Gislason.

 src/xz/xz.1 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d996ae66176206de9b4d485b250a88b2d9ded151
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-11-01 18:41:21 +0200

    xz: Avoid the abbreviation "e.g." on the man page.
    
    A few are simply omitted, most are converted to "for example"
    and surrounded with commas. Sounds like that this is better
    style, for example, man-pages(7) recommends avoiding such
    abbreviations except in parenthesis.
    
    Thanks to Bjarni Ingi Gislason.

 src/xz/xz.1 | 66 ++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 33 insertions(+), 33 deletions(-)

commit d16d0d198ade6820ed9d39ba6a7068b55b8bf6dc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-07-12 23:10:03 +0300

    xz man page: Change \- (minus) to \(en (en-dash) for a numeric range.
    
    Docs of ancient troff/nroff mention \(em (em-dash) but not \(en
    and \- was used for both minus and en-dash. I don't know how
    portable \(en is nowadays but it can be changed back if someone
    complains. At least GNU groff and OpenBSD's mandoc support it.
    
    Thanks to Bjarni Ingi Gislason for the patch.

 src/xz/xz.1 | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 3acf1adfc768c7d2290e138bcb1109145e4d8160
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-07-12 20:46:24 +0300

    Windows: Fix building of resource files when config.h isn't used.
    
    Now CMake + Visual Studio works for building liblzma.dll.
    
    Thanks to Markus Rickert.

 src/common/common_w32res.rc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit adba06e649875b45b5b671f5ab45f694144938d4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-04-06 19:31:50 +0300

    src/scripts/xzgrep.1: Filenames to xzgrep are optional.
    
    xzgrep --help was correct already.

 src/scripts/xzgrep.1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7be1dcf8585e150bffb57a6ad499a63edd0d3494
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-12 17:59:41 +0300

    Translations: Add Portuguese translation.
    
    Jia Tan made white-space changes and also changed "Language: pt_BR\n"
    to pt. The translator wasn't reached so I'm hoping these changes
    are OK and will commit it without translator's approval.
    
    Thanks to Pedro Albuquerque and Jia Tan.

 po/LINGUAS |    1 +
 po/pt.po   | 1001 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 1002 insertions(+)

commit 3f94d2a568290bf770a762ee69403955fdb0a228
Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
Date:   2020-03-26 22:17:31 +0000

    src/script/xzgrep.1: Remove superfluous '.RB'
    
    Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
    
      [ "test-groff" is a developmental version of "groff" ]
    
    Input file is ./src/scripts/xzgrep.1
    
    <src/scripts/xzgrep.1>:20 (macro RB): only 1 argument, but more are expected
    <src/scripts/xzgrep.1>:23 (macro RB): only 1 argument, but more are expected
    <src/scripts/xzgrep.1>:26 (macro RB): only 1 argument, but more are expected
    <src/scripts/xzgrep.1>:29 (macro RB): only 1 argument, but more are expected
    <src/scripts/xzgrep.1>:32 (macro RB): only 1 argument, but more are expected
    
     "abc..." does not mean the same as "abc ...".
    
      The output from nroff and troff is unchanged except for the space
    between "file" and "...".
    
    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>

 src/scripts/xzgrep.1 | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 725d9791c90b7cef19a3ab4d7469b567101c2a87
Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
Date:   2020-03-30 21:56:36 +0000

    xzgrep.1: Delete superfluous '.PP'
    
    Summary:
    
    mandoc -T lint xzgrep.1 :
    mandoc: xzgrep.1:79:2: WARNING: skipping paragraph macro: PP empty
    
      There is no change in the output of "nroff" and "troff".
    
    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>

 src/scripts/xzgrep.1 | 1 -
 1 file changed, 1 deletion(-)

commit 55c2555c5d420e9251a97828022e5c8c4d786dac
Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
Date:   2020-03-26 21:16:18 +0000

    src/xz/xz.1: Correct misused two-fonts macros
    
    Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
    
      [ "test-groff" is a developmental version of "groff" ]
    
    Input file is ./src/xz/xz.1
    
    <src/xz/xz.1>:408 (macro BR): only 1 argument, but more are expected
    <src/xz/xz.1>:1009 (macro BR): only 1 argument, but more are expected
    <src/xz/xz.1>:1743 (macro BR): only 1 argument, but more are expected
    <src/xz/xz.1>:1920 (macro BR): only 1 argument, but more are expected
    <src/xz/xz.1>:2213 (macro BR): only 1 argument, but more are expected
    
      Output from nroff and troff is unchanged, except for a font change of a
    full stop (.).
    
    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>

 src/xz/xz.1 | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 55e3a8e0e437279223c108085dccddc60b06036c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-10 21:16:40 +0300

    Translations: Add Serbian translation.
    
    Quite a few white-space changes were made by Jia Tan to make
    this look good. Contacting the translator didn't succeed so
    I'm committing this without getting translator's approval.
    
    Thanks to Мирослав Николић (Miroslav Nikolic) and Jia Tan.

 po/LINGUAS |   1 +
 po/sr.po   | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 988 insertions(+)

commit 4e04279cbe8c1af25dde42ebf740722deded27a0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-04 23:51:36 +0300

    Translations: Add Swedish translation.
    
    Thanks to Sebastian Rasmussen and Jia Tan.

 po/LINGUAS |   1 +
 po/sv.po   | 983 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 984 insertions(+)

commit 27f55e96b0cdae3fc51b409663b6c017a88ea8bc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-04 23:40:27 +0300

    Translations: Add Esperanto translation.
    
    Thanks to Keith Bowes and Jia Tan.

 po/LINGUAS |   1 +
 po/eo.po   | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 985 insertions(+)

commit be31be9e8f12cf6fce4be1ab822660ad411e803b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-07-01 00:22:33 +0300

    Translations: Add Catalan translation.
    
    Thanks to Jordi Mas and Jia Tan.

 po/LINGUAS |    1 +
 po/ca.po   | 1076 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 1077 insertions(+)

commit 30e3ad040f4e7ba1a0e97179d6fd62a1201c863b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-06-30 17:47:08 +0300

    Translations: Add Ukrainian translation.
    
    Thanks to Yuri Chornoivan and Jia Tan.

 po/LINGUAS |   1 +
 po/uk.po   | 996 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 997 insertions(+)

commit f2e2cce49f7b07e8985ba6add4b4ca79b22eddd0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-06-30 17:45:26 +0300

    Translators: Add Romanian translation.
    
    Thanks to Remus-Gabriel Chelu and Jia Tan.

 po/LINGUAS |    1 +
 po/ro.po   | 1016 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 1017 insertions(+)

commit a12fd5bad2aa922c9b4cf96d16632696f3e0584e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-06-29 18:33:32 +0300

    Translations: Update Brazilian Portuguese translation.
    
    One msgstr was changed. The diff is long due to changes
    in the source code line numbers in the comments.
    
    Thanks to Rafael Fontenelle.

 po/pt_BR.po | 186 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 92 insertions(+), 94 deletions(-)

commit dd713288d27a0d64426d74effe9187087496333c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-06-29 18:04:44 +0300

    Translations: Add Croatian translation.
    
    Thanks to Božidar Putanec and Jia Tan.

 po/LINGUAS |   1 +
 po/hr.po   | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 988 insertions(+)

commit 016980f26974623a4bcd889b6ba5a0caa4b2f57f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-06-29 17:58:48 +0300

    Translations: Add Spanish translation.
    
    Thanks to Cristian Othón Martínez Vera and Jia Tan.

 po/LINGUAS |   1 +
 po/es.po   | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 985 insertions(+)

commit 4fe9578c3aab21e6ceb8f0ea470bc87821f5907f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-06-29 17:49:43 +0300

    Translations: Add Korean translation.
    
    Thanks to Seong-ho Cho and Jia Tan.

 po/LINGUAS |   1 +
 po/ko.po   | 972 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 973 insertions(+)

commit cf1ec5518e6e3d89f57685ac83b81ab228e48bcd
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-23 18:09:40 +0200

    v5.2-specific typo fix from fossies.org.

 README | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 968bbfea09447a4f52e856bb97301aca80e40dcb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-23 18:07:50 +0200

    Typo fixes from fossies.org.
    
    https://fossies.org/linux/misc/xz-5.2.5.tar.xz/codespell.html

 Makefile.am                     | 2 +-
 doc/examples/01_compress_easy.c | 2 +-
 src/liblzma/api/lzma/base.h     | 2 +-
 src/liblzma/check/crc32_x86.S   | 2 +-
 src/liblzma/common/index.c      | 2 +-
 src/xz/xz.1                     | 4 ++--
 6 files changed, 7 insertions(+), 7 deletions(-)

commit 2327a461e1afce862c22269b80d3517801103c1b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-17 16:27:42 +0200

    Bump version and soname for 5.2.5.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 3be82d2f7dc882258caf0f0a69214e5916b2bdda
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-17 16:26:04 +0200

    Update NEWS for 5.2.5.

 NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 105 insertions(+)

commit ab3e57539c7337f0653b13b75dbc5d03ade9700e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-16 21:57:21 +0200

    Translations: Rebuild cs.po to avoid incorrect fuzzy strings.
    
    "make dist" updates the .po files and the fuzzy strings would
    result in multiple very wrong translations.

 po/cs.po | 592 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 322 insertions(+), 270 deletions(-)

commit 3a6f38309dc5d44d8a63ebb337b6b2028561c93e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-16 20:01:37 +0200

    README: Update outdated sections.

 README | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

commit 9cc0901798217e258e91c13cf6fda7ad42ba108c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-16 19:46:27 +0200

    README: Mention that translatable strings will change after 5.2.x.

 README | 74 +++---------------------------------------------------------------
 1 file changed, 3 insertions(+), 71 deletions(-)

commit cc163574249f6a4a66f3dc09d6fe5a71bee24fab
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-16 19:39:45 +0200

    README: Mention that man pages can be translated.

 README | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit ca261994edc3f2d03d5589c037171c63471ee9dc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-16 17:30:39 +0200

    Translations: Add partial Danish translation.
    
    I made a few minor white space changes without getting them
    approved by the Danish translation team.

 po/LINGUAS |   1 +
 po/da.po   | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 897 insertions(+)

commit 51cd5d051fc730d61411dee292e863582784e189
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-16 16:43:29 +0200

    Update INSTALL.generic from Automake 1.16.1.

 INSTALL.generic | 321 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 162 insertions(+), 159 deletions(-)

commit 69d694e5f1beae2bbfa3b6c348ec0ec5f14b5cd0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-15 15:27:22 +0200

    Update INSTALL for Windows and DOS and add preliminary info for z/OS.

 INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 41 insertions(+), 10 deletions(-)

commit 2c3b1bb80a3ca7e09728fe4d7a1d8648a5cb9bca
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-15 15:26:20 +0200

    Build: Update m4/ax_pthread.m4 from Autoconf Archive (again).

 m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++--------------------------
 1 file changed, 117 insertions(+), 102 deletions(-)

commit 74a5af180a6a6c4b8c90cefb37ee900d3fea7dc6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-11 21:15:35 +0200

    xz: Never use thousand separators in DJGPP builds.
    
    DJGPP 2.05 added support for thousands separators but it's
    broken at least under WinXP with Finnish locale that uses
    a non-breaking space as the thousands separator. Workaround
    by disabling thousands separators for DJGPP builds.

 src/xz/util.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit ceba0d25e826bcdbf64bb4cb03385a2a66f8cbcb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-11 19:38:08 +0200

    DOS: Update dos/Makefile for DJGPP 2.05.
    
    It doesn't need -fgnu89-inline like 2.04beta did.

 dos/Makefile | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 29e5bd71612253281fb22bbaa0a566990a74dcc3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-11 19:36:07 +0200

    DOS: Update instructions in dos/INSTALL.txt.

 dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++-----------------------------
 1 file changed, 29 insertions(+), 30 deletions(-)

commit 00a037ee9c8ee5a03cf9744e05570ae93d56b875
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-11 17:58:51 +0200

    DOS: Update config.h.
    
    The added defines assume GCC >= 4.8.

 dos/config.h | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 4ec2feaefa310b4249eb41893caf526e5c51ee39
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-11 22:37:54 +0200

    Translations: Add hu, zh_CN, and zh_TW.
    
    I made a few white space changes to these without getting them
    approved by the translation teams. (I tried to contact the hu and
    zh_TW teams but didn't succeed. I didn't contact the zh_CN team.)

 po/LINGUAS  |   3 +
 po/hu.po    | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 2907 insertions(+)

commit b6ed09729ae408be4533a0ddbc7df3d6f566846a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-11 14:33:30 +0200

    Translations: Update vi.po to match the file from the TP.
    
    The translated strings haven't been updated but word wrapping
    is different.

 po/vi.po | 407 ++++++++++++++++++++++++++++-----------------------------------
 1 file changed, 179 insertions(+), 228 deletions(-)

commit 7c85e8953ced204c858101872a15183e4639e9fb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-11 14:18:03 +0200

    Translations: Add fi and pt_BR, and update de, fr, it, and pl.
    
    The German translation isn't identical to the file in
    the Translation Project but the changes (white space changes
    only) were approved by the translator Mario Blättermann.

 po/LINGUAS  |    2 +
 po/de.po    |  476 ++++++++++++++--------------
 po/fi.po    |  974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 po/fr.po    |  272 ++++++++--------
 po/it.po    |  479 ++++++++++++----------------
 po/pl.po    |  239 +++++++-------
 po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 2697 insertions(+), 746 deletions(-)

commit 7da3ebc67fb5414034685ec16c7a29dad03dfa9b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-25 21:35:14 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 1acc48794364606c9091cae6fa56db75a1325114
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-03-11 13:05:29 +0200

    Build: Add very limited experimental CMake support.
    
    This version matches CMake files in the master branch (commit
    265daa873c0d871f5f23f9b56e133a6f20045a0a) except that this omits
    two source files that aren't in v5.2 and in the beginning of
    CMakeLists.txt the first paragraph in the comment is slightly
    different to point out possible issues in building shared liblzma.

 CMakeLists.txt              | 659 ++++++++++++++++++++++++++++++++++++++++++++
 cmake/tuklib_common.cmake   |  49 ++++
 cmake/tuklib_cpucores.cmake | 175 ++++++++++++
 cmake/tuklib_integer.cmake  | 102 +++++++
 cmake/tuklib_mbstr.cmake    |  20 ++
 cmake/tuklib_physmem.cmake  | 150 ++++++++++
 cmake/tuklib_progname.cmake |  19 ++
 7 files changed, 1174 insertions(+)

commit 9acc6abea1552803c74c1486fbb10af119550772
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-27 20:24:27 +0200

    Build: Add support for --no-po4a option to autogen.sh.
    
    Normally, if po4a isn't available, autogen.sh will return
    with non-zero exit status. The option --no-po4a can be useful
    when one knows that po4a isn't available but wants autogen.sh
    to still return with zero exit status.

 autogen.sh | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit c8853b31545db7bd0551be85949624b1261efd47
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-24 23:37:07 +0200

    Update m4/.gitignore.

 m4/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 901eb4a8c992354c3ea482f5bad60a1f8ad6fcc8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-24 23:01:00 +0200

    liblzma: Remove unneeded <sys/types.h> from fastpos_tablegen.c.
    
    This file only generates fastpos_table.c.
    It isn't built as a part of liblzma.

 src/liblzma/lzma/fastpos_tablegen.c | 1 -
 1 file changed, 1 deletion(-)

commit ac35c9585fb734b7a19785d490c152e0b8cd4663
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-22 14:15:07 +0200

    Use defined(__GNUC__) before __GNUC__ in preprocessor lines.
    
    This should silence the equivalent of -Wundef in compilers that
    don't define __GNUC__.

 src/common/sysdefs.h   | 3 ++-
 src/liblzma/api/lzma.h | 5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

commit fb9cada7cfade1156d6277717280e05b5cd342d6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-21 17:40:02 +0200

    liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA.
    
    This gives a tiny encoder speed improvement. This could have been done
    in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but
    it was forgotten.

 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

commit 6117955af0b9cef5acde7859e86f773692b5f43c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-21 17:01:15 +0200

    Build: Add visibility.m4 from gnulib.
    
    Appears that this file used to get included as a side effect of
    gettext. After the change to gettext version requirements this file
    no longer got copied to the package and so the build was broken.

 m4/.gitignore    |  1 -
 m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 77 insertions(+), 1 deletion(-)

commit c2cc64d78c098834231f9cfd7d852c9cd8950d74
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-21 16:10:44 +0200

    xz: Silence a warning when sig_atomic_t is long int.
    
    It can be true at least on z/OS.

 src/xz/signals.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b6314aa275b35c714e0a191d0b2e9b6106129ea9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-21 15:59:26 +0200

    xz: Avoid unneeded access of a volatile variable.

 src/xz/signals.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f772a1572f723e5dc7d2d32e1d4287ac7a0da55e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-21 01:24:18 +0200

    tuklib_integer.m4: Optimize the check order.
    
    The __builtin byteswapping is the preferred one so check for it first.

 m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++-------------------------
 1 file changed, 29 insertions(+), 27 deletions(-)

commit 641042e63f665f3231c2fd1241fd3dddda3fb313
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-20 18:54:04 +0200

    tuklib_exit: Add missing header.
    
    strerror() needs <string.h> which happened to be included via
    tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H
    was defined. This wasn't tested without config.h before so it
    had worked fine.

 src/common/tuklib_exit.c | 1 +
 1 file changed, 1 insertion(+)

commit dbd55a69e530fec9ae866aaf6c3ccc0b4daf1f1f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-16 11:18:28 +0200

    sysdefs.h: Omit the conditionals around string.h and limits.h.
    
    string.h is used unconditionally elsewhere in the project and
    configure has always stopped if limits.h is missing, so these
    headers must have been always available even on the weirdest
    systems.

 src/common/sysdefs.h | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

commit 9294909861e6d22b32418467e0e988f953a82264
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-15 15:07:11 +0200

    Build: Bump Autoconf and Libtool version requirements.
    
    There is no specific reason for this other than blocking
    the most ancient versions. These are still old:
    
    Autoconf 2.69 (2012)
    Automake 1.12 (2012)
    gettext 0.19.6 (2015)
    Libtool 2.4 (2010)

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit bd09081bbdf552f730030d2fd0e5e39ccb3936af
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-15 03:08:32 +0200

    Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6.
    
    This bumps the version requirement from 0.19 (from 2014) to
    0.19.6 (2015).
    
    Using only the old AM_GNU_GETTEXT_VERSION results in old
    gettext infrastructure being placed in the package. By using
    both macros we get the latest gettext files while the other
    programs in the Autotools family can still see the old macro.

 configure.ac | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 1e5e08d86534aec7ca957982c7f6e90203c19e9f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-14 20:42:06 +0200

    Translations: Add German translation of the man pages.
    
    Thanks to Mario Blättermann.

 po4a/de.po     | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 po4a/po4a.conf |    2 +-
 2 files changed, 5533 insertions(+), 1 deletion(-)

commit 4b1447809ffbc0d77c0ad456bd6b3afcf0b8623e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-07 15:32:21 +0200

    Build: Add support for translated man pages using po4a.
    
    The dependency on po4a is optional. It's never required to install
    the translated man pages when xz is built from a release tarball.
    If po4a is missing when building from xz.git, the translated man
    pages won't be generated but otherwise the build will work normally.
    
    The translations are only updated automatically by autogen.sh and
    by "make mydist". This makes it easy to keep po4a as an optional
    dependency and ensures that I won't forget to put updated
    translations to a release tarball.
    
    The translated man pages aren't installed if --disable-nls is used.
    
    The installation of translated man pages abuses Automake internals
    by calling "install-man" with redefined dist_man_MANS and man_MANS.
    This makes the hairy script code slightly less hairy. If it breaks
    some day, this code needs to be fixed; don't blame Automake developers.
    
    Also, this adds more quotes to the existing shell script code in
    the Makefile.am "-hook"s.

 Makefile.am             |  4 ++++
 autogen.sh              |  8 ++++---
 po4a/.gitignore         |  2 ++
 po4a/po4a.conf          | 14 +++++++++++
 po4a/update-po          | 45 ++++++++++++++++++++++++++++++++++
 src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------
 src/xz/Makefile.am      | 50 +++++++++++++++++++++++++++-----------
 src/xzdec/Makefile.am   | 55 ++++++++++++++++++++++++++++++++----------
 8 files changed, 197 insertions(+), 45 deletions(-)

commit 882fcfdcd86525cc5c6f6d0bf0230d0089206d13
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-06 00:04:42 +0200

    Update THANKS (sync with the master branch).

 THANKS | 3 +++
 1 file changed, 3 insertions(+)

commit 134bb7765815d5f265eb0bc9e6ebacd9ae4a52bc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-05 22:35:06 +0200

    Update tests/.gitignore.

 .gitignore | 4 ++++
 1 file changed, 4 insertions(+)

commit 6912472fafb656be8f4c5b4ac9ea28fea3065de4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-05 22:28:51 +0200

    Update m4/.gitignore.

 m4/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 68c60735bbb6e51d4205ba8a9fde307bcfb22f8c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-05 20:47:38 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit e1beaa74bc7cb5a409d59b55870e01ae7784ce3a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-05 20:33:50 +0200

    xz: Comment out annoying sandboxing messages.

 src/xz/file_io.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 8238192652290df78bd728b20e3f6542d1a2819e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-05 19:33:37 +0200

    Build: Workaround a POSIX shell detection problem on Solaris.
    
    I don't know if the problem is in gnulib's gl_POSIX_SHELL macro
    or if xzgrep does something that isn't in POSIX. The workaround
    adds a special case for Solaris: if /usr/xpg4/bin/sh exists and
    gl_cv_posix_shell wasn't overriden on the configure command line,
    use that shell for xzgrep and other scripts. That shell is known
    to work and exists on most Solaris systems.

 configure.ac | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 93a1f61e892e145607dd938e3b30098af19a1672
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-03 22:03:50 +0200

    Build: Update m4/ax_pthread.m4 from Autoconf Archive.

 m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 279 insertions(+), 119 deletions(-)

commit d0daa21792ff861e5423bbd82aaa6c8ba9fa0462
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-01 19:56:18 +0200

    xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz.
    
    See the code comment for reasoning. It's far from perfect but
    hopefully good enough for certain cases while hopefully doing
    nothing bad in other situations.
    
    At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference
    on how xz scales down the number of threads.
    
    The limit has to be a few MiB below 4096 MiB because otherwise
    things like "xz --lzma2=dict=500MiB" won't scale down the dict
    size enough and xz cannot allocate enough memory. With
    "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had
    to be no more than 4085 MiB. Some safety margin is good though.
    
    This is hack but it should be useful when running 32-bit xz on
    a 64-bit kernel that gives full 4 GiB address space to xz.
    Hopefully this is enough to solve this:
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1196786
    
    FreeBSD has a patch that limits the result in tuklib_physmem()
    to SIZE_MAX on 32-bit systems. While I think it's not the way
    to do it, the results on --memlimit-compress have been good. This
    commit should achieve practically identical results for compression
    while leaving decompression and tuklib_physmem() and thus
    lzma_physmem() unaffected.

 src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++-
 src/xz/xz.1       | 21 ++++++++++++++++++++-
 2 files changed, 51 insertions(+), 2 deletions(-)

commit 4433c2dc5727ee6aef570e001a5a024e0d94e609
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-01-26 20:53:25 +0200

    xz: Set the --flush-timeout deadline when the first input byte arrives.
    
    xz --flush-timeout=2000, old version:
    
      1. xz is started. The next flush will happen after two seconds.
      2. No input for one second.
      3. A burst of a few kilobytes of input.
      4. No input for one second.
      5. Two seconds have passed and flushing starts.
    
    The first second counted towards the flush-timeout even though
    there was no pending data. This can cause flushing to occur more
    often than needed.
    
    xz --flush-timeout=2000, after this commit:
    
      1. xz is started.
      2. No input for one second.
      3. A burst of a few kilobytes of input. The next flush will
         happen after two seconds counted from the time when the
         first bytes of the burst were read.
      4. No input for one second.
      5. No input for another second.
      6. Two seconds have passed and flushing starts.

 src/xz/coder.c   | 6 +-----
 src/xz/file_io.c | 6 +++++-
 src/xz/mytime.c  | 1 -
 3 files changed, 6 insertions(+), 7 deletions(-)

commit acc0ef3ac80f18e349c6d0252177707105c0a29c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-01-26 20:19:19 +0200

    xz: Move flush_needed from mytime.h to file_pair struct in file_io.h.

 src/xz/coder.c   | 3 ++-
 src/xz/file_io.c | 3 ++-
 src/xz/file_io.h | 3 +++
 src/xz/mytime.c  | 3 ---
 src/xz/mytime.h  | 4 ----
 5 files changed, 7 insertions(+), 9 deletions(-)

commit 4afe69d30b66812682a2016ee18441958019cbb2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-01-26 14:49:22 +0200

    xz: coder.c: Make writing output a separate function.
    
    The same code sequence repeats so it's nicer as a separate function.
    Note that in one case there was no test for opt_mode != MODE_TEST,
    but that was only because that condition would always be true, so
    this commit doesn't change the behavior there.

 src/xz/coder.c | 30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

commit ec26f3ace5f9b260ca91508030f07465ae2f9f78
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-01-26 14:13:42 +0200

    xz: Fix semi-busy-waiting in xz --flush-timeout.
    
    When input blocked, xz --flush-timeout=1 would wake up every
    millisecond and initiate flushing which would have nothing to
    flush and thus would just waste CPU time. The fix disables the
    timeout when no input has been seen since the previous flush.

 src/xz/coder.c   |  4 ++++
 src/xz/file_io.c | 15 +++++++++++----
 src/xz/file_io.h |  4 ++++
 3 files changed, 19 insertions(+), 4 deletions(-)

commit 38915703241e69a64f133ff9a02ec9100c6019c6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-01-26 13:47:31 +0200

    xz: Refactor io_read() a bit.

 src/xz/file_io.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

commit f6d24245349cecfae6ec0d2366fa80716c9f6d37
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-01-26 13:37:08 +0200

    xz: Update a comment in file_io.h.

 src/xz/file_io.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 15b55d5c63d27f81776edb1abc05872a751fc674
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-01-26 13:27:51 +0200

    xz: Move the setting of flush_needed in file_io.c to a nicer location.

 src/xz/file_io.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 609c7067859146ffc62ac655f6ba53599c891801
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2020-02-05 19:56:09 +0200

    xz: Enable Capsicum sandboxing by default if available.
    
    It has been enabled in FreeBSD for a while and reported to work fine.
    
    Thanks to Xin Li.

 INSTALL      | 6 ------
 configure.ac | 8 ++++----
 2 files changed, 4 insertions(+), 10 deletions(-)

commit 00517d125cc26ecece0eebb84c1c3975cd19bee0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-12-31 22:41:45 +0200

    Rename unaligned_read32ne to read32ne, and similarly for the others.

 src/common/tuklib_integer.h               | 64 +++++++++++++++----------------
 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/memcmplen.h            |  9 ++---
 src/liblzma/common/stream_flags_decoder.c |  6 +--
 src/liblzma/common/stream_flags_encoder.c |  8 ++--
 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   |  3 +-
 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 +--
 15 files changed, 54 insertions(+), 62 deletions(-)

commit 52d89d8443c4a31a69c0701062f2c7711d82bbed
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-12-31 00:29:48 +0200

    Rename read32ne to aligned_read32ne, and similarly for the others.
    
    Using the aligned methods requires more care to ensure that
    the address really is aligned, so it's nicer if the aligned
    methods are prefixed. The next commit will remove the unaligned_
    prefix from the unaligned methods which in liblzma are used in
    more places than the aligned ones.

 src/common/tuklib_integer.h    | 56 +++++++++++++++++++++---------------------
 src/liblzma/check/crc32_fast.c |  4 +--
 src/liblzma/check/crc64_fast.c |  4 +--
 3 files changed, 32 insertions(+), 32 deletions(-)

commit 850620468b57d49f16093e5870d1050886fcb37a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-12-31 00:18:24 +0200

    Revise tuklib_integer.h and .m4.
    
    Add a configure option --enable-unsafe-type-punning to get the
    old non-conforming memory access methods. It can be useful with
    old compilers or in some other less typical situations but
    shouldn't normally be used.
    
    Omit the packed struct trick for unaligned access. While it's
    best in some cases, this is simpler. If the memcpy trick doesn't
    work, one can request unsafe type punning from configure.
    
    Because CRC32/CRC64 code needs fast aligned reads, if no very
    safe way to do it is found, type punning is used as a fallback.
    This sucks but since it currently works in practice, it seems to
    be the least bad option. It's never needed with GCC >= 4.7 or
    Clang >= 3.6 since these support __builtin_assume_aligned and
    thus fast aligned access can be done with the memcpy trick.
    
    Other things:
      - Support GCC/Clang __builtin_bswapXX
      - Cleaner bswap fallback macros
      - Minor cleanups

 m4/tuklib_integer.m4        |  43 ++++
 src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++--------------------
 2 files changed, 314 insertions(+), 217 deletions(-)

commit a45badf0342666462cc6a7107a071418570ab773
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-12-29 22:51:58 +0200

    Tests: Hopefully fix test_check.c to work on EBCDIC systems.
    
    Thanks to Daniel Richard G.

 tests/test_check.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit c9a8071e6690a8db8a485c075920df254e7c70ea
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-09-24 23:02:40 +0300

    Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris.
    
    This adds a configure option --enable-path-for-scripts=PREFIX
    which defaults to empty except on Solaris it is /usr/xpg4/bin
    to make POSIX grep and others available. The Solaris case had
    been documented in INSTALL with a manual fix but it's better
    to do this automatically since it is needed on most Solaris
    systems anyway.
    
    Thanks to Daniel Richard G.

 INSTALL               | 43 +++++++++++++++++++++++++++++++++++--------
 configure.ac          | 26 ++++++++++++++++++++++++++
 src/scripts/xzdiff.in |  1 +
 src/scripts/xzgrep.in |  1 +
 src/scripts/xzless.in |  1 +
 src/scripts/xzmore.in |  1 +
 6 files changed, 65 insertions(+), 8 deletions(-)

commit aba140e2df3ff63ad124ae997de16d517b98ca50
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-07-12 18:57:43 +0300

    Fix comment typos in tuklib_mbstr* files.

 src/common/tuklib_mbstr.h       | 2 +-
 src/common/tuklib_mbstr_fw.c    | 2 +-
 src/common/tuklib_mbstr_width.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 710f5bd769a5d2bd8684256c2727d15350ee2ab8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-07-12 18:30:46 +0300

    Add missing include to tuklib_mbstr_width.c.
    
    It didn't matter in XZ Utils because sysdefs.h
    includes string.h anyway.

 src/common/tuklib_mbstr_width.c | 1 +
 1 file changed, 1 insertion(+)

commit 0e491aa8cd72e0100cd15c1b9469cd57fae500b0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-25 23:15:21 +0300

    liblzma: Fix a buggy comment.

 src/liblzma/lz/lz_encoder_mf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bfc245569f340a75bd71ad32a6beba786712683b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-25 00:16:06 +0300

    configure.ac: Fix a typo in a comment.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f18eee9d15a22c8449ef395a05f0eb637c4ad253
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-25 00:08:13 +0300

    Tests: Silence warnings from clang -Wassign-enum.
    
    Also changed 999 to 99 so it fits even if lzma_check happened
    to be 8 bits wide.

 tests/test_block_header.c | 3 ++-
 tests/test_stream_flags.c | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 25f74554723e8deabc66fed1abf0ec27a4ed19d5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-24 23:52:17 +0300

    liblzma: Add a comment.

 src/liblzma/common/stream_encoder_mt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 44eb961f2a51d02420d017bc5ff470360663650c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-24 23:45:21 +0300

    liblzma: Silence clang -Wmissing-variable-declarations.

 src/liblzma/check/crc32_table.c | 3 +++
 src/liblzma/check/crc64_table.c | 3 +++
 2 files changed, 6 insertions(+)

commit 267afcd9955e668c1532b069230c21c348eb4f82
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-24 22:57:43 +0300

    xz: Silence a warning from clang -Wsign-conversion in main.c.

 src/xz/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0e3c4002f809311ecef239b05e556d9c462b5703
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-24 22:47:39 +0300

    liblzma: Remove incorrect uses of lzma_attribute((__unused__)).
    
    Caught by clang -Wused-but-marked-unused.

 src/liblzma/common/alone_decoder.c | 3 +--
 src/liblzma/common/alone_encoder.c | 3 +--
 src/liblzma/lz/lz_decoder.c        | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)

commit cb708e8fa3405ec13a0ebfebbbf2793f927deab1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-24 20:53:55 +0300

    Tests: Silence a warning from -Wsign-conversion.

 tests/create_compress_files.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit c8cace3d6e965c0fb537591372bf71b9357dd76c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-24 20:45:49 +0300

    xz: Fix an integer overflow with 32-bit off_t.
    
    Or any off_t which isn't very big (like signed 64 bit integer
    that most system have). A small off_t could overflow if the
    file being decompressed had long enough run of zero bytes,
    which would result in corrupt output.

 src/xz/file_io.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 65a42741e290fbcd85dfc5db8a62c4bce5f7712c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-24 00:57:23 +0300

    Tests: Remove a duplicate branch from tests/tests.h.
    
    The duplication was introduced about eleven years ago and
    should have been cleaned up back then already.
    
    This was caught by -Wduplicated-branches.

 tests/tests.h | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

commit 5c4fb60e8df026e933afab0cfe0a8b55be20036c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-23 23:22:45 +0300

    tuklib_mbstr_width: Fix a warning from -Wsign-conversion.

 src/common/tuklib_mbstr_width.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 37df03ce52ce53710e1513387648763f8a744154
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-23 23:19:34 +0300

    xz: Fix some of the warnings from -Wsign-conversion.

 src/xz/args.c    | 4 ++--
 src/xz/coder.c   | 4 ++--
 src/xz/file_io.c | 5 +++--
 src/xz/message.c | 4 ++--
 src/xz/mytime.c  | 4 ++--
 src/xz/options.c | 2 +-
 src/xz/util.c    | 4 ++--
 7 files changed, 14 insertions(+), 13 deletions(-)

commit 7c65ae0f5f2e2431f88621e8fe6d1dc7907e30c1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-23 22:27:45 +0300

    tuklib_cpucores: Silence warnings from -Wsign-conversion.

 src/common/tuklib_cpucores.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit a502dd1d000b598406637d452f535f4bbd43e2a4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-23 21:40:47 +0300

    xzdec: Fix warnings from -Wsign-conversion.

 src/xzdec/xzdec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a45d1a5374ceb22e23255b0b595b9e641e9860af
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-23 21:38:56 +0300

    liblzma: Fix warnings from -Wsign-conversion.
    
    Also, more parentheses were added to the literal_subcoder
    macro in lzma_comon.h (better style but no functional change
    in the current usage).

 src/liblzma/common/block_header_decoder.c |  2 +-
 src/liblzma/delta/delta_decoder.c         |  2 +-
 src/liblzma/lzma/fastpos.h                |  2 +-
 src/liblzma/lzma/lzma2_decoder.c          |  8 ++++----
 src/liblzma/lzma/lzma_common.h            |  3 ++-
 src/liblzma/lzma/lzma_decoder.c           | 16 ++++++++--------
 src/liblzma/simple/arm.c                  |  6 +++---
 src/liblzma/simple/armthumb.c             |  8 ++++----
 src/liblzma/simple/ia64.c                 |  2 +-
 src/liblzma/simple/powerpc.c              |  9 +++++----
 src/liblzma/simple/x86.c                  |  2 +-
 11 files changed, 31 insertions(+), 29 deletions(-)

commit 4ff87ddf80ed7cb233444cddd86ab1940b5b55ec
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-23 19:33:55 +0300

    tuklib_integer: Silence warnings from -Wsign-conversion.

 src/common/tuklib_integer.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit ed1a9d33984a3a37ae9a775a46859850d98ea4d0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-20 19:40:30 +0300

    tuklib_integer: Fix usage of conv macros.
    
    Use a temporary variable instead of e.g.
    conv32le(unaligned_read32ne(buf)) because the macro can
    evaluate its argument multiple times.

 src/common/tuklib_integer.h | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 612c88dfc08e2c572623954ecfde541d21c84882
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-03 20:44:19 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 85da31d8b882b8b9671ab3e3d74d88bd945cd0bb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-03 20:41:54 +0300

    liblzma: Fix comments.
    
    Thanks to Bruce Stark.

 src/liblzma/common/alone_encoder.c        | 4 ++--
 src/liblzma/common/block_util.c           | 2 +-
 src/liblzma/common/common.c               | 2 +-
 src/liblzma/common/filter_common.h        | 2 +-
 src/liblzma/common/filter_decoder.h       | 2 +-
 src/liblzma/common/filter_flags_encoder.c | 2 +-
 6 files changed, 7 insertions(+), 7 deletions(-)

commit 6a73a7889587aa394e236c7e9e4f870b44851036
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-02 00:50:59 +0300

    liblzma: Fix one more unaligned read to use unaligned_read16ne().

 src/liblzma/lz/lz_encoder_hash.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ce59b34ec9ac344d62a57cad5f94f695f42cdaee
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-01 21:41:55 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 94aa3fb568fe41dd4925a961966ed5cf8213bd1f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-01 21:36:13 +0300

    liblzma: memcmplen: Use ctz32() from tuklib_integer.h.
    
    The same compiler-specific #ifdefs are already in tuklib_integer.h

 src/liblzma/common/memcmplen.h | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

commit 412791486dfb430219d8e30bcbebbfc57a99484a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-01 21:30:03 +0300

    tuklib_integer: Cleanup MSVC-specific code.

 src/common/tuklib_integer.h | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

commit efbf6e5f0932e6c1a4250f91ee99059f449f2470
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-01 19:01:21 +0300

    liblzma: Use unaligned_readXXne functions instead of type punning.
    
    Now gcc -fsanitize=undefined should be clean.
    
    Thanks to Jeffrey Walton.

 src/liblzma/common/memcmplen.h          | 12 ++++++------
 src/liblzma/lzma/lzma_encoder_private.h |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 29afef03486d461c23f57150ac5436684bff7811
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-06-01 18:41:16 +0300

    tuklib_integer: Improve unaligned memory access.
    
    Now memcpy() or GNU C packed structs for unaligned access instead
    of type punning. See the comment in this commit for details.
    
    Avoiding type punning with unaligned access is needed to
    silence gcc -fsanitize=undefined.
    
    New functions: unaliged_readXXne and unaligned_writeXXne where
    XX is 16, 32, or 64.

 src/common/tuklib_integer.h | 180 +++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 168 insertions(+), 12 deletions(-)

commit 596ed3de4485a4b1d83b5fe506ae9d0a172139b4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-05-13 20:05:17 +0300

    liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior.
    
    I should have always known this but I didn't. Here is an example
    as a reminder to myself:
    
        int mycopy(void *dest, void *src, size_t n)
        {
            memcpy(dest, src, n);
            return dest == NULL;
        }
    
    In the example, a compiler may assume that dest != NULL because
    passing NULL to memcpy() would be undefined behavior. Testing
    with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1.
    With -O2 the return value is 0 because the compiler infers that
    dest cannot be NULL because it was already used with memcpy()
    and thus the test for NULL gets optimized out.
    
    In liblzma, if a null-pointer was passed to memcpy(), there were
    no checks for NULL *after* the memcpy() call, so I cautiously
    suspect that it shouldn't have caused bad behavior in practice,
    but it's hard to be sure, and the problematic cases had to be
    fixed anyway.
    
    Thanks to Jeffrey Walton.

 src/liblzma/common/common.c       |  6 +++++-
 src/liblzma/lz/lz_decoder.c       | 12 +++++++++---
 src/liblzma/simple/simple_coder.c | 10 +++++++++-
 3 files changed, 23 insertions(+), 5 deletions(-)

commit b4b83555c576e1d845a2b98a193b23c021437804
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-05-11 20:56:08 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 8d4906262b45557ed164cd74adb270e6ef7f6f03
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-05-11 20:54:12 +0300

    xz: Update xz man page date.

 src/xz/xz.1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0d318402f8a022f707622c72f8f1894ea476cf89
Author: Antoine Cœur <antoine.coeur@ef.com>
Date:   2019-05-08 13:30:57 +0800

    spelling

 Doxyfile.in                            | 2 +-
 NEWS                                   | 2 +-
 src/liblzma/api/lzma/block.h           | 2 +-
 src/liblzma/api/lzma/hardware.h        | 2 +-
 src/liblzma/api/lzma/lzma12.h          | 2 +-
 src/liblzma/api/lzma/vli.h             | 2 +-
 src/liblzma/common/hardware_physmem.c  | 2 +-
 src/liblzma/common/index.c             | 4 ++--
 src/liblzma/common/stream_encoder_mt.c | 2 +-
 src/liblzma/common/vli_decoder.c       | 2 +-
 src/liblzma/lz/lz_decoder.c            | 2 +-
 src/scripts/xzgrep.in                  | 2 +-
 src/xz/args.c                          | 2 +-
 src/xz/coder.c                         | 4 ++--
 src/xz/main.c                          | 2 +-
 src/xz/mytime.h                        | 2 +-
 src/xz/private.h                       | 2 +-
 src/xz/xz.1                            | 2 +-
 windows/build.bash                     | 2 +-
 19 files changed, 21 insertions(+), 21 deletions(-)

commit aeb3be8ac4c4b06a745c3799b80b38159fb78b1a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-03-04 22:49:04 +0200

    README: Update translation instructions.
    
    XZ Utils is now part of the Translation Project
    <https://translationproject.org/>.

 README | 32 +++++++++++++-------------------
 1 file changed, 13 insertions(+), 19 deletions(-)

commit 0c238dc3feb0a3eea1e713feb8d338c8dfba9f74
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-12-20 20:42:29 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 3ca432d9cce4bf7e793de173dd22025b68611c42
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-12-14 20:34:30 +0200

    xz: Fix a crash in progress indicator when in passthru mode.
    
    "xz -dcfv not_an_xz_file" crashed (all four options are
    required to trigger it). It caused xz to call
    lzma_get_progress(&strm, ...) when no coder was initialized
    in strm. In this situation strm.internal is NULL which leads
    to a crash in lzma_get_progress().
    
    The bug was introduced when xz started using lzma_get_progress()
    to get progress info for multi-threaded compression, so the
    bug is present in versions 5.1.3alpha and higher.
    
    Thanks to Filip Palian <Filip.Palian@pjwstk.edu.pl> for
    the bug report.

 src/xz/coder.c   | 11 +++++++----
 src/xz/message.c | 18 ++++++++++++++++--
 src/xz/message.h |  3 ++-
 3 files changed, 25 insertions(+), 7 deletions(-)

commit fcc419e3c3f77a8b6fc5056a86b1b8abbe266e62
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-11-22 17:20:31 +0200

    xz: Update man page timestamp.

 src/xz/xz.1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5a2fc3cd0194e55df329dd29f805299aaca5f32f
Author: Pavel Raiskup <praiskup@redhat.com>
Date:   2018-11-22 15:14:34 +0100

    'have have' typos

 src/xz/signals.c | 2 +-
 src/xz/xz.1      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 7143b04fe49390807f355b1dad686a3d8c4dbdcf
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-07-27 18:10:44 +0300

    xzless: Rename unused variables to silence static analysers.
    
    In this particular case I don't see this affecting readability
    of the code.
    
    Thanks to Pavel Raiskup.

 src/scripts/xzless.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 273c33297bb69621045ed19665eaf8338bcf4a50
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-07-27 16:02:58 +0300

    liblzma: Remove an always-true condition from lzma_index_cat().
    
    This should help static analysis tools to see that newg
    isn't leaked.
    
    Thanks to Pavel Raiskup.

 src/liblzma/common/index.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 65b4aba6d06d2cd24ba9ad01fa389c238ad8f352
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-05-19 21:23:25 +0300

    liblzma: Improve lzma_properties_decode() API documentation.

 src/liblzma/api/lzma/filter.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 531e78e5a253a3e2c4d4dd1505acaccee48f4083
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-05-01 16:52:36 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 905de7e93528ca5a47039e7e1e5270163f9fc67e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-05-01 16:43:16 +0300

    Windows: Update VS version in windows/vs2019/config.h.

 windows/vs2019/config.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0ffd30e172fd18cc619823b2a86448bf56a67e22
Author: Julien Marrec <julien.marrec@gmail.com>
Date:   2019-04-25 17:44:06 +0200

    Windows: Upgrade solution itself

 windows/vs2019/xz_win.sln | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit c2ef96685fc7ca36311649eeb2284b9808292040
Author: Julien Marrec <julien.marrec@gmail.com>
Date:   2019-04-25 17:40:24 +0200

    Windows: Upgrade solution with VS2019

 windows/vs2019/liblzma.vcxproj     | 15 ++++++++-------
 windows/vs2019/liblzma_dll.vcxproj | 15 ++++++++-------
 2 files changed, 16 insertions(+), 14 deletions(-)

commit 25fccaf00bea399d8aa026e5b8fa254ce196e6e0
Author: Julien Marrec <julien.marrec@gmail.com>
Date:   2019-04-25 17:39:32 +0200

    Windows: Duplicate windows/vs2017 before upgrading

 windows/vs2019/config.h            | 148 ++++++++++++++
 windows/vs2019/liblzma.vcxproj     | 354 ++++++++++++++++++++++++++++++++++
 windows/vs2019/liblzma_dll.vcxproj | 383 +++++++++++++++++++++++++++++++++++++
 windows/vs2019/xz_win.sln          |  48 +++++
 4 files changed, 933 insertions(+)

commit 1424078d6328291c7c524b64328ce9660617cb24
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2019-01-13 17:29:23 +0200

    Windows/VS2017: Omit WindowsTargetPlatformVersion from project files.
    
    I understood that if a WTPV is specified, it's often wrong
    because different VS installations have different SDK version
    installed. Omitting the WTPV tag makes VS2017 default to
    Windows SDK 8.1 which often is also missing, so in any case
    people may need to specify the WTPV before building. But some
    day in the future a missing WTPV tag will start to default to
    the latest installed SDK which sounds reasonable:
    
    https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html
    
    Thanks to "dom".

 windows/INSTALL-MSVC.txt           | 4 ++++
 windows/vs2017/liblzma.vcxproj     | 1 -
 windows/vs2017/liblzma_dll.vcxproj | 1 -
 3 files changed, 4 insertions(+), 2 deletions(-)

commit b5be61cc06088bb07f488f9baf7d447ff47b37c1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-04-29 19:00:06 +0300

    Bump version and soname for 5.2.4.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit c47fa6d06745bb2e99866e76b81ac7a9c5a8bfec
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-04-29 18:48:00 +0300

    extra/scanlzma: Fix compiler warnings.

 extra/scanlzma/scanlzma.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 7b350fe21aa4fd6495a3b6188a40e3f1ae7c0edf
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-04-29 18:15:37 +0300

    Add NEWS for 5.2.4.

 NEWS | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

commit 5801591162a280aa52d156dfde42c531ec7fd8b6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-02-06 19:36:30 +0200

    Update THANKS.

 THANKS | 2 ++
 1 file changed, 2 insertions(+)

commit c4a616f4536146f8906e1b4412eefeec07b28fae
Author: Ben Boeckel <mathstuf@gmail.com>
Date:   2018-01-29 13:58:18 -0500

    nothrow: use noexcept for C++11 and newer
    
    In C++11, the `throw()` specifier is deprecated and `noexcept` is
    preffered instead.

 src/liblzma/api/lzma.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 0b8947782ff3c5ef830a7f85412e44dcf3cdeb77
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-02-06 18:02:48 +0200

    liblzma: Remove incorrect #ifdef from range_common.h.
    
    In most cases it was harmless but it could affect some
    custom build systems.
    
    Thanks to Pippijn van Steenhoven.

 src/liblzma/rangecoder/range_common.h | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 48f3b9f73ffea7f55d5678997aba0e79d2e82168
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-01-10 22:10:39 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit a3ce3e902342be37c626a561ce3d9ffcf27d0f94
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2018-01-10 21:54:27 +0200

    tuklib_integer: New Intel C compiler needs immintrin.h.
    
    Thanks to Melanie Blower (Intel) for the patch.

 src/common/tuklib_integer.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 4505ca483985f88c6923c05a43b4327feaab83b1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-09-24 20:04:24 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 1ef3cc226e3ce173575c218238b71a4eecabc470
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-09-16 20:36:20 +0300

    Windows: Fix paths in VS project files.
    
    Some paths use slashes instead of backslashes as directory
    separators... now it should work (I tested VS2013 version).

 windows/vs2013/liblzma.vcxproj     | 12 ++++++------
 windows/vs2013/liblzma_dll.vcxproj | 24 ++++++++++++------------
 windows/vs2017/liblzma.vcxproj     | 12 ++++++------
 windows/vs2017/liblzma_dll.vcxproj | 24 ++++++++++++------------
 4 files changed, 36 insertions(+), 36 deletions(-)

commit e775d2a8189d24f60470e6e49d8af881df3a1680
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-09-16 12:54:23 +0300

    Windows: Add project files for VS2017.
    
    These files match the v5.2 branch (no file info decoder).

 windows/vs2017/config.h            | 148 ++++++++++++++
 windows/vs2017/liblzma.vcxproj     | 355 ++++++++++++++++++++++++++++++++++
 windows/vs2017/liblzma_dll.vcxproj | 384 +++++++++++++++++++++++++++++++++++++
 windows/vs2017/xz_win.sln          |  48 +++++
 4 files changed, 935 insertions(+)

commit 10e02e0fbb6e2173f8b41f6e39b7b570f47dd74d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-09-16 12:39:43 +0300

    Windows: Move VS2013 files into windows/vs2013 directory.

 windows/{ => vs2013}/config.h            |   0
 windows/{ => vs2013}/liblzma.vcxproj     | 278 +++++++++++++++---------------
 windows/{ => vs2013}/liblzma_dll.vcxproj | 280 +++++++++++++++----------------
 windows/{ => vs2013}/xz_win.sln          |   0
 4 files changed, 279 insertions(+), 279 deletions(-)

commit 06eebd4543196ded36fa9b8b9544195b38b24ef2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-08-14 20:08:33 +0300

    Fix or hide warnings from GCC 7's -Wimplicit-fallthrough.

 src/liblzma/lzma/lzma_decoder.c | 6 ++++++
 src/xz/list.c                   | 2 ++
 2 files changed, 8 insertions(+)

commit ea4ea1dffafebaa8b2770bf3eca46900e4dd22dc
Author: Alexey Tourbin <alexey.tourbin@gmail.com>
Date:   2017-05-16 23:56:35 +0300

    Docs: Fix a typo in a comment in doc/examples/02_decompress.c.

 doc/examples/02_decompress.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eb2ef4c79bf405ea0d215f3b1df3d0eaf5e1d27b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-05-23 18:34:43 +0300

    xz: Fix "xz --list --robot missing_or_bad_file.xz".
    
    It ended up printing an uninitialized char-array when trying to
    print the check names (column 7) on the "totals" line.
    
    This also changes the column 12 (minimum xz version) to
    50000002 (xz 5.0.0) instead of 0 when there are no valid
    input files.
    
    Thanks to kidmin for the bug report.

 src/xz/list.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 3ea5dbd9b0d79048e336e40cef3b6d814fb74e13
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-04-24 19:48:47 +0300

    Build: Omit pre-5.0.0 entries from the generated ChangeLog.
    
    It makes ChangeLog significantly smaller.

 Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit bae24675936df99064de1502593c006bd902594b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-04-24 19:30:22 +0300

    Update the Git repository URL to HTTPS in ChangeLog.

 ChangeLog | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 70f479211973b5361f4d7cb08ba5be69b4266e7a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-04-19 22:17:35 +0300

    Update the home page URLs to HTTPS.

 COPYING                     | 2 +-
 README                      | 2 +-
 configure.ac                | 2 +-
 doc/faq.txt                 | 4 ++--
 dos/config.h                | 2 +-
 src/common/common_w32res.rc | 2 +-
 src/xz/xz.1                 | 6 +++---
 src/xzdec/xzdec.1           | 4 ++--
 windows/README-Windows.txt  | 2 +-
 windows/config.h            | 2 +-
 10 files changed, 14 insertions(+), 14 deletions(-)

commit 2a4b2fa75d06a097261a02ecd3cf2b6d449bf754
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-03-30 22:01:54 +0300

    xz: Use POSIX_FADV_RANDOM for in "xz --list" mode.
    
    xz --list is random access so POSIX_FADV_SEQUENTIAL was clearly
    wrong.

 src/xz/file_io.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit eb25743ade39170cffd9566a1aae272098cce216
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-03-30 19:47:45 +0300

    liblzma: Fix lzma_memlimit_set(strm, 0).
    
    The 0 got treated specially in a buggy way and as a result
    the function did nothing. The API doc said that 0 was supposed
    to return LZMA_PROG_ERROR but it didn't.
    
    Now 0 is treated as if 1 had been specified. This is done because
    0 is already used to indicate an error from lzma_memlimit_get()
    and lzma_memusage().
    
    In addition, lzma_memlimit_set() no longer checks that the new
    limit is at least LZMA_MEMUSAGE_BASE. It's counter-productive
    for the Index decoder and was actually needed only by the
    auto decoder. Auto decoder has now been modified to check for
    LZMA_MEMUSAGE_BASE.

 src/liblzma/api/lzma/base.h       | 7 ++++++-
 src/liblzma/common/auto_decoder.c | 3 +++
 src/liblzma/common/common.c       | 6 ++++--
 3 files changed, 13 insertions(+), 3 deletions(-)

commit ef36c6362f3f3853f21b8a6359bcd06576ebf207
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-03-30 19:16:55 +0300

    liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder.

 src/liblzma/api/lzma/container.h    | 21 +++++++++++++++++----
 src/liblzma/common/alone_decoder.c  |  5 +----
 src/liblzma/common/auto_decoder.c   |  5 +----
 src/liblzma/common/stream_decoder.c |  5 +----
 4 files changed, 20 insertions(+), 16 deletions(-)

commit 57616032650f03840480b696d7878acdd2065521
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2017-03-30 18:58:18 +0300

    liblzma: Fix handling of memlimit == 0 in lzma_index_decoder().
    
    It returned LZMA_PROG_ERROR, which was done to avoid zero as
    the limit (because it's a special value elsewhere), but using
    LZMA_PROG_ERROR is simply inconvenient and can cause bugs.
    
    The fix/workaround is to treat 0 as if it were 1 byte. It's
    effectively the same thing. The only weird consequence is
    that then lzma_memlimit_get() will return 1 even when 0 was
    specified as the limit.
    
    This fixes a very rare corner case in xz --list where a specific
    memory usage limit and a multi-stream file could print the
    error message "Internal error (bug)" instead of saying that
    the memory usage limit is too low.

 src/liblzma/api/lzma/index.h       | 18 +++++++++++-------
 src/liblzma/common/index_decoder.c |  4 ++--
 2 files changed, 13 insertions(+), 9 deletions(-)

commit 3d566cd519017eee1a400e7961ff14058dfaf33c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-12-30 13:26:36 +0200

    Bump version and soname for 5.2.3.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 053e624fe33795e779ff736f16ce44a129c829b5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-12-30 13:25:10 +0200

    Update NEWS for 5.2.3.

 NEWS | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

commit cae412b2b77d7fd88d187ed7659331709311f80d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-04-01 14:45:25 +0300

    xz: Fix the Capsicum rights on user_abort_pipe.

 src/xz/file_io.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 9ccbae41000572193b9a09e7102f9e84dc6d96de
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-12-28 21:05:22 +0200

    Mention potential sandboxing bugs in INSTALL.

 INSTALL | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit e013a337d3de77cce24360dffe956ea2339489b6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-11-21 20:24:50 +0200

    liblzma: Avoid multiple definitions of lzma_coder structures.
    
    Only one definition was visible in a translation unit.
    It avoided a few casts and temp variables but seems that
    this hack doesn't work with link-time optimizations in compilers
    as it's not C99/C11 compliant.
    
    Fixes:
    http://www.mail-archive.com/xz-devel@tukaani.org/msg00279.html

 src/liblzma/common/alone_decoder.c             |  44 +++++----
 src/liblzma/common/alone_encoder.c             |  34 ++++---
 src/liblzma/common/auto_decoder.c              |  35 ++++---
 src/liblzma/common/block_decoder.c             |  41 ++++----
 src/liblzma/common/block_encoder.c             |  40 ++++----
 src/liblzma/common/common.h                    |  18 ++--
 src/liblzma/common/index_decoder.c             |  33 ++++---
 src/liblzma/common/index_encoder.c             |  16 ++--
 src/liblzma/common/stream_decoder.c            |  50 +++++-----
 src/liblzma/common/stream_encoder.c            |  56 ++++++-----
 src/liblzma/common/stream_encoder_mt.c         | 124 ++++++++++++++-----------
 src/liblzma/delta/delta_common.c               |  25 ++---
 src/liblzma/delta/delta_decoder.c              |   6 +-
 src/liblzma/delta/delta_encoder.c              |  12 ++-
 src/liblzma/delta/delta_private.h              |   4 +-
 src/liblzma/lz/lz_decoder.c                    |  60 ++++++------
 src/liblzma/lz/lz_decoder.h                    |  13 ++-
 src/liblzma/lz/lz_encoder.c                    |  57 +++++++-----
 src/liblzma/lz/lz_encoder.h                    |   9 +-
 src/liblzma/lzma/lzma2_decoder.c               |  32 ++++---
 src/liblzma/lzma/lzma2_encoder.c               |  51 +++++-----
 src/liblzma/lzma/lzma_decoder.c                |  27 +++---
 src/liblzma/lzma/lzma_encoder.c                |  29 +++---
 src/liblzma/lzma/lzma_encoder.h                |   9 +-
 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   3 +-
 src/liblzma/lzma/lzma_encoder_optimum_normal.c |  23 ++---
 src/liblzma/lzma/lzma_encoder_private.h        |   6 +-
 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              |  61 ++++++------
 src/liblzma/simple/simple_private.h            |  12 +--
 src/liblzma/simple/sparc.c                     |   2 +-
 src/liblzma/simple/x86.c                       |  15 +--
 35 files changed, 532 insertions(+), 423 deletions(-)

commit 8e0f1af3dcaec00a3879cce8ad7441edc6359d1c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-12-26 20:50:25 +0200

    Document --enable-sandbox configure option in INSTALL.

 INSTALL | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

commit ce2542d220de06acd618fd9f5c0a6683029fb4eb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-03-31 22:19:34 +0300

    xz: Add support for sandboxing with Capsicum (disabled by default).
    
    In the v5.2 branch this feature is considered experimental
    and thus disabled by default.
    
    The sandboxing is used conditionally as described in main.c.
    This isn't optimal but it was much easier to implement than
    a full sandboxing solution and it still covers the most common
    use cases where xz is writing to standard output. This should
    have practically no effect on performance even with small files
    as fork() isn't needed.
    
    C and locale libraries can open files as needed. This has been
    fine in the past, but it's a problem with things like Capsicum.
    io_sandbox_enter() tries to ensure that various locale-related
    files have been loaded before cap_enter() is called, but it's
    possible that there are other similar problems which haven't
    been seen yet.
    
    Currently Capsicum is available on FreeBSD 10 and later
    and there is a port to Linux too.
    
    Thanks to Loganaden Velvindron for help.

 configure.ac       | 41 +++++++++++++++++++++++++++
 src/xz/Makefile.am |  2 +-
 src/xz/file_io.c   | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/xz/file_io.h   |  6 ++++
 src/xz/main.c      | 18 ++++++++++++
 src/xz/private.h   |  4 +++
 6 files changed, 151 insertions(+), 1 deletion(-)

commit 3ca1d5e6320111043e19434da881065fadafa0e4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-03-31 21:12:30 +0300

    Fix bugs and otherwise improve ax_check_capsicum.m4.
    
    AU_ALIAS was removed because the new version is incompatible
    with the old version.
    
    It no longer checks for <sys/capability.h> separately.
    It's enough to test for it as part of AC_CHECK_DECL.
    The defines HAVE_CAPSICUM_SYS_CAPSICUM_H and
    HAVE_CAPSICUM_SYS_CAPABILITY_H were removed as unneeded.
    HAVE_SYS_CAPSICUM_H from AC_CHECK_HEADERS is enough.
    
    It no longer does a useless search for the Capsicum library
    if the header wasn't found.
    
    Fixed a bug in ACTION-IF-FOUND (the first argument). Specifying
    the argument omitted the default action but the given action
    wasn't used instead.
    
    AC_DEFINE([HAVE_CAPSICUM]) is now always called when Capsicum
    support is found. Previously it was part of the default
    ACTION-IF-FOUND which a custom action would override. Now
    the default action only prepends ${CAPSICUM_LIB} to LIBS.
    
    The documentation was updated.
    
    Since there as no serial number, "#serial 2" was added.

 m4/ax_check_capsicum.m4 | 103 ++++++++++++++++++++++++------------------------
 1 file changed, 51 insertions(+), 52 deletions(-)

commit 5f3a742b64197fe8bedb6f05fc6ce5d177d11145
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-03-31 19:20:24 +0300

    Add m4/ax_check_capsicum.m4 for detecting Capsicum support.
    
    The file was loaded from this web page:
    https://github.com/google/capsicum-test/blob/dev/autoconf/m4/ax_check_capsicum.m4
    
    Thanks to Loganaden Velvindron for pointing it out for me.

 m4/ax_check_capsicum.m4 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)

commit d74377e62b4c649e40294dd441de72c0f092e67c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-10-12 20:29:09 +0300

    liblzma: Fix a memory leak in error path of lzma_index_dup().
    
    lzma_index_dup() calls index_dup_stream() which, in case of
    an error, calls index_stream_end() to free memory allocated
    by index_stream_init(). However, it illogically didn't
    actually free the memory. To make it logical, the tree
    handling code was modified a bit in addition to changing
    index_stream_end().
    
    Thanks to Evan Nemerson for the bug report.

 src/liblzma/common/index.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit f580732216dcf971f3f006fe8e01cd4979e1d964
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-10-24 18:53:25 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 88d7a7fd153bf1355cdf798ffdac7443d0169afc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-10-24 18:51:36 +0300

    tuklib_cpucores: Add support for sched_getaffinity().
    
    It's available in glibc (GNU/Linux, GNU/kFreeBSD). It's better
    than sysconf(_SC_NPROCESSORS_ONLN) because sched_getaffinity()
    gives the number of cores available to the process instead of
    the total number of cores online.
    
    As a side effect, this commit fixes a bug on GNU/kFreeBSD where
    configure would detect the FreeBSD-specific cpuset_getaffinity()
    but it wouldn't actually work because on GNU/kFreeBSD it requires
    using -lfreebsd-glue when linking. Now the glibc-specific function
    will be used instead.
    
    Thanks to Sebastian Andrzej Siewior for the original patch
    and testing.

 m4/tuklib_cpucores.m4        | 30 +++++++++++++++++++++++++++++-
 src/common/tuklib_cpucores.c |  9 +++++++++
 2 files changed, 38 insertions(+), 1 deletion(-)

commit 51baf684376903dbeddd840582bfdf9fa91b311b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-06-30 20:27:36 +0300

    xz: Fix copying of timestamps on Windows.
    
    xz used to call utime() on Windows, but its result gets lost
    on close(). Using _futime() seems to work.
    
    Thanks to Martok for reporting the bug:
    http://www.mail-archive.com/xz-devel@tukaani.org/msg00261.html

 configure.ac     |  2 +-
 src/xz/file_io.c | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

commit 1ddc479851139d6e8202e5835421bfe6578d9e07
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-06-16 22:46:02 +0300

    xz: Silence warnings from -Wlogical-op.
    
    Thanks to Evan Nemerson.

 src/xz/file_io.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit be647ff5ed5a1c244a65722af6ce250259f3b14a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-04-10 20:55:49 +0300

    Build: Fix = to += for xz_SOURCES in src/xz/Makefile.am.
    
    Thanks to Christian Kujau.

 src/xz/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fb6d50c15343831f35305982cefa82053099191d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-04-10 20:54:17 +0300

    Build: Bump GNU Gettext version requirement to 0.19.
    
    It silences a few warnings and most people probably have
    0.19 even on stable distributions.
    
    Thanks to Christian Kujau.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 74f8dad9f912a2993768d93d108ea2b0b2c196e0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-03-13 20:21:49 +0200

    liblzma: Disable external SHA-256 by default.
    
    This is the sane thing to do. The conflict with OpenSSL
    on some OSes and especially that the OS-provided versions
    can be significantly slower makes it clear that it was
    a mistake to have the external SHA-256 support enabled by
    default.
    
    Those who want it can now pass --enable-external-sha256 to
    configure. INSTALL was updated with notes about OSes where
    this can be a bad idea.
    
    The SHA-256 detection code in configure.ac had some bugs that
    could lead to a build failure in some situations. These were
    fixed, although it doesn't matter that much now that the
    external SHA-256 is disabled by default.
    
    MINIX >= 3.2.0 uses NetBSD's libc and thus has SHA256_Init
    in libc instead of libutil. Support for the libutil version
    was removed.

 INSTALL                   | 36 ++++++++++++++++++++++
 configure.ac              | 76 +++++++++++++++++++++++------------------------
 src/liblzma/check/check.h | 16 ++++------
 3 files changed, 79 insertions(+), 49 deletions(-)

commit ea7f6ff04cb5bb1498088eb09960a4c3f13dfe39
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-03-10 20:27:05 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit d0e018016b311232e82d9a98dc68f1e3dabce794
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2016-03-10 20:26:49 +0200

    Build: Avoid SHA256_Init on FreeBSD and MINIX 3.
    
    On FreeBSD 10 and older, SHA256_Init from libmd conflicts
    with libcrypto from OpenSSL. The OpenSSL version has
    different sizeof(SHA256_CTX) and it can cause weird
    problems if wrong SHA256_Init gets used.
    
    Looking at the source, MINIX 3 seems to have a similar issue but
    I'm not sure. To be safe, I disabled SHA256_Init on MINIX 3 too.
    
    NetBSD has SHA256_Init in libc and they had a similar problem,
    but they already fixed it in 2009.
    
    Thanks to Jim Wilcoxson for the bug report that helped
    in finding the problem.

 configure.ac | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)

commit 5daae123915f32a4ed6dc948b831533c2d1beec3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-08 20:16:10 +0200

    tuklib_physmem: Hopefully silence a warning on Windows.

 src/common/tuklib_physmem.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 491acc406e098167ccb7fce0728b94c2f32cff9f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-04 23:17:43 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 8173ff8790ad3502d04e1c07d014cb84a3b8187b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-04 23:14:00 +0200

    liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma.
    
    When optimizing, GCC can reorder code so that an uninitialized
    value gets used in a comparison, which makes Valgrind unhappy.
    It doesn't happen when compiled with -O0, which I tend to use
    when running Valgrind.
    
    Thanks to Rich Prohaska. I remember this being mentioned long
    ago by someone else but nothing was done back then.

 src/liblzma/lz/lz_encoder.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 013de2b5ab8094d2c82a2771f3d143eeb656eda9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-03 20:55:45 +0200

    liblzma: Rename lzma_presets.c back to lzma_encoder_presets.c.
    
    It would be too annoying to update other build systems
    just because of this.

 src/liblzma/lzma/Makefile.inc                               | 2 +-
 src/liblzma/lzma/{lzma_presets.c => lzma_encoder_presets.c} | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit a322f70ad96de88968c2c36e6a36bc08ae30bd20
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-03 20:47:07 +0200

    Build: Disable xzdec, lzmadec, and lzmainfo when they cannot be built.
    
    They all need decoder support and if that isn't available,
    there's no point trying to build them.

 configure.ac | 3 +++
 1 file changed, 3 insertions(+)

commit 8ea49606cf6427e32319de7693eca9e43f1c8ad6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-03 20:35:19 +0200

    Build: Simplify $enable_{encoders,decoders} usage a bit.

 configure.ac | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 42131a25e52bfe400acfa7df93469a96bb78bb78
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-03 20:31:31 +0200

    Windows/MSVC: Update config.h.

 windows/config.h | 6 ++++++
 1 file changed, 6 insertions(+)

commit e9184e87cc989d14c7413e6adb3eca98f6ae0290
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-03 20:29:58 +0200

    DOS: Update config.h.

 dos/config.h | 6 ++++++
 1 file changed, 6 insertions(+)

commit 2296778f3c9a1e3a8699973b09dd3610b8baa402
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-03 20:29:33 +0200

    xz: Make xz buildable even when encoders or decoders are disabled.
    
    The patch is quite long but it's mostly about adding new #ifdefs
    to omit code when encoders or decoders have been disabled.
    
    This adds two new #defines to config.h: HAVE_ENCODERS and
    HAVE_DECODERS.

 configure.ac       |  4 ++++
 src/xz/Makefile.am |  8 ++++++--
 src/xz/args.c      | 16 ++++++++++++++++
 src/xz/coder.c     | 33 +++++++++++++++++++++++++--------
 src/xz/main.c      |  9 +++++++--
 src/xz/private.h   |  5 ++++-
 6 files changed, 62 insertions(+), 13 deletions(-)

commit 97a3109281e475d9cf1b5095237d672fa0ad25e5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-03 18:06:40 +0200

    Build: Build LZMA1/2 presets also when only decoder is wanted.
    
    People shouldn't rely on the presets when decoding raw streams,
    but xz uses the presets as the starting point for raw decoder
    options anyway.
    
    lzma_encocder_presets.c was renamed to lzma_presets.c to
    make it clear it's not used solely by the encoder code.

 src/liblzma/lzma/Makefile.inc                               | 6 +++++-
 src/liblzma/lzma/{lzma_encoder_presets.c => lzma_presets.c} | 3 ++-
 2 files changed, 7 insertions(+), 2 deletions(-)

commit dc6b78d7f0f6fe43e9d4215146e8581feb8090e7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-03 17:54:48 +0200

    Build: Fix configure to handle LZMA1 dependency with LZMA2.
    
    Now it gives an error if LZMA1 encoder/decoder is missing
    when LZMA2 encoder/decoder was requested. Even better would
    be LZMA2 implicitly enabling LZMA1 but it would need more code.

 configure.ac | 5 -----
 1 file changed, 5 deletions(-)

commit 46d76c9cd3cb26a31f5ae6c3a8bbcf38e6da1add
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-03 17:41:54 +0200

    Build: Don't omit lzma_cputhreads() unless using --disable-threads.
    
    Previously it was omitted if encoders were disabled
    with --disable-encoders. It didn't make sense and
    it also broke the build.

 src/liblzma/common/Makefile.inc | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 16d68f874d89f1e4a1919786a35bbaef7d71a077
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-02 18:16:51 +0200

    liblzma: Fix a build failure related to external SHA-256 support.
    
    If an appropriate header and structure were found by configure,
    but a library with a usable SHA-256 functions wasn't, the build
    failed.

 src/liblzma/check/check.h | 32 +++++++++++++++++++++++---------
 1 file changed, 23 insertions(+), 9 deletions(-)

commit d9311647fc1ab512a3394596221ab8039c00af6b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-11-02 15:19:10 +0200

    xz: Always close the file before trying to delete it.
    
    unlink() can return EBUSY in errno for open files on some
    operating systems and file systems.

 src/xz/file_io.c | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

commit f59c4183f3c9066626ce45dc3db4642fa603fa21
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-10-12 21:08:42 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 35f189673e280c12e4c5129f9f97e54eef3bbc04
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-10-12 21:07:41 +0300

    Tests: Add tests for the two bugs fixed in index.c.

 tests/test_index.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit e10bfdb0fcaff12f3a6dadee51e0a022aadccb51
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-10-12 20:45:15 +0300

    liblzma: Fix lzma_index_dup() for empty Streams.
    
    Stream Flags and Stream Padding weren't copied from
    empty Streams.

 src/liblzma/common/index.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 06f434bd8980f25ca23232eb7bb7df7e37dc8448
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-10-12 20:31:44 +0300

    liblzma: Add a note to index.c for those using static analyzers.

 src/liblzma/common/index.c | 3 +++
 1 file changed, 3 insertions(+)

commit 9815cdf6987ef91a85493bfcfd1ce2aaf3b47a0a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-09-29 13:59:35 +0300

    Bump version and soname for 5.2.2.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit cbe0cec8476bdd0416c7ca9bc83895c9bea1cf78
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-09-29 13:57:28 +0300

    Update NEWS for 5.2.2.

 NEWS | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit 49427ce7eececdd18bbd35dab23c81910d083e1c
Author: Andre Noll <maan@tuebingen.mpg.de>
Date:   2015-05-28 15:50:00 +0200

    Fix typo in German translation.
    
    As pointed out by Robert Pollak, there's a typo in the German
    translation of the compression preset option (-0 ... -9) help text.
    "The compressor" translates to "der Komprimierer", and the genitive
    form is "des Komprimierers". The old word makes no sense at all.

 po/de.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 608d6f06c940e7f28c25de005e8b99bdff42d27c
Author: Hauke Henningsen <sqrt@entless.org>
Date:   2015-08-17 04:59:54 +0200

    Update German translation, mostly wrt orthography
    
    Provide an update of the German translation.
    * A lot of compound words were previously written with spaces, while
      German orthography is relatively clear in that the components
      should not be separated.
    * When referring to the actual process of (de)compression rather than the
      concept, replace “(De-)Kompression” with “(De-)Komprimierung”.
      Previously, both forms were used in this context and are now used in a
      manner consistent with “Komprimierung” being more likely to refer to
      a process.
    * Consistently translate “standard input”/“output”
    * Use “Zeichen” instead of false friend “Charakter” for “character”
    * Insert commas around relative clauses (as required in German)
    * Some other minor corrections
    * Capitalize “ß” as “ẞ”
    * Consistently start option descriptions in --help with capital letters
    
    Acked-By: Andre Noll <maan@tuebingen.mpg.de>
    
    * Update after msgmerge

 po/de.po | 383 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 196 insertions(+), 187 deletions(-)

commit c8988414e5b67b8ef2fe0ba7b1ccdd0ec73c60d3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-08-11 13:23:04 +0300

    Build: Minor Cygwin cleanup.
    
    Some tests used "cygwin*" and some used "cygwin". I changed
    them all to use "cygwin". Shouldn't affect anything in practice.

 configure.ac | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 85a6dfed53477906bfe9a7c0123dd412e391cb48
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-08-11 13:21:52 +0300

    Build: Support building of MSYS2 binaries.

 configure.ac | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

commit 77f270be8432df2e4516a0c48814b6976d6618c5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-08-09 21:06:26 +0300

    Windows: Define DLL_EXPORT when building liblzma.dll with MSVC.
    
    src/liblzma/common/common.h uses it to set __declspec(dllexport)
    for the API symbols.
    
    Thanks to Adam Walling.

 windows/liblzma_dll.vcxproj | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 8c975446c5903090a5a8493b5b96b71003056a88
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-08-09 21:02:20 +0300

    Windows: Omit unneeded header files from MSVC project files.

 windows/liblzma.vcxproj     | 5 -----
 windows/liblzma_dll.vcxproj | 5 -----
 2 files changed, 10 deletions(-)

commit 119a00434954726ca58e4a578e6469f530fca30e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-07-12 20:48:19 +0300

    liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer.

 src/liblzma/api/lzma.h | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

commit d4e7c557fcab353539c9481a8d95cb04bcb15c7c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-06-19 20:38:55 +0300

    Update THANKS.

 THANKS | 2 ++
 1 file changed, 2 insertions(+)

commit 98001740ca56c894a7bd32eb47e9857a8a7d878d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-06-19 20:21:30 +0300

    Windows: Update the docs.

 INSTALL                                            | 29 ++++++++-----
 windows/INSTALL-MSVC.txt                           | 47 ++++++++++++++++++++++
 windows/{INSTALL-Windows.txt => INSTALL-MinGW.txt} |  2 +-
 3 files changed, 67 insertions(+), 11 deletions(-)

commit 28195e4c877007cc760ecea1d17f740693d66873
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-06-19 17:25:31 +0300

    Windows: Add MSVC project files for building liblzma.
    
    Thanks to Adam Walling for creating these files.

 windows/liblzma.vcxproj     | 359 ++++++++++++++++++++++++++++++++++++++++
 windows/liblzma_dll.vcxproj | 388 ++++++++++++++++++++++++++++++++++++++++++++
 windows/xz_win.sln          |  48 ++++++
 3 files changed, 795 insertions(+)

commit 960440f3230dc628f6966d9f7614fc1b28baf44e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-05-13 20:57:55 +0300

    Tests: Fix a memory leak in test_bcj_exact_size.
    
    Thanks to Cristian Rodríguez.

 tests/test_bcj_exact_size.c | 1 +
 1 file changed, 1 insertion(+)

commit 68cd35acafbdcdf4e8ea8b5bb843c736939d6f8b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-05-12 18:08:24 +0300

    Fix NEWS about threading in 5.2.0.
    
    Thanks to Andy Hochhaus.

 NEWS | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit ff96ed6d25786728356017a13baf8c14731b4f1e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-05-11 21:26:16 +0300

    xz: Document that threaded decompression hasn't been implemented yet.

 src/xz/xz.1 | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit 00d37b64a64ea8597fd2422d5187afd761ab9531
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-04-20 20:20:29 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit db190a832c49ca3aed6d69cc992fa5583cae7b11
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-04-20 19:59:18 +0300

    Revert "xz: Use pipe2() if available."
    
    This reverts commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd.
    It is a problem when libc has pipe2() but the kernel is too
    old to have pipe2() and thus pipe2() fails. In xz it's pointless
    to have a fallback for non-functioning pipe2(); it's better to
    avoid pipe2() completely.
    
    Thanks to Michael Fox for the bug report.

 configure.ac     | 4 ++--
 src/xz/file_io.c | 9 +--------
 2 files changed, 3 insertions(+), 10 deletions(-)

commit eccd8155e107c5ada03d13e7730675cdf1a44ddc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-03-29 22:14:47 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-03-29 22:13:48 +0300

    Fix the detection of installed RAM on QNX.
    
    The earlier version compiled but didn't actually work
    since sysconf(_SC_PHYS_PAGES) always fails (or so I was told).
    
    Thanks to Ole André Vadla Ravnås for the patch and testing.

 m4/tuklib_physmem.m4        |  6 +++---
 src/common/tuklib_physmem.c | 14 +++++++++++++-
 2 files changed, 16 insertions(+), 4 deletions(-)

commit 4c544d2410903d38402221cb783ed85585b6a007
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-03-27 22:39:07 +0200

    Fix CPU core count detection on QNX.
    
    It tried to use sysctl() on QNX but
      - it broke the build because sysctl() needs -lsocket on QNX;
      - sysctl() doesn't work for detecting the core count on QNX
        even if it compiled.
    
    sysconf() works. An alternative would have been to use
    QNX-specific SYSPAGE_ENTRY(num_cpu) from <sys/syspage.h>.
    
    Thanks to Ole André Vadla Ravnås.

 m4/tuklib_cpucores.m4 | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-03-07 22:05:57 +0200

    xz: size_t/uint32_t cleanup in options.c.

 src/xz/options.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 8bcca29a65335fd679c13814b70b35b68fa5daed
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-03-07 22:04:23 +0200

    xz: Fix a comment and silence a warning in message.c.

 src/xz/message.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-03-07 22:01:00 +0200

    liblzma: Silence more uint32_t vs. size_t warnings.

 src/liblzma/lz/lz_encoder.c     | 2 +-
 src/liblzma/lzma/lzma_encoder.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-03-07 19:54:00 +0200

    xz: Make arg_count an unsigned int to silence a warning.
    
    Actually the value of arg_count cannot exceed INT_MAX
    but it's nicer as an unsigned int.

 src/xz/args.h | 2 +-
 src/xz/main.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit f6ec46801588b1be29c07c9db98558b521304002
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-03-07 19:33:17 +0200

    liblzma: Fix a warning in index.c.

 src/liblzma/common/index.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit a24518971cc621315af142dd3bb7614fab04ad27
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-02-26 20:46:14 +0200

    Build: Fix a CR+LF problem when running autoreconf -fi on OS/2.

 build-aux/version.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dec11497a71518423b5ff0e759100cf8aadf6c7b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-02-26 16:53:44 +0200

    Bump version and soname for 5.2.1.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 29e39c79975ab89ee5dd671e97064534a9f3a649
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-02-26 13:01:09 +0200

    Update NEWS for 5.2.1.

 NEWS | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-02-22 19:38:48 +0200

    xz: Use pipe2() if available.

 configure.ac     | 4 ++--
 src/xz/file_io.c | 9 ++++++++-
 2 files changed, 10 insertions(+), 3 deletions(-)

commit 117d962685c72682c63edc9bb765367189800202
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-02-21 23:40:26 +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.

 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ae984e31c167d3bc52972ec422dd1ebd5f5d5719
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-02-21 23:00:19 +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.

 src/xz/file_io.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

commit 2205bb5853098aea36a56df6f5747037175f66b4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-02-10 15:29:34 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit d935b0cdf3db440269b9d952b2b281b18f8c7b08
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-02-10 15:28:30 +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.

 m4/tuklib_cpucores.m4        | 23 ++++++++++++++++++++++-
 src/common/tuklib_cpucores.c | 18 ++++++++++++++++++
 2 files changed, 40 insertions(+), 1 deletion(-)

commit eb61bc58c20769cac4d05f363b9c0e8c9c71a560
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-02-09 22:08:37 +0200

    xzdiff: Make the mktemp usage compatible with FreeBSD's mktemp.
    
    Thanks to Rui Paulo for the fix.

 src/scripts/xzdiff.in | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit b9a5b6b7a29029680af733082b6a46e0fc01623a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-02-03 21:45:53 +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.

 src/common/tuklib_integer.h | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit c45757135f40e4a0de730ba5fff0100219493982
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-01-26 21:24:39 +0200

    liblzma: Set LZMA_MEMCMPLEN_EXTRA depending on the compare method.

 src/liblzma/common/memcmplen.h | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

commit 3c500174ed5485f550972a2a6109c361e875f069
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-01-26 20:40:16 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit fec88d41e672d9e197c9442aecf02bd0dfa6d516
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-01-26 20:39:28 +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.

 src/liblzma/lz/lz_encoder.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit a9b45badfec0928d20a27c7176c005fa637f7d1e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-01-09 21:50:19 +0200

    xz: Fix comments.

 src/xz/file_io.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 541aee6dd4aa97a809aba281475a21b641bb89e2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-01-09 21:35:06 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 4170edc914655310d2363baccf5e615e09b04911
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-01-09 21:34:06 +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.

 src/xz/file_io.c | 36 +++++++++++++++---------------------
 1 file changed, 15 insertions(+), 21 deletions(-)

commit 04bbc0c2843c50c8ad1cba42b937118e38b0508d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-01-07 19:18:20 +0200

    xz: Fix a memory leak in DOS-specific code.

 src/xz/file_io.c | 2 ++
 1 file changed, 2 insertions(+)

commit f0f1f6c7235ffa901cf76fe18e33749e200b3eea
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-01-07 19:08:06 +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.

 src/xz/file_io.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

commit d2d484647d9d9d679f03c75abb0404f67069271c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2015-01-06 20:30:15 +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.

 tests/test_files.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit aae6a6aeda51cf94a47e39ad624728f9bee75e30
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-30 11:17:16 +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.

 INSTALL | 4 ++++
 1 file changed, 4 insertions(+)

commit 7815112153178800a3521b9f31960e7cdc26cfba
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-26 12:00:05 +0200

    Build: POSIX shell isn't required if scripts are disabled.

 INSTALL      | 3 ++-
 configure.ac | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

commit a0cd05ee71d330b79ead6eb9222e1b24e1559d3a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-21 20:48:37 +0200

    DOS: Update Makefile.

 dos/Makefile | 1 +
 1 file changed, 1 insertion(+)

commit b85ee0905ec4ab7656d22e63519fdd3bedb21f2e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-21 19:50:38 +0200

    Windows: Fix bin_i486 to bin_i686 in build.bash.

 windows/build.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cbafa710918195dbba3db02c3fab4f0538235206
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-21 18:58:44 +0200

    Docs: Use lzma_cputhreads() in 04_compress_easy_mt.c.

 doc/examples/04_compress_easy_mt.c | 30 ++++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

commit 8dbb57238d372c7263cfeb3e7f7fd9a73173156a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-21 18:56:44 +0200

    Docs: Update docs/examples/00_README.txt.

 doc/examples/00_README.txt | 4 ++++
 1 file changed, 4 insertions(+)

commit 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-21 18:11:17 +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.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 6 +++---
 src/liblzma/liblzma.map        | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

commit 3e8bd1d15e417f2d588e9be50ce027ee3d48b2da
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-21 18:05:03 +0200

    Avoid variable-length arrays in the debug programs.

 debug/full_flush.c | 3 ++-
 debug/sync_flush.c | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 72f7307cfdceb941aeb2bf30d424cc0d13621786
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-21 18:01:45 +0200

    Build: Include 04_compress_easy_mt.c in the tarball.

 Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 2cb82ff21c62def11f3683a8bb0aaf363102aaa0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-21 18:00:38 +0200

    Fix build when --disable-threads is used.

 src/common/mythread.h | 2 ++
 1 file changed, 2 insertions(+)

commit 9b9e3536e458ef958f66b0e8982efc9d36de4d17
Author: Adrien Nader <adrien@notk.org>
Date:   2014-12-21 15:56:15 +0100

    po/fr: improve wording for help for --lzma1/--lzma2.

 po/fr.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a8b6b569e7fadbf5b5b9139d53bc764015c15027
Author: Adrien Nader <adrien@notk.org>
Date:   2014-12-21 15:55:48 +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@tukaani.org>
Date:   2014-12-21 14:32:33 +0200

    Update NEWS for 5.2.0.

 NEWS | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

commit cec2ee863b3a88f4bf039cb00f73c4a4fc93a429
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-21 14:32:22 +0200

    Update NEWS for 5.0.8.

 NEWS | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 42e97a32649bf53ce43be2258b902a417c6e7fa1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-21 14:07:54 +0200

    xz: Fix a comment.

 src/xz/options.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 29b95d5d6665cedffa6a9d6d3d914f981e852182
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-20 20:43:14 +0200

    Update INSTALL about the dependencies of the scripts.

 INSTALL | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

commit 3af91040bb42c21afbb81f5568c3313125e61192
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-20 20:42:33 +0200

    Windows: Update build instructions.

 INSTALL                     | 15 +++++++++------
 windows/INSTALL-Windows.txt | 44 +++++++++++++++++++++-----------------------
 2 files changed, 30 insertions(+), 29 deletions(-)

commit 0152f72bf6289d744823dc6c849538f3a139ad70
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-20 20:41:48 +0200

    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.

 windows/README-Windows.txt | 30 ++++++++++++++++--------------
 windows/build.bash         | 23 ++++++++++++++---------
 2 files changed, 30 insertions(+), 23 deletions(-)

commit 4a1f6133ee5533cee8d91e06fcc22443e5f1881a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-19 15:51:50 +0200

    Windows: Define TUKLIB_SYMBOL_PREFIX in config.h.
    
    It is to keep all symbols in the lzma_ namespace.

 windows/config.h | 3 +++
 1 file changed, 3 insertions(+)

commit 7f7d093de79eee0c7dbfd7433647e46302f19f82
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-16 21:00:09 +0200

    xz: Update the man page about --threads.

 src/xz/xz.1 | 5 -----
 1 file changed, 5 deletions(-)

commit 009823448b82aa5f465668878a544c5842885407
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-16 20:57:43 +0200

    xz: Update the man page about --block-size.

 src/xz/xz.1 | 41 +++++++++++++++++++++++++++++++++--------
 1 file changed, 33 insertions(+), 8 deletions(-)

commit 7dddfbeb499e528940bc12047355c184644aafe9
Author: Adrien Nader <adrien@notk.org>
Date:   2014-12-10 22:26:57 +0100

    po/fr: several more translation updates: reword and handle --ignore-check.

 po/fr.po | 50 ++++++++++++++++++++++++++------------------------
 1 file changed, 26 insertions(+), 24 deletions(-)

commit 6eca5be40e04ddc4b738d493e4e56835956d8b69
Author: Adrien Nader <adrien@notk.org>
Date:   2014-12-10 22:23:01 +0100

    po/fr: yet another place where my email address had to be updated.

 po/fr.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d1003673e92ba47edd6aeeb3dbea05c18269d0e7
Author: Adrien Nader <adrien@notk.org>
Date:   2014-12-10 22:22:20 +0100

    po/fr: fix several typos that have been around since the beginning.

 po/fr.po | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit 4c5aa911a0df027e46171e368debc543d2fa72b2
Author: Adrien Nader <adrien@notk.org>
Date:   2014-12-03 20:02:31 +0100

    po/fr: last batch of new translations for now.
    
    Four new error messages.

 po/fr.po | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 3e3099e36d27059499e7996fb38a62e8ab01d356
Author: Adrien Nader <adrien@notk.org>
Date:   2014-12-03 20:01:32 +0100

    po/fr: translations for --threads, --block-size and --block-list.

 po/fr.po | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit e7d96a5933eec4e9d4a62569ee88df0ebb0f1d53
Author: Adrien Nader <adrien@notk.org>
Date:   2014-12-03 20:00:53 +0100

    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.

 po/fr.po | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

commit 46cbb9033af8a21fafe543302d6919746e0d72af
Author: Adrien Nader <adrien@notk.org>
Date:   2014-12-03 19:58:25 +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.

 po/fr.po | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 7ce49d444f04e73145f79c832eb4d510594b074a
Author: Adrien Nader <adrien@notk.org>
Date:   2014-12-03 19:56:12 +0100

    po/fr: update my email address and copyright years.

 po/fr.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 214c553ebc3047cd720da1ce5c80cf7c38118d3c
Author: Adrien Nader <adrien@notk.org>
Date:   2014-11-26 10:08:26 +0100

    fr.po: commit file after only "update-po" so actual is readable.

 po/fr.po | 311 ++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 199 insertions(+), 112 deletions(-)

commit 1190c641af09cde85f8bd0fbe5c4906f4a29431b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-12-02 20:04:07 +0200

    liblzma: Document how lzma_mt.block_size affects memory usage.

 src/liblzma/api/lzma/container.h | 4 ++++
 1 file changed, 4 insertions(+)

commit e4fc1d2f9571fba79ce383595be2ea2a9257def0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-11-28 20:07:18 +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@tukaani.org>
Date:   2014-11-26 20:12:27 +0200

    Remove LZMA_UNSTABLE macro.

 src/liblzma/api/lzma/container.h | 4 ----
 src/liblzma/common/common.h      | 2 --
 src/xz/private.h                 | 1 -
 3 files changed, 7 deletions(-)

commit 6d9c0ce9f2677b159e32b224aba5b535b304a705
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-11-26 20:10:33 +0200

    liblzma: Update lzma_stream_encoder_mt() API docs.

 src/liblzma/api/lzma/container.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 2301f3f05dd9742f42cda8f0f318864f5dc39ab3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-11-25 12:32:05 +0200

    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).

 src/liblzma/common/stream_encoder_mt.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 107a263d5bb63cd3593fd6a5c938706539f84523
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-11-17 19:11:49 +0200

    Build: Update m4/ax_pthread.m4 from Autoconf Archive.

 m4/ax_pthread.m4 | 71 +++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 47 insertions(+), 24 deletions(-)

commit b13a781833399ff5726cfc997f3cb2f0acbdbf31
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-11-17 18:52:21 +0200

    Build: Replace obsolete AC_HELP_STRING with AS_HELP_STRING.

 configure.ac         | 36 ++++++++++++++++++------------------
 m4/tuklib_integer.m4 |  2 +-
 2 files changed, 19 insertions(+), 19 deletions(-)

commit 542cac122ed3550148a2af0033af22b757491378
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-11-17 18:43:19 +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 | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 7b03a15cea8cd4f19ed680b51c4bcbae3ce4142f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-11-10 18:54:40 +0200

    xzdiff: Use mkdir if mktemp isn't available.

 src/scripts/xzdiff.in | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

commit f8c13e5e3609581d5dd9f8777985ca07f2390ad7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-11-10 18:45:01 +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.

 src/scripts/xzdiff.in | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 7716dcf9df7f457500cb657314e7a9aea5fedb06
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-11-10 15:38:47 +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.

 src/liblzma/common/stream_encoder_mt.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 230fa4a605542c84b4178a57381695a0af4e779b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-11-10 14:49:55 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 4e4ae08bc7c1711e399c9f2d26eb375d39d08101
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-10-29 21:28:25 +0200

    Update .gitignore files.

 .gitignore    | 2 ++
 m4/.gitignore | 3 +++
 2 files changed, 5 insertions(+)

commit c923b140b27d1a055db6284e10fd546ad1a7fcdb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-10-29 21:15:35 +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.

 configure.ac             |  7 ++++++-
 src/Makefile.am          | 22 +++++++++++++++++++++-
 src/liblzma/Makefile.am  |  4 ++--
 src/lzmainfo/Makefile.am |  4 ++--
 src/xz/Makefile.am       | 10 +++++-----
 src/xzdec/Makefile.am    |  8 ++++----
 6 files changed, 40 insertions(+), 15 deletions(-)

commit 08c2aa16bea0df82828f665d51fba2e0a5e8997f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-10-24 20:09:29 +0300

    Translations: Update the Italian translation.
    
    Thanks to Milo Casagrande.

 po/it.po | 452 ++++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 275 insertions(+), 177 deletions(-)

commit 2f9f61aa83539c54ff6c118a2693890f0519b3dd
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-10-18 18:51:45 +0300

    Translations: Update the Polish translation.
    
    Thanks to Jakub Bogusz.

 po/pl.po | 332 ++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 214 insertions(+), 118 deletions(-)

commit 4f9d233f67aea25e532824d11b7642cf7dee7a76
Author: Andre Noll <maan@tuebingen.mpg.de>
Date:   2014-10-14 17:30:30 +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@tuebingen.mpg.de>

 po/de.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 00502b2bedad43f0cc167ac17ae0608837ee196b
Author: Andre Noll <maan@tuebingen.mpg.de>
Date:   2014-10-14 17:30:29 +0200

    l10n: de.po: Update German translation
    
    Signed-off-by: Andre Noll <maan@systemlinux.org>

 po/de.po | 531 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 281 insertions(+), 250 deletions(-)

commit 706b0496753fb609e69f1570ec603f11162189d1
Author: Andre Noll <maan@tuebingen.mpg.de>
Date:   2014-10-14 17:30:28 +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@systemlinux.org>

 po/de.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7c32e6a935c3d7ee366abad1679bd5f322f0c7d4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-10-09 19:42:26 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 076258cc458f1e705041ac7a729b15ffe8c5214a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-10-09 19:41:51 +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 efa7b0a210e1baa8e128fc98c5443a944c39ad24
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-10-09 18:42:14 +0300

    xzgrep: Avoid passing both -q and -l to grep.
    
    The behavior of grep -ql varies:
      - GNU grep behaves like grep -q.
      - OpenBSD grep behaves like grep -l.
    
    POSIX doesn't make it 100 % clear what behavior is expected.
    Anyway, using both -q and -l at the same time makes no sense
    so both options simply should never be used at the same time.
    
    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@gmail.com>
Date:   2014-09-25 09:22:45 +0700

    l10n: vi.po: Update Vietnamese translation
    
    Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>

 po/vi.po | 136 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 84 insertions(+), 52 deletions(-)

commit c4911f2db36d811896c73c008b4218d8fa9a4730
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-09-25 18:38:48 +0300

    Build: Detect supported compiler warning flags better.
    
    Clang and nowadays also GCC accept any -Wfoobar option
    but then may give a warning that an unknown warning option
    was specified. To avoid adding unsupported warning options,
    the options are now tested with -Werror.
    
    Thanks to Charles Diza.

 configure.ac | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 76e75522ed6f5c228d55587dee5a997893f6e474
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-09-20 21:01:21 +0300

    Update NEWS for 5.0.7.

 NEWS | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit d62028b4c1174fc67b6929f126f5eb24c018c700
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-09-20 19:42:56 +0300

    liblzma: Fix a portability problem in Makefile.am.
    
    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.
    
    Thanks to Christian Weisgerber for the patch.

 src/liblzma/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c35de31d4283edad3e57d37ffe939406542cb7bb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-09-14 21:54:09 +0300

    Bump the version number to 5.1.4beta.

 src/liblzma/api/lzma/version.h | 4 ++--
 src/liblzma/liblzma.map        | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit e9e097e22cacdaa23e5414fea7913535449cb340
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-09-14 21:50:13 +0300

    Update NEWS for 5.0.6 and 5.1.4beta.

 NEWS | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

commit 642f856bb8562ab66704b1e01ac7bc08b6d0a663
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-09-14 21:02:41 +0300

    Update TODO.

 TODO | 38 ++++++++++++++++++++++++++++++++++----
 1 file changed, 34 insertions(+), 4 deletions(-)

commit 6b5e3b9eff5b8cedb2aac5f524d4d60fc8a48124
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-08-05 22:32:36 +0300

    xz: Add --ignore-check.

 src/xz/args.c    |  7 +++++++
 src/xz/args.h    |  1 +
 src/xz/coder.c   | 10 +++++++++-
 src/xz/message.c |  2 ++
 src/xz/xz.1      | 19 +++++++++++++++++++
 5 files changed, 38 insertions(+), 1 deletion(-)

commit 9adbc2ff373f979c917cdfd3679ce0ebd59f1040
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-08-05 22:15:07 +0300

    liblzma: Add support for LZMA_IGNORE_CHECK.

 src/liblzma/api/lzma/container.h    | 24 ++++++++++++++++++++++++
 src/liblzma/common/common.h         |  1 +
 src/liblzma/common/stream_decoder.c | 14 ++++++++++++--
 3 files changed, 37 insertions(+), 2 deletions(-)

commit 0e0f34b8e4f1c60ecaec15c2105982381cc9c3e6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-08-05 22:03:30 +0300

    liblzma: Add support for lzma_block.ignore_check.
    
    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.

 src/liblzma/api/lzma/block.h              | 50 ++++++++++++++++++++++++-------
 src/liblzma/common/block_buffer_encoder.c |  2 +-
 src/liblzma/common/block_decoder.c        | 18 ++++++++---
 src/liblzma/common/block_encoder.c        |  2 +-
 src/liblzma/common/block_header_decoder.c | 12 ++++++--
 src/liblzma/common/block_header_encoder.c |  2 +-
 src/liblzma/common/block_util.c           |  2 +-
 7 files changed, 68 insertions(+), 20 deletions(-)

commit 71e1437ab585b46f7a25f5a131557d3d1c0cbaa2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-08-04 19:25:58 +0300

    liblzma: Use lzma_memcmplen() in the BT3 match finder.
    
    I had missed this when writing the commit
    5db75054e900fa06ef5ade5f2c21dffdd5d16141.
    
    Thanks to Jun I Jin.

 src/liblzma/lz/lz_encoder_mf.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 41dc9ea06e1414ebe8ef52afc8fc15b6e3282b04
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-08-04 00:25:44 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 5dcffdbcc23a68abc3ac3539b30be71bc9b5af84
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-08-03 21:32:25 +0300

    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/check/sha256.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a9477d1e0c6fd0e47e637d051e7b9e2a5d9af517
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-08-03 21:08:12 +0300

    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.

 src/liblzma/check/sha256.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

commit 5a76c7c8ee9a0afbeedb1c211db9224260404347
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-08-03 20:38:13 +0300

    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.

 src/liblzma/check/sha256.c | 5 -----
 1 file changed, 5 deletions(-)

commit 9a096f8e57509775c331950b8351bbca77bdcfa8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-08-03 20:33:38 +0300

    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.

 src/liblzma/check/sha256.c | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

commit bc7650d87bf27f85f1a2a806dc2db1780e09e6a5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-08-03 19:56:43 +0300

    liblzma: SHA-256: Do the byteswapping without a temporary buffer.

 src/liblzma/check/sha256.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

commit 544aaa3d13554e8640f9caf7db717a96360ec0f6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-07-25 22:38:28 +0300

    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".

 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

commit f48fce093b07aeda95c18850f5e086d9f2383380
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-07-25 22:30:38 +0300

    liblzma: Simplify LZMA fast mode code by using memcmp().

 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

commit 6bf5308e34e23dede5b301b1b9b4f131dacd9218
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-07-25 22:29:49 +0300

    liblzma: Use lzma_memcmplen() in fast mode of LZMA.

 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 353212137e51e45b105a3a3fc2e6879f1cf0d492
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-07-25 21:16:23 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 5db75054e900fa06ef5ade5f2c21dffdd5d16141
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-07-25 21:15:07 +0300

    liblzma: Use lzma_memcmplen() in the match finders.
    
    This doesn't change the match finder output.

 src/liblzma/lz/lz_encoder.c    | 13 ++++++++++++-
 src/liblzma/lz/lz_encoder_mf.c | 33 +++++++++++----------------------
 2 files changed, 23 insertions(+), 23 deletions(-)

commit e1c8f1d01f4a4e2136173edab2dc63c71ef038f4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-07-25 20:57:20 +0300

    liblzma: Add lzma_memcmplen() for fast memory comparison.
    
    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.

 configure.ac                    |  13 +++
 src/liblzma/common/Makefile.inc |   1 +
 src/liblzma/common/memcmplen.h  | 170 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 184 insertions(+)

commit 765735cf52e5123586e74a51b9c073b5257f631f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-07-12 21:10:09 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 59da01785ef66c7e62f36e70ca808fd2824bb995
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-07-12 20:06:08 +0300

    Translations: Add Vietnamese translation.
    
    Thanks to Trần Ngọc Quân.

 po/LINGUAS |    1 +
 po/vi.po   | 1007 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 1008 insertions(+)

commit 17215f751c354852700e7f8592ccf319570a0721
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-06-29 20:54:14 +0300

    xz: Update the help message of a few options.
    
    Updated: --threads, --block-size, and --block-list
    Added: --flush-timeout

 src/xz/message.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

commit 96864a6ddf91ad693d102ea165f3d7918744d582
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-06-18 22:07:06 +0300

    xz: Use lzma_cputhreads() instead of own copy of tuklib_cpucores().

 src/xz/Makefile.am |  1 -
 src/xz/hardware.c  | 12 +++++++++---
 2 files changed, 9 insertions(+), 4 deletions(-)

commit a115cc3748482e277f42a968baa3cd266f031dba
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-06-18 22:04:24 +0300

    liblzma: Add lzma_cputhreads().

 src/liblzma/Makefile.am                  |  8 +++++++-
 src/liblzma/api/lzma/hardware.h          | 14 ++++++++++++++
 src/liblzma/common/Makefile.inc          |  1 +
 src/liblzma/common/hardware_cputhreads.c | 22 ++++++++++++++++++++++
 src/liblzma/liblzma.map                  |  1 +
 5 files changed, 45 insertions(+), 1 deletion(-)

commit 3ce3e7976904fbab4e6482bafa442856f77a51fa
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-06-18 19:11:52 +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.

 src/xz/coder.c | 30 +++++++++++++++++++++---------
 1 file changed, 21 insertions(+), 9 deletions(-)

commit 381ac14ed79e5d38809f251705be8b3193bba417
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-06-13 19:21:54 +0300

    xzgrep: List xzgrep_expected_output in tests/Makefile.am.

 tests/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 4244b65b06d5ecaf6f9dd0387ac7e3166bd2364e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-06-13 18:58:22 +0300

    xzgrep: Improve the test script.
    
    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 1e60f2c0a0ee6c18b02943ce56214799a70aac26
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-06-11 21:03:25 +0300

    xzgrep: Add a test for the previous fix.
    
    This is a simplified version of Pavel Raiskup's
    original patch.

 tests/test_scripts.sh | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

commit ceca37901783988204caaf40dff4623d535cc789
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-06-11 20:43:28 +0300

    xzgrep: exit 0 when at least one file matches.
    
    Mimic the original grep behavior and return exit_success when
    at least one xz compressed file matches given pattern.
    
    Original bugreport:
    https://bugzilla.redhat.com/show_bug.cgi?id=1108085
    
    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@tukaani.org>
Date:   2014-06-09 21:21:24 +0300

    xz: Force single-threaded mode when --flush-timeout is used.

 src/xz/coder.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 87f1a24810805187d7bbc8ac5512e7eec307ddf5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-05-25 22:05:39 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit da1718f266fcfc091e7bf08aae1bc986d0e6cc6b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-05-25 21:45:56 +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.

 src/liblzma/lz/lz_encoder.c    | 84 ++++++++++++++++++++++--------------------
 src/liblzma/lz/lz_encoder.h    |  2 +-
 src/liblzma/lz/lz_encoder_mf.c | 31 +++++++++-------
 3 files changed, 62 insertions(+), 55 deletions(-)

commit 28af24e9cf2eb259997c85dce13d4c97b3daa47a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-05-25 19:25:57 +0300

    liblzma: Add the internal function lzma_alloc_zero().

 src/liblzma/common/common.c | 21 +++++++++++++++++++++
 src/liblzma/common/common.h |  6 ++++++
 2 files changed, 27 insertions(+)

commit ed9ac85822c490e34b68c259afa0b385d21d1c40
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-05-08 18:03:09 +0300

    xz: Fix uint64_t vs. size_t which broke 32-bit build.
    
    Thanks to Christian Hesse.

 src/xz/coder.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d716acdae3fa7996f9e68a7bac012e6d8d13dd02
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-05-04 11:09:11 +0300

    Docs: Update comments to refer to lzma/lzma12.h in example programs.

 doc/examples/03_compress_custom.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 4d5b7b3fda31241ca86ed35e08e73f776ee916e0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-05-04 11:07:17 +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.

 src/liblzma/api/Makefile.am               | 2 +-
 src/liblzma/api/lzma.h                    | 2 +-
 src/liblzma/api/lzma/{lzma.h => lzma12.h} | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 1555a9c5664afc7893a2b75e9970105437f01ef1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-04-25 17:53:42 +0300

    Build: Fix the combination of --disable-xzdec --enable-lzmadec.
    
    In this case "make install" could fail if the man page directory
    didn't already exist at the destination. If it did exist, a
    dangling symlink was created there. Now the link is omitted
    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 56056571df3377eaa6ae6233b3ccc5d72e81d43d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-04-25 17:44:26 +0300

    Build: Add --disable-doc to configure.

 INSTALL      | 6 ++++++
 Makefile.am  | 2 ++
 configure.ac | 6 ++++++
 3 files changed, 14 insertions(+)

commit 6de61d8721097a6214810841aa85b08e303ac538
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-04-24 18:06:24 +0300

    Update INSTALL.
    
    Add a note about failing "make check". The source of
    the problem should be fixed in libtool (if it really is
    a libtool bug and not mine) but I'm unable to spend time
    on that for now. Thanks to Nelson H. F. Beebe for reporting
    the issue.
    
    Add a note about a possible need to run "ldconfig" after
    "make install".

 INSTALL | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

commit 54df428799a8d853639b753d0e6784694d73eb3e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-04-09 17:26:10 +0300

    xz: Rename a variable to avoid a namespace collision on Solaris.
    
    I don't know the details but I have an impression that there's
    no problem in practice if using GCC since people have built xz
    with GCC (without patching xz), but renaming the variable cannot
    hurt either.
    
    Thanks to Mark Ashley.

 src/xz/signals.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit 5876ca27daa1429676b1160007d9688266907f00
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-01-29 20:19:41 +0200

    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.

 doc/examples/04_compress_easy_mt.c | 184 +++++++++++++++++++++++++++++++++++++
 doc/examples/Makefile              |   3 +-
 2 files changed, 186 insertions(+), 1 deletion(-)

commit 9494fb6d0ff41c585326f00aa8f7fe58f8106a5e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-01-29 20:13:51 +0200

    liblzma: Fix lzma_mt.preset not working with lzma_stream_encoder_mt().
    
    It read the filter chain from a wrong variable.

 src/liblzma/common/stream_encoder_mt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 673a4cb53de3a715685cb1b836da57a3c7dcd43c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-01-20 11:20:40 +0200

    liblzma: Fix typo in a comment.

 src/liblzma/api/lzma/block.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ad96a871a1470eb76d6233d3890ce9338047b7a3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-01-12 19:38:43 +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.

 windows/config.h | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 139 insertions(+)

commit 3d5c090872fab4212b57c290e8ed4d02c78c1737
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-01-12 17:41:14 +0200

    xz: Fix a comment.

 src/xz/coder.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 69fd4e1c932c7975476a0143c86e45d81b60d3f9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-01-12 17:04:33 +0200

    Windows: Add MSVC defines for inline and restrict keywords.

 src/common/sysdefs.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit a19d9e8575ee6647cd9154cf1f20203f1330485f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-01-12 16:44:52 +0200

    liblzma: Avoid C99 compound literal arrays.
    
    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 e28528f1c867b2ed4ac91195ad08efb9bb8a6263
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-01-12 12:50:30 +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 5ad1effc45adfb7dabc9a98e79736077e6b7e2d5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-01-12 12:17:08 +0200

    xz: Fix use of wrong variable.
    
    Since the only call to suffix_set() uses optarg
    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 3e62c68d75b5a3fdd46dbb34bb335d73289860d5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2014-01-12 12:11:36 +0200

    Fix typos in comments.

 src/common/mythread.h          | 2 +-
 src/liblzma/check/crc32_fast.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit e90ea601fb72867ec04adf456cbe4bf9520fd412
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-11-26 18:20:16 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit b22e94d8d15764416354e04729382a7371ae2c30
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-11-26 18:20:09 +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@tukaani.org>
Date:   2013-11-12 16:38:57 +0200

    xz: Update the man page about --block-size and --block-list.

 src/xz/xz.1 | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

commit 76be7c612e6bcc38724488ccc3b8bcb1cfec9f0a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-11-12 16:30:53 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit dd750acbe2259d75444ef0f8da2d4bacc90d7afc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-11-12 16:29:48 +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.

 src/xz/coder.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 75 insertions(+), 15 deletions(-)

commit ae222fe9805d0161d022d75ba8485dab8bf6d7d5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-10-26 13:26:14 +0300

    Bump the version number to 5.1.3alpha.

 src/liblzma/api/lzma/version.h | 2 +-
 src/liblzma/liblzma.map        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 2193837a6a597cd3bf4e9ddf49421a5697d8e155
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-10-26 13:25:02 +0300

    Update NEWS for 5.1.3alpha.

 NEWS | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit ed48e75e2763876173aef8902da407a8eb28854b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-10-26 12:47:04 +0300

    Update TODO.

 TODO | 4 ----
 1 file changed, 4 deletions(-)

commit 841da0352d79a56a44796a4c39163429c9f039a3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-10-25 22:41:28 +0300

    xz: Document behavior of --block-list with threads.
    
    This needs to be updated before 5.2.0.

 src/xz/xz.1 | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

commit 56feb8665b78c1032aabd53c619c62af51defe64
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-10-22 20:03:12 +0300

    xz: Document --flush-timeout=TIMEOUT on the man page.

 src/xz/xz.1 | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

commit ba413da1d5bb3324287cf3174922acd921165971
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-10-22 19:51:55 +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.

 src/xz/coder.c | 32 +++++++++++++++-----------------
 1 file changed, 15 insertions(+), 17 deletions(-)

commit 0cd45fc2bc5537de287a0bc005e2d67467a92148
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-10-02 20:05:23 +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.

 src/liblzma/common/stream_encoder_mt.c | 55 ++++++++++++++++++++++++----------
 1 file changed, 39 insertions(+), 16 deletions(-)

commit 97bb38712f414fabecca908af2e38a12570293fd
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-10-02 12:55:11 +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.

 src/liblzma/api/lzma/base.h         | 37 ++++++++++++++++++++++++++++++-------
 src/liblzma/common/common.c         | 17 +++++++++++++++--
 src/liblzma/common/common.h         |  7 ++++++-
 src/liblzma/common/stream_encoder.c |  4 +++-
 4 files changed, 54 insertions(+), 11 deletions(-)

commit fef0c6b410c08e581c9178700a4e7599f0895ff9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-09-17 11:57:51 +0300

    liblzma: Add block_buffer_encoder.h into Makefile.inc.
    
    This should have been in b465da5988dd59ad98fda10c2e4ea13d0b9c73bc.

 src/liblzma/common/Makefile.inc | 1 +
 1 file changed, 1 insertion(+)

commit 8083e03291b6d21c0f538163e187b4e8cd5594e4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-09-17 11:55:38 +0300

    xz: Add a missing test for TUKLIB_DOSLIKE.

 src/xz/file_io.c | 2 ++
 1 file changed, 2 insertions(+)

commit 6b44b4a775fe29ecc7bcb7996e086e3bc09e5fd0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-09-17 11:52:28 +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.

 INSTALL                                |  41 ++-
 configure.ac                           | 118 ++++++--
 src/common/mythread.h                  | 513 ++++++++++++++++++++++++++-------
 src/liblzma/common/stream_encoder_mt.c |  83 +++---
 src/xz/coder.c                         |   8 +-
 windows/README-Windows.txt             |   2 +-
 windows/build.bash                     |  23 +-
 7 files changed, 573 insertions(+), 215 deletions(-)

commit ae0ab74a88d5b9b15845f1d9a24ade4349a54f9f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-09-11 14:40:35 +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 72975df6c8c59aaf849138ab3606e8fb6970596a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-09-09 20:37:03 +0300

    Build: Create liblzma.pc in a src/liblzma/Makefile.am.
    
    Previously it was done in configure, but doing that goes
    against the Autoconf manual. Autoconf requires that it is
    possible to override e.g. prefix after running configure
    and that doesn't work correctly if liblzma.pc is created
    by configure.
    
    A potential downside of this change is that now e.g.
    libdir in liblzma.pc is a standalone string instead of
    being defined via ${prefix}, so if one overrides prefix
    when running pkg-config the libdir won't get the new value.
    I don't know if this matters in practice.
    
    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@tukaani.org>
Date:   2013-08-04 15:24:09 +0300

    Fix the previous commit which broke the build.
    
    Apparently I didn't even compile-test the previous commit.
    
    Thanks to Christian Hesse.

 src/common/tuklib_cpucores.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 124eb69c7857f618b4807588c51bc9ba21bf8691
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-08-03 13:52:58 +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.

 m4/tuklib_cpucores.m4        | 19 +++++++++++++++++--
 src/common/tuklib_cpucores.c | 13 ++++++++++++-
 2 files changed, 29 insertions(+), 3 deletions(-)

commit eada8a875ce3fd521cb42e4ace2624d3d49c5f35
Author: Anders F Bjorklund <afb@users.sourceforge.net>
Date:   2013-08-02 15:59:46 +0200

    macosx: separate liblzma package

 macosx/build.sh | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

commit be0100d01ca6a75899d051bee00acf17e6dc0c15
Author: Anders F Bjorklund <afb@users.sourceforge.net>
Date:   2013-08-02 15:58:44 +0200

    macosx: set minimum to leopard

 macosx/build.sh | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit 416729e2d743f4b2fe9fd438eedeb98adce033c3
Author: Anders F Bjorklund <afb@users.sourceforge.net>
Date:   2011-08-07 13:13:30 +0200

    move configurables into variables

 macosx/build.sh | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

commit 16581080e5f29f9a4e49efece21c5bf572323acc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-07-15 14:08:41 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 3e2b198ba37b624efd9c7caee2a435dc986b46c6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-07-15 14:08:02 +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@tukaani.org>
Date:   2013-07-04 14:18:46 +0300

    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.

 src/xz/args.c    |  7 +++++++
 src/xz/coder.c   | 46 +++++++++++++++++++++++++++++++++++-----------
 src/xz/file_io.c | 46 ++++++++++++++++++++++++++++++++++++----------
 3 files changed, 78 insertions(+), 21 deletions(-)

commit fa381acaf9a29a8114e1c0a97de99bab9adb014e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-07-04 13:41:03 +0300

    xz: Don't set src_eof=true after an I/O error because it's useless.

 src/xz/file_io.c | 3 ---
 1 file changed, 3 deletions(-)

commit ea00545beace5b950f709ec21e46878e0f448678
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-07-04 13:25:11 +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.

 src/xz/coder.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 736903c64bef394c06685d79908e397bcb08b88f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-07-04 12:51:57 +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().

 src/xz/Makefile.am |  2 ++
 src/xz/coder.c     |  5 +++
 src/xz/message.c   | 54 +++++++++------------------------
 src/xz/mytime.c    | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/xz/mytime.h    | 47 ++++++++++++++++++++++++++++
 src/xz/private.h   |  1 +
 6 files changed, 158 insertions(+), 40 deletions(-)

commit 24edf8d807e24ffaa1e793114d94cca3b970027d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-07-01 14:35:03 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit c0627b3fceacfa1ed162f5f55235360ea26f569a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-07-01 14:34:11 +0300

    xz: Silence a warning seen with _FORTIFY_SOURCE=2.
    
    Thanks to Christian Hesse.

 src/xz/file_io.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 1936718bb38ee394bd89836fdd4eabc0beb02443
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-30 19:40:11 +0300

    Update NEWS for 5.0.5.

 NEWS | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

commit a37ae8b5eb6093a530198f109c6f7a538c80ecf0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-30 18:02:27 +0300

    Man pages: Use similar syntax for synopsis as in xz.
    
    The man pages of lzmainfo, xzmore, and xzdec had similar
    constructs as the man page of xz had before the commit
    eb6ca9854b8eb9fbf72497c1cf608d6b19d2d494. Eric S. Raymond
    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 cdba9ddd870ae72fd6219a125662c20ec997f86c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-29 15:59:13 +0300

    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.

 src/xz/file_io.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 49 insertions(+), 8 deletions(-)

commit e61a5c95da3fe31281d959e5e842885a8ba2b5bd
Author: Lasse Collin <lasse.collin@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@tukaani.org>
Date:   2013-06-28 23:48:05 +0300

    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.

 src/xz/file_io.c | 56 ++++++++++++++++++++++++++++++++++++++++++++------------
 src/xz/file_io.h |  8 ++++++++
 src/xz/signals.c |  5 +++++
 3 files changed, 57 insertions(+), 12 deletions(-)

commit 3541bc79d0cfabc0ad155c99bfdad1289f17fec3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-28 22:51:02 +0300

    xz: Use non-blocking I/O for the input file.

 src/xz/file_io.c | 156 +++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 111 insertions(+), 45 deletions(-)

commit 78673a08bed5066c81e8a8e90d20e670c28ecfd5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-28 18:46:13 +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 a616fdad34b48b2932ef03fb87309dcc8b829527
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-28 18:09:47 +0300

    xz: Fix error detection of fcntl(fd, F_SETFL, flags) calls.
    
    POSIX says that fcntl(fd, F_SETFL, flags) returns -1 on
    error and "other than -1" on success. This is how it is
    documented e.g. on OpenBSD too. On Linux, success with
    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 4a08a6e4c61c65ab763ab314100a6d7a3bb89298
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-28 17:36:47 +0300

    xz: Fix use of wrong variable in a fcntl() call.
    
    Due to a wrong variable name, when writing a sparse file
    to standard output, *all* file status flags were cleared
    (to the extent the operating system allowed it) instead of
    only clearing the O_APPEND flag. In practice this worked
    fine in the common situations on GNU/Linux, but I didn't
    check how it behaved elsewhere.
    
    The original flags were still restored correctly. I still
    changed the code to use a separate boolean variable to
    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@tukaani.org>
Date:   2013-06-28 14:55:37 +0300

    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.

 src/xz/file_io.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

commit 84d2da6c9dc252f441deb7626c2522202b005d4d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-26 13:30:57 +0300

    xz: Check the value of lzma_stream_flags.version in --list.
    
    It is a no-op for now, but if an old xz version is used
    together with a newer liblzma that supports something new,
    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 9376f5f8f762296f2173d61af9101112c36f38c0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-26 12:17:00 +0300

    Build: Require Automake 1.12 and use serial-tests option.
    
    It should actually still work with Automake 1.10 if
    the serial-tests option is removed. Automake 1.13 started
    using parallel tests by default and the option to get
    the old behavior isn't supported before 1.12.
    
    At least for now, parallel tests don't improve anything
    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@tukaani.org>
Date:   2013-06-23 18:59:13 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 46540e4c10923e363741ff5aab99e79fc0ce6ee8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-23 18:57:23 +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.

 src/liblzma/common/stream_encoder_mt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ebb501ec73cecc546c67117dd01b5e33c90bfb4a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-23 17:36:47 +0300

    xz: Validate Uncompressed Size from Block Header in list.c.
    
    This affects only "xz -lvv". Normal decompression with xz
    already detected if Block Header and Index had mismatched
    Uncompressed Size fields. So this just makes "xz -lvv"
    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 c09e91dd236d3cabee0fc48312b3dc8cceae41ab
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-21 22:08:11 +0300

    Update THANKS.

 THANKS | 2 ++
 1 file changed, 2 insertions(+)

commit eb6ca9854b8eb9fbf72497c1cf608d6b19d2d494
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-21 22:04:45 +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 0c0a1947e6ad90a0a10b7a5c39f6ab99a0aa5c93
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-21 21:54:59 +0300

    xz: A couple of man page fixes.
    
    Now the interaction of presets and custom filter chains
    is described correctly. Earlier it contradicted itself.
    
    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 2fcda89939c903106c429e109083d43d894049e0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-06-21 21:50:26 +0300

    xz: Fix interaction between preset and custom filter chains.
    
    There was somewhat illogical behavior when --extreme was
    specified and mixed with custom filter chains.
    
    Before this commit, "xz -9 --lzma2 -e" was equivalent
    to "xz --lzma2". After it is equivalent to "xz -6e"
    (all earlier preset options get forgotten when a custom
    filter chain is specified and the default preset is 6
    to which -e is applied). I find this less illogical.
    
    This also affects the meaning of "xz -9e --lzma2 -7".
    Earlier it was equivalent to "xz -7e" (the -e specified
    before a custom filter chain wasn't forgotten). Now it
    is "xz -7". Note that "xz -7e" still is the same as "xz -e7".
    
    Hopefully very few cared about this in the first place,
    so pretty much no one should even notice this change.
    
    Thanks to Conley Moorhous.

 src/xz/coder.c | 35 +++++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 14 deletions(-)

commit 97379c5ea758da3f8b0bc444d5f7fa43753ce610
Author: Lasse Collin <lasse.collin@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.
    The code doesn't currently use any VLAs and it shouldn't in the
    future either to stay compatible with C11 without requiring any
    optional C11 features.

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit 8957c58609d3987c58aa72b96c436cf565cc4917
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-04-15 19:29:09 +0300

    xzdec: Improve the --help message.
    
    The options are now ordered in the same order as in xz's help
    message.
    
    Descriptions were added to the options that are ignored.
    I left them in parenthesis even if it looks a bit weird
    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 ed886e1a92534a24401d0e99c11f1dcff3b5220a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-04-05 19:25:40 +0300

    Update THANKS.

 THANKS | 2 ++
 1 file changed, 2 insertions(+)

commit 5019413a055ce29e660dbbf15e02443cb5a26c59
Author: Jeff Bastian <jbastian@redhat.com>
Date:   2013-04-03 13:59:17 +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 5ea900cb5ad862bca81316729f92357c1fc040ce
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-03-23 22:25:15 +0200

    liblzma: Be less picky in lzma_alone_decoder().
    
    To avoid false positives when detecting .lzma files,
    rare values in dictionary size and uncompressed size fields
    were rejected. They will still be rejected if .lzma files
    are decoded with lzma_auto_decoder(), but when using
    lzma_alone_decoder() directly, such files will now be accepted.
    Hopefully this is an OK compromise.
    
    This doesn't affect xz because xz still has its own file
    format detection code. This does affect lzmadec though.
    So after this commit lzmadec will accept files that xz or
    xz-emulating-lzma doesn't.
    
    NOTE: lzma_alone_decoder() still won't decode all .lzma files
    because liblzma's LZMA decoder doesn't support lc + lp > 4.
    
    Reported here:
    http://sourceforge.net/projects/lzmautils/forums/forum/708858/topic/7068827

 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 bb117fffa84604b6e3811b068c80db82bf7f7b05
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-03-23 21:55:13 +0200

    liblzma: Use lzma_block_buffer_bound64() in threaded encoder.
    
    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/stream_encoder_mt.c | 66 +++++++++++++++++++++++++---------
 1 file changed, 50 insertions(+), 16 deletions(-)

commit e572e123b55b29527e54ce5f0807f115481d78b9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-03-23 21:51:38 +0200

    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).

 src/liblzma/common/stream_encoder_mt.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit b465da5988dd59ad98fda10c2e4ea13d0b9c73bc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-03-23 19:17:33 +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.

 src/liblzma/api/lzma/block.h              | 18 ++++++
 src/liblzma/common/block_buffer_encoder.c | 94 +++++++++++++++++++++----------
 src/liblzma/common/block_buffer_encoder.h | 24 ++++++++
 src/liblzma/liblzma.map                   |  1 +
 4 files changed, 106 insertions(+), 31 deletions(-)

commit 9e6dabcf22ef4679f4faaae15ebd5b137ae2fad1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2013-03-05 19:14:50 +0200

    Avoid unneeded use of awk in xzless.
    
    Use "read" instead of "awk" in xzless to get the version
    number of "less". The need for awk was introduced in
    the commit db5c1817fabf7cbb9e4087b1576eb26f0747338e.
    
    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@tukaani.org>
Date:   2012-12-14 20:13:32 +0200

    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.

 src/liblzma/api/lzma/base.h            | 22 +++++++++-
 src/liblzma/common/common.c            | 16 +++++++
 src/liblzma/common/common.h            |  6 +++
 src/liblzma/common/stream_encoder_mt.c | 77 +++++++++++++++++++++++++++++++---
 src/liblzma/liblzma.map                |  1 +
 src/xz/message.c                       | 20 +++++----
 6 files changed, 129 insertions(+), 13 deletions(-)

commit 2ebbb994e367f55f2561aa7c9e7451703c171f2f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-12-14 11:01:41 +0200

    liblzma: Fix mythread_sync for nested locking.

 src/common/mythread.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 4c7e28705f6de418d19cc77324ef301f996e01ff
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-12-13 21:05:36 +0200

    xz: Mention --threads in --help.
    
    Thanks to Olivier Delhomme for pointing out that this
    was still missing.

 src/xz/message.c | 4 ++++
 1 file changed, 4 insertions(+)

commit db5c1817fabf7cbb9e4087b1576eb26f0747338e
Author: Jonathan Nieder <jrnieder@gmail.com>
Date:   2012-11-19 00:10:10 -0800

    xzless: Make "less -V" parsing more robust
    
    In v4.999.9beta~30 (xzless: Support compressed standard input,
    2009-08-09), xzless learned to parse ‘less -V’ output to figure out
    whether less is new enough to handle $LESSOPEN settings starting
    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
    
    More precisely, modern ‘less’ lists the regexp implementation along
    with its version number, and xzless passes the entire version number
    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)
    
    So relax the pattern matched --- instead of expecting "less <number>",
    look for a line of the form "less <number>[ (extra parenthetical)]".
    While at it, improve the behavior when no matching line is found ---
    instead of producing a cryptic message, we can fall back on a LESSPIPE
    setting that is supported by all versions of ‘less’.
    
    The implementation uses "awk" for simplicity.  Hopefully that’s
    portable enough.
    
    Reported-by: Jörg-Volker Peetz <jvpeetz@web.de>
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

 src/scripts/xzless.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 65536214a31ecd33b6b03b68a351fb597d3703d6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-10-03 15:54:24 +0300

    xz: Fix the note about --rsyncable on the man page.

 src/xz/xz.1 | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

commit 3d93b6354927247a1569caf22ad27b07e97ee904
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-09-28 20:11:09 +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 ab225620664e235637833be2329935f9d290ba80
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-08-24 16:27:31 +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@tukaani.org>
Date:   2012-08-13 21:40:09 +0300

    xz: Add a warning to --help about alpha and beta versions.

 src/xz/message.c | 5 +++++
 1 file changed, 5 insertions(+)

commit d8eaf9d8278c23c2cf2b7ca5562d4de570d3b5db
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-08-02 17:13:30 +0300

    Build: Bump gettext version requirement to 0.18.
    
    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@tukaani.org>
Date:   2012-07-17 18:29:08 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 3778db1be53e61ff285c573af5ee468803008456
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-17 18:19:59 +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.

 src/liblzma/api/lzma/base.h                |  4 +++-
 src/liblzma/api/lzma/block.h               |  6 ++---
 src/liblzma/api/lzma/container.h           |  9 +++++---
 src/liblzma/api/lzma/filter.h              | 13 ++++++-----
 src/liblzma/api/lzma/index.h               | 16 ++++++-------
 src/liblzma/api/lzma/index_hash.h          |  4 ++--
 src/liblzma/common/alone_decoder.c         |  6 ++---
 src/liblzma/common/alone_decoder.h         |  2 +-
 src/liblzma/common/alone_encoder.c         |  8 +++----
 src/liblzma/common/auto_decoder.c          |  6 ++---
 src/liblzma/common/block_buffer_decoder.c  |  2 +-
 src/liblzma/common/block_buffer_encoder.c  |  4 ++--
 src/liblzma/common/block_decoder.c         |  6 ++---
 src/liblzma/common/block_decoder.h         |  2 +-
 src/liblzma/common/block_encoder.c         |  8 +++----
 src/liblzma/common/block_encoder.h         |  2 +-
 src/liblzma/common/block_header_decoder.c  |  4 ++--
 src/liblzma/common/common.c                | 10 ++++-----
 src/liblzma/common/common.h                | 20 +++++++++--------
 src/liblzma/common/easy_buffer_encoder.c   |  4 ++--
 src/liblzma/common/filter_buffer_decoder.c |  3 ++-
 src/liblzma/common/filter_buffer_encoder.c |  7 +++---
 src/liblzma/common/filter_common.c         |  4 ++--
 src/liblzma/common/filter_common.h         |  2 +-
 src/liblzma/common/filter_decoder.c        |  7 +++---
 src/liblzma/common/filter_decoder.h        |  2 +-
 src/liblzma/common/filter_encoder.c        |  2 +-
 src/liblzma/common/filter_encoder.h        |  2 +-
 src/liblzma/common/filter_flags_decoder.c  |  2 +-
 src/liblzma/common/index.c                 | 26 ++++++++++-----------
 src/liblzma/common/index_decoder.c         | 12 +++++-----
 src/liblzma/common/index_encoder.c         |  6 ++---
 src/liblzma/common/index_encoder.h         |  2 +-
 src/liblzma/common/index_hash.c            |  6 +++--
 src/liblzma/common/outqueue.c              |  4 ++--
 src/liblzma/common/outqueue.h              |  5 +++--
 src/liblzma/common/stream_buffer_decoder.c |  2 +-
 src/liblzma/common/stream_buffer_encoder.c |  3 ++-
 src/liblzma/common/stream_decoder.c        |  9 ++++----
 src/liblzma/common/stream_decoder.h        |  5 +++--
 src/liblzma/common/stream_encoder.c        | 10 ++++-----
 src/liblzma/common/stream_encoder_mt.c     | 16 ++++++-------
 src/liblzma/delta/delta_common.c           |  4 ++--
 src/liblzma/delta/delta_decoder.c          |  6 ++---
 src/liblzma/delta/delta_decoder.h          |  5 +++--
 src/liblzma/delta/delta_encoder.c          |  6 ++---
 src/liblzma/delta/delta_encoder.h          |  3 ++-
 src/liblzma/delta/delta_private.h          |  2 +-
 src/liblzma/lz/lz_decoder.c                |  8 +++----
 src/liblzma/lz/lz_decoder.h                |  7 +++---
 src/liblzma/lz/lz_encoder.c                | 19 ++++++++--------
 src/liblzma/lz/lz_encoder.h                |  6 ++---
 src/liblzma/lzma/lzma2_decoder.c           |  8 +++----
 src/liblzma/lzma/lzma2_decoder.h           |  5 +++--
 src/liblzma/lzma/lzma2_encoder.c           |  6 ++---
 src/liblzma/lzma/lzma2_encoder.h           |  2 +-
 src/liblzma/lzma/lzma_decoder.c            |  8 +++----
 src/liblzma/lzma/lzma_decoder.h            |  7 +++---
 src/liblzma/lzma/lzma_encoder.c            |  7 +++---
 src/liblzma/lzma/lzma_encoder.h            |  5 +++--
 src/liblzma/simple/arm.c                   |  8 ++++---
 src/liblzma/simple/armthumb.c              |  8 ++++---
 src/liblzma/simple/ia64.c                  |  8 ++++---
 src/liblzma/simple/powerpc.c               |  8 ++++---
 src/liblzma/simple/simple_coder.c          | 10 ++++-----
 src/liblzma/simple/simple_coder.h          | 36 ++++++++++++++++++++----------
 src/liblzma/simple/simple_decoder.c        |  2 +-
 src/liblzma/simple/simple_decoder.h        |  2 +-
 src/liblzma/simple/simple_private.h        |  3 ++-
 src/liblzma/simple/sparc.c                 |  8 ++++---
 src/liblzma/simple/x86.c                   |  8 ++++---
 71 files changed, 269 insertions(+), 219 deletions(-)

commit d625c7cf824fd3b61c6da84f56179e94917ff603
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-05 07:36:28 +0300

    Tests: Remove tests/test_block.c that had gotten committed accidentally.

 tests/test_block.c | 52 ----------------------------------------------------
 1 file changed, 52 deletions(-)

commit 0b09d266cce72bc4841933b171e79551e488927c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-05 07:33:35 +0300

    Build: Include macosx/build.sh in the distribution.
    
    It has been in the Git repository since 2010 but probably
    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@tukaani.org>
Date:   2012-07-05 07:28:53 +0300

    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.

 src/liblzma/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 19de545d86097c3954d69ab5d12820387f6a09bc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-05 07:24:45 +0300

    Docs: Fix the name LZMA Utils -> XZ Utils in debug/README.

 debug/README | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 672eccf57c31a40dfb956b7662db06d43e18618e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-05 07:23:17 +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@tukaani.org>
Date:   2012-07-04 22:31:58 +0300

    xz: Document --block-list better.
    
    Thanks to Jonathan Nieder.

 src/xz/xz.1 | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit c7ff218528bc8f7c65e7ef73c6515777346c6794
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-04 20:01:49 +0300

    Bump the version number to 5.1.2alpha.

 src/liblzma/api/lzma/version.h | 2 +-
 src/liblzma/liblzma.map        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 8f3c1d886f93e6478ad509ff52102b2ce7faa999
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-04 20:01:19 +0300

    Update NEWS for 5.1.2alpha.

 NEWS | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

commit 0d5fa05466e580fbc458820f87013ae7644e20e5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-04 19:58:23 +0300

    xz: Fix the version number printed by xz -lvv.
    
    The decoder bug was fixed in 5.0.2 instead of 5.0.3.

 src/xz/list.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit df11317985a4165731dde12bb0f0028da0e7b77f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-04 17:11:31 +0300

    Build: Add a comment to configure.ac about symbol versioning.

 configure.ac | 4 ++++
 1 file changed, 4 insertions(+)

commit bd9cc179e8be3ef515201d3ed9c7dd79ae88869d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-04 17:06:49 +0300

    Update TODO.

 TODO | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 4a238dd9b22f462cac5e199828bf1beb0df05884
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-04 17:05:46 +0300

    Document --enable-symbol-versions in INSTALL.

 INSTALL | 5 +++++
 1 file changed, 5 insertions(+)

commit 88ccf47205d7f3aa314d358c72ef214f10f68b43
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-03 21:16:39 +0300

    xz: Add incomplete support for --block-list.
    
    It's broken with threads and when also --block-size is used.

 src/xz/args.c    | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/xz/args.h    |  1 +
 src/xz/coder.c   | 48 ++++++++++++++++++++++++++++------
 src/xz/coder.h   |  4 +++
 src/xz/main.c    |  1 +
 src/xz/message.c |  6 +++++
 src/xz/xz.1      | 23 +++++++++++++++--
 7 files changed, 151 insertions(+), 10 deletions(-)

commit 972179cdcdf5d8949c48ee31737d87d3050b44af
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-07-01 18:44:33 +0300

    xz: Update the man page about the new field in --robot -lvv.

 src/xz/xz.1 | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

commit 1403707fc64a70976aebe66f8d9a9bd12f73a2c5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-06-28 10:47:49 +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.

 src/liblzma/lzma/lzma_decoder.c        |  8 ++++++--
 src/liblzma/rangecoder/range_decoder.h | 12 +++++++++---
 2 files changed, 15 insertions(+), 5 deletions(-)

commit eccd8017ffe2c5de473222c4963ec53c62f7fda2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-06-22 19:00:23 +0300

    Update NEWS from 5.0.4.

 NEWS | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

commit 2e6754eac26a431e8d340c28906f63bcd1e177e8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-06-22 14:34:03 +0300

    xz: Update man page date to match the latest update.

 src/xz/xz.1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b3235a0b1af45d5e1244cbe3191516966c076fa0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-06-18 21:27:47 +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 f1675f765fe228cb5a5f904f853445a03e33cfe9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-06-14 20:15:30 +0300

    Fix the top-level Makefile.am for the new example programs.

 Makefile.am | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 3a0c5378abefaf86aa39a62a7c9682bdb21568a1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-06-14 10:52:33 +0300

    Docs: Add new example programs.
    
    These have more comments than the old examples and
    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 1bd2c2c553e30c4a73cfb82abc6908efd6be6b8d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-06-14 10:33:27 +0300

    Docs: Move xz_pipe_comp.c and xz_pipe_decomp.c to doc/examples_old.
    
    It is good to keep these around to so that if someone has
    copied the decompressor bug from xz_pipe_decomp.c he has
    an example how to easily fix it.

 doc/{examples => examples_old}/xz_pipe_comp.c   | 0
 doc/{examples => examples_old}/xz_pipe_decomp.c | 0
 2 files changed, 0 insertions(+), 0 deletions(-)

commit 905f0ab5b5ce544d4b68a2ed6077df0f3d021292
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-06-14 10:33:01 +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 4bd1a3bd5fdf4870b2f96dd0b8a21657c8a58ad8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-05-30 23:14:33 +0300

    Translations: Update the French translation.
    
    Thanks to Adrien Nader.

 po/fr.po | 148 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 79 insertions(+), 69 deletions(-)

commit d2e836f2f3a87df6fe6bb0589b037db51205d910
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-05-29 23:42:37 +0300

    Translations: Update the German translation.
    
    The previous only included the new strings in v5.0.

 po/de.po | 229 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 133 insertions(+), 96 deletions(-)

commit c9a16151577ba459afd6e3528df23bc0ddb95171
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-05-29 22:26:27 +0300

    Translations: Update the German translation.

 po/de.po | 169 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 91 insertions(+), 78 deletions(-)

commit 1530a74fd48f8493372edad137a24541efe24713
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-05-29 22:14:21 +0300

    Translations: Update Polish translation.

 po/pl.po | 283 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 165 insertions(+), 118 deletions(-)

commit d8db706acb8316f9861abd432cfbe001dd6d0c5c
Author: Lasse Collin <lasse.collin@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
    all of the following was true:
    
      - The caller knows how many bytes of output to expect
        and only provides that much output space.
    
      - When the last output bytes are decoded, the
        caller-provided input buffer ends right before
        the LZMA2 end of payload marker. So LZMA2 won't
        provide more output anymore, but it won't know it
        yet and thus won't return LZMA_STREAM_END yet.
    
      - A BCJ filter is in use and it hasn't left any
        unfiltered bytes in the temp buffer. This can happen
        with any BCJ filter, but in practice it's more likely
        with filters other than the x86 BCJ.
    
    Another situation where the bug can be triggered happens
    if the uncompressed size is zero bytes and no output space
    is provided. In this case the decompression can fail even
    if the whole input file is given to lzma_code().
    
    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 3f94b6d87f1b8f1c421ba548f8ebb83dca9c8cda
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-05-28 15:38:32 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 7769ea051d739a38a1640fd448cf5eb83cb119c6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-05-28 15:37:43 +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 ec921105725e4d3ef0a683dd83eee6f24ab60ccd
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-05-27 22:30:17 +0300

    xz: Document the "summary" lines of --robot -lvv.
    
    This documents only the columns that are in v5.0.
    The new columns added in the master branch aren't
    necessarily stable yet.

 src/xz/xz.1 | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit 27d24eb0a9f6eed96d6a4594c2b0bf7a91d29f9a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-05-27 21:53:20 +0300

    xz: Fix output of verbose --robot --list modes.
    
    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@tukaani.org>
Date:   2012-05-24 18:33:54 +0300

    Build: Upgrade m4/acx_pthread.m4 to the latest version.

 m4/ax_pthread.m4 | 98 +++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 62 insertions(+), 36 deletions(-)

commit d05d6d65c41a4bc83f162fa3d67c5d84e8751634
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-05-10 21:15:17 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit e077391982f9f28dbfe542bba8800e7c5b916666
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-05-10 21:14:16 +0300

    Docs: Cleanup line wrapping a bit.

 README          | 12 ++++++------
 doc/history.txt | 49 +++++++++++++++++++++++++------------------------
 2 files changed, 31 insertions(+), 30 deletions(-)

commit fc39849c350225c6a1cd7f6e6adff1020521eabc
Author: Benno Schulenberg <bensberg@justemail.net>
Date:   2012-03-13 22:04:04 +0100

    Fix a few typos and add some missing articles in some documents.
    
    Also hyphenate several compound adjectives.
    
    Signed-off-by: Benno Schulenberg <bensberg@justemail.net>

 AUTHORS         |  6 +++---
 README          | 42 ++++++++++++++++++++---------------------
 doc/faq.txt     | 24 ++++++++++++------------
 doc/history.txt | 58 ++++++++++++++++++++++++++++-----------------------------
 4 files changed, 65 insertions(+), 65 deletions(-)

commit 29fa0566d5df199cb9acb2d17bf7eea61acc7fa1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-04-29 11:51:25 +0300

    Windows: Update notes about static linking with MSVC.

 windows/README-Windows.txt | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit aac1b31ea4e66cf5a7a8c116bdaa15aa45e6c56e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-04-19 15:25:26 +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 df14a46013bea70c0bd35be7821b0b9108f97de7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-04-19 14:17:52 +0300

    DOS: Link against DJGPP's libemu to support FPU emulation.
    
    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@tukaani.org>
Date:   2012-04-19 14:02:25 +0300

    liblzma: Fix Libs.private in liblzma.pc to include -lrt when needed.

 src/liblzma/liblzma.pc.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8c5b13ad59df70f49429bfdfd6ac120b8f892fda
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-04-19 13:58:55 +0300

    Docs: Update MINIX 3 information in INSTALL.

 INSTALL | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit c7376fc415a1566f38b2de4b516a17013d516a8b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-02-22 14:23:13 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit cff070aba6281ba743d29a62b8c0c66e5da4b2a6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-02-22 14:02:34 +0200

    Fix exit status of xzgrep when grepping binary files.
    
    When grepping binary files, grep may exit before it has
    read all the input. In this case, gzip -q returns 2 (eating
    SIGPIPE), but xz and bzip2 show SIGPIPE as the exit status
    (e.g. 141). This causes wrong exit status when grepping
    xz- or bzip2-compressed binary files.
    
    The fix checks for the special exit status that indicates SIGPIPE.
    It uses kill -l which should be supported everywhere since it
    is in both SUSv2 (1997) and POSIX.1-2008.
    
    Thanks to James Buren for the bug report.

 src/scripts/xzgrep.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 41cafb2bf9beea915710ee68f05fe929cd17759c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-02-22 12:08:43 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 2dcea03712fa881930d69ec9eff70855c3d126d9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2012-02-22 12:00:16 +0200

    Fix compiling with IBM XL C on AIX.

 INSTALL      | 36 ++++++++++++++++++++++--------------
 configure.ac |  6 +++++-
 2 files changed, 27 insertions(+), 15 deletions(-)

commit 7db6bdf4abcf524115be2cf5659ed540cef074c5
Author: Lasse Collin <lasse.collin@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 694952d545b6cf056547893ced69486eff9ece55
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-12-19 21:21:29 +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@tukaani.org>
Date:   2011-11-07 13:07:52 +0200

    xz: Show minimum required XZ Utils version in xz -lvv.
    
    Man page wasn't updated yet.

 src/xz/list.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 57 insertions(+), 6 deletions(-)

commit 7081d82c37326bac97184e338345fa1c327e3580
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-11-04 17:57:16 +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 232fe7cd70ad258d6a37f17e860e0f1b1891eeb5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-11-03 17:08:02 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 74d2bae4d3449c68453b0473dd3430ce91fd90c1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-11-03 17:07:22 +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@tukaani.org>
Date:   2011-10-23 17:09:10 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit ab50ae3ef40c81e5bf613905ca3fd636548b75e7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-10-23 17:08:14 +0300

    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.

 src/liblzma/common/outqueue.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 6b620a0f0813d28c3c544b4ff8cb595b38a6e908
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-10-23 17:05:55 +0300

    liblzma: Fix a deadlock in the threaded encoder.
    
    It was triggered when reinitializing the encoder,
    e.g. when encoding two files.

 src/liblzma/common/stream_encoder_mt.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit bd52cf150ecd51e3ab63a9cc1a3cff6a77500178
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-09-06 12:03:41 +0300

    Build: Fix "make check" on Windows.

 tests/Makefile.am  | 7 +++++--
 windows/build.bash | 2 ++
 2 files changed, 7 insertions(+), 2 deletions(-)

commit 5c5b2256969ac473001b7d67615ed3bd0a54cc82
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-08-09 21:19:13 +0300

    Update THANKS.

 THANKS | 2 ++
 1 file changed, 2 insertions(+)

commit 5b1e1f10741af9e4bbe4cfc3261fb7c7b04f7809
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-08-09 21:16:44 +0300

    Workaround unusual SIZE_MAX on SCO OpenServer.

 src/common/sysdefs.h | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit e9ed88126eee86e2511fa42681a5c7104820cf0a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-08-06 20:37:28 +0300

    Run the scripts with the correct shell in test_scripts.sh.
    
    The scripts are now made executable in the build tree.
    This way the scripts can be run like programs in
    test_scripts.sh. Previously test_scripts.sh always
    used sh but it's not correct if @POSIX_SHELL@ is set
    to something else by configure.
    
    Thanks to Jonathan Nieder for the patch.

 configure.ac          | 8 ++++----
 tests/test_scripts.sh | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

commit 1c673e5681720491a74fc4b2992e075f47302c22
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-07-31 11:01:47 +0300

    Fix exit status of "xzdiff foo.xz bar.xz".
    
    xzdiff was clobbering the exit status from diff in a case
    statement used to analyze the exit statuses from "xz" when
    its operands were two compressed files. Save and restore
    diff's exit status to fix this.
    
    The bug is inherited from zdiff in GNU gzip and was fixed
    there on 2009-10-09.
    
    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@tukaani.org>
Date:   2011-06-16 12:15:29 +0300

    liblzma: Remove unneeded semicolon.

 src/liblzma/lz/lz_encoder_hash.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 492c86345551a51a29bf18e55fe55a5e86f169ce
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-28 19:24:56 +0300

    Build: Make configure print if symbol versioning is enabled or not.

 configure.ac | 2 ++
 1 file changed, 2 insertions(+)

commit fc4d4436969bd4d71b704d400a165875e596034a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-28 16:43:26 +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@tukaani.org>
Date:   2011-05-28 15:55:39 +0300

    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.

 Makefile.am                 |   1 +
 configure.ac                |  21 +++++++++
 src/liblzma/Makefile.am     |   6 +++
 src/liblzma/liblzma.map     | 105 ++++++++++++++++++++++++++++++++++++++++++++
 src/liblzma/validate_map.sh |  68 ++++++++++++++++++++++++++++
 5 files changed, 201 insertions(+)

commit afbb244362c9426a37ce4eb9d54aab768da3adad
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-28 09:46:46 +0300

    Translations: Update the Italian translation.
    
    Thanks to Milo Casagrande.

 po/it.po | 365 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 216 insertions(+), 149 deletions(-)

commit 79bef85e0543c0c3723281c3c817616c6cec343b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-28 08:46:04 +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 c0297445064951807803457dca1611b3c47e7f0f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-27 22:25:44 +0300

    xz: Fix error handling in xz -lvv.
    
    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 8bd91918ac50731f00b1a2a48072980572eb2ff9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-27 22:09:49 +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 fe00f95828ef5627721b57e054f7eb2d42a2c961
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-24 00:23:46 +0300

    Build: Fix checking for system-provided SHA-256.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 21b45b9bab541f419712cbfd473ccc31802e0397
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-23 18:30:30 +0300

    Build: Set GZIP_ENV=-9n in top-level Makefile.am.

 Makefile.am | 3 +++
 1 file changed, 3 insertions(+)

commit 48053e8a4550233af46359024538bff90c870ab1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-22 16:42:11 +0300

    Update NEWS for 5.0.3.

 NEWS | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

commit bba37df2c9e54ad773e15ff00a09d2d6989fb3b2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-21 16:28:44 +0300

    Add French translation.
    
    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 4161d7634965a7a287bf208dcd79f6185f448fe8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-21 15:12:10 +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@tukaani.org>
Date:   2011-05-21 15:08:44 +0300

    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.

 configure.ac                   | 54 +++++++++++++++++++++++++++
 src/liblzma/check/Makefile.inc |  2 +
 src/liblzma/check/check.h      | 83 ++++++++++++++++++++++++++++++++++++++----
 3 files changed, 131 insertions(+), 8 deletions(-)

commit f004128678d43ea10b4a6401aa184cf83252d6ec
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-17 12:52:18 +0300

    Don't use clockid_t in mythread.h when clock_gettime() isn't available.
    
    Thanks to Wim Lewis for the patch.

 src/common/mythread.h | 2 ++
 1 file changed, 2 insertions(+)

commit f779516f42ebd2db47a5b7d6143459bf7737cf2f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-17 12:26:28 +0300

    Update THANKS.

 THANKS | 3 +++
 1 file changed, 3 insertions(+)

commit 830ba587775bb562f6eaf05cad61bf669d1f8892
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-17 12:21:33 +0300

    Update INSTALL with a note about linker problem on OpenSolaris x86.

 INSTALL | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

commit ec7106309c8060e9c646dba20c4f15689a0bbb04
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-17 12:01:37 +0300

    Build: Fix initialization of enable_check_* variables in configure.ac.
    
    This doesn't matter much in practice since it is unlikely
    that anyone would have such environment variable names.
    
    Thanks to Wim Lewis.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4c6e146df99696920f12410fb17754412797ef36
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-17 11:54:38 +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@tukaani.org>
Date:   2011-05-01 12:24:23 +0300

    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.

 src/xz/coder.c   |  1 +
 src/xz/file_io.c | 15 +++++++++++++++
 src/xz/file_io.h | 13 +++++++++++++
 3 files changed, 29 insertions(+)

commit c29e6630c1450c630c4e7b783bdd76515db9004c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-05-01 12:15:51 +0300

    xz: Print the maximum number of worker threads in xz -vv.

 src/xz/coder.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 0b77c4a75158ccc416b07d6e81df8ee0abaea720
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-19 10:44:48 +0300

    Build: Warn if no supported method to detect the number of CPU cores.

 configure.ac | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit e4622df9ab4982f8faa53d85b17be66216175a58
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-19 09:55:06 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 9c1b05828a88eff54409760b92162c7cc2c7cff6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-19 09:20:44 +0300

    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.

 configure.ac          |  7 +++++++
 src/common/mythread.h | 31 +++++++++++++++++++++++++++----
 2 files changed, 34 insertions(+), 4 deletions(-)

commit 3de00cc75da7b0e7b65e84c62b5351e231f501e9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-18 19:35:49 +0300

    Update THANKS.

 THANKS | 2 ++
 1 file changed, 2 insertions(+)

commit bd5002f5821e3d1b04f2f56989e4a19318e73633
Author: Martin Väth <vaeth@mathematik.uni-wuerzburg.de>
Date:   2011-04-15 04:54:49 -0400

    xzgrep: fix typo in $0 parsing
    
    Reported-by: Diego Elio Pettenò <flameeyes@gentoo.org>
    Signed-off-by: Martin Väth <vaeth@mathematik.uni-wuerzburg.de>
    Signed-off-by: Mike Frysinger <vapier@gentoo.org>

 src/scripts/xzgrep.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6ef4eabc0acc49e1bb9dc68064706e19fa9fcf48
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-12 12:48:31 +0300

    Bump the version number to 5.1.1alpha and liblzma soname to 5.0.99.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 9a4377be0d21e597c66bad6c7452873aebfb3c1c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-12 12:42:37 +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.

 src/liblzma/api/lzma/container.h | 4 ++++
 src/liblzma/common/common.h      | 2 ++
 src/xz/private.h                 | 2 ++
 3 files changed, 8 insertions(+)

commit 3e321a3acd50002cf6fdfd259e910f56d3389bc3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-12 11:59:49 +0300

    Remove doubled words from documentation and comments.
    
    Spot candidates by running these commands:
      git ls-files |xargs perl -0777 -n \
        -e 'while (/\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims)' \
        -e '{$n=($` =~ tr/\n/\n/ + 1); ($v=$&)=~s/\n/\\n/g; print "$ARGV:$n:$v\n"}'
    
    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@tukaani.org>
Date:   2011-04-12 11:46:01 +0300

    Update NEWS.

 NEWS | 47 +++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 45 insertions(+), 2 deletions(-)

commit 14e6ad8cfe0165c1a8beeb5b2a1536558b29b0a1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-12 11:45:40 +0300

    Update TODO.

 TODO | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 70e750f59793f9b5cd306a5adce9b8e427739e04
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-12 11:08:55 +0300

    xz: Update the man page about threading.

 src/xz/xz.1 | 34 ++++++++++++++++++++--------------
 1 file changed, 20 insertions(+), 14 deletions(-)

commit 24e0406c0fb7494d2037dec033686faf1bf67068
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 22:06:03 +0300

    xz: Add support for threaded compression.

 src/xz/args.c  |   3 +-
 src/xz/coder.c | 202 +++++++++++++++++++++++++++++++++++----------------------
 2 files changed, 125 insertions(+), 80 deletions(-)

commit de678e0c924aa79a19293a8a6ed82e8cb6572a42
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 22:03:30 +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.

 configure.ac                           |    1 +
 src/liblzma/api/lzma/container.h       |  163 +++++
 src/liblzma/common/Makefile.inc        |    7 +
 src/liblzma/common/common.c            |    9 +-
 src/liblzma/common/common.h            |   14 +
 src/liblzma/common/outqueue.c          |  180 ++++++
 src/liblzma/common/outqueue.h          |  155 +++++
 src/liblzma/common/stream_encoder_mt.c | 1011 ++++++++++++++++++++++++++++++++
 8 files changed, 1539 insertions(+), 1 deletion(-)

commit 25fe729532cdf4b8fed56a4519b73cf31efaec50
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 21:15:07 +0300

    liblzma: Add the forgotten lzma_lzma2_block_size().
    
    This should have been in 5eefc0086d24a65e136352f8c1d19cefb0cbac7a.

 src/liblzma/lzma/lzma2_encoder.c | 10 ++++++++++
 src/liblzma/lzma/lzma2_encoder.h |  2 ++
 2 files changed, 12 insertions(+)

commit 91afb785a1dee34862078d9bf844ef12b8cc3e35
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 21:04:13 +0300

    liblzma: Document lzma_easy_(enc|dec)oder_memusage() better too.

 src/liblzma/api/lzma/container.h | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 4a9905302a9e4a1601ae09d650d3f08ce98ae9ee
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 20:59:07 +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@tukaani.org>
Date:   2011-04-11 19:28:18 +0300

    liblzma: Use memzero() to initialize supported_actions[].
    
    This is cleaner and makes it simpler to add new members
    to lzma_action enumeration.

 src/liblzma/common/common.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit a7934c446a58e20268689899d2a39f50e571f251
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 19:26:27 +0300

    liblzma: API comment about lzma_allocator with threaded coding.

 src/liblzma/api/lzma/base.h | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

commit 5eefc0086d24a65e136352f8c1d19cefb0cbac7a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 19:16:30 +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.

 src/liblzma/common/filter_encoder.c | 46 ++++++++++++++++++-------------------
 src/liblzma/common/filter_encoder.h |  4 ++--
 2 files changed, 24 insertions(+), 26 deletions(-)

commit d1199274758049fc523d98c5b860ff814a799eec
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 13:59:50 +0300

    liblzma: Don't create an empty Block in lzma_stream_buffer_encode().
    
    Empty Block was created if the input buffer was empty.
    Empty Block wastes a few bytes of space, but more importantly
    it triggers a bug in XZ Utils 5.0.1 and older when trying
    to decompress such a file. 5.0.1 and older consider such
    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 3b22fc2c87ec85fcdd385c163b68fc49c97aa848
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 13:28:40 +0300

    liblzma: Fix API docs to mention LZMA_UNSUPPORTED_CHECK.
    
    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 71b9380145dccf001f22e66a06b9d508905c25ce
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 13:21:28 +0300

    liblzma: Validate encoder arguments better.
    
    The biggest problem was that the integrity check type
    wasn't validated, and e.g. lzma_easy_buffer_encode()
    would create a corrupt .xz Stream if given an unsupported
    Check ID. Luckily applications don't usually try to use
    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@tukaani.org>
Date:   2011-04-11 09:57:30 +0300

    xz: Move the description of --block-size in --long-help.

 src/xz/message.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit cd3086ff443bb282bdf556919c28b3e3cbed8169
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 09:55:35 +0300

    Docs: Document --single-stream and --block-size.

 src/xz/xz.1 | 38 ++++++++++++++++++++++++++++++++++++--
 1 file changed, 36 insertions(+), 2 deletions(-)

commit fb64a4924334e3c440865710990fe08090f2fed0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 09:27:57 +0300

    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.

 src/liblzma/common/Makefile.inc     |  1 -
 src/liblzma/common/easy_encoder.c   |  1 -
 src/liblzma/common/stream_encoder.c | 13 ++++++-------
 src/liblzma/common/stream_encoder.h | 23 -----------------------
 4 files changed, 6 insertions(+), 32 deletions(-)

commit a34730cf6af4d33a4057914e57227b6dfde6567e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-11 08:31:42 +0300

    Revert "liblzma: Make lzma_stream_encoder_init() static."
    
    This reverts commit 352ac82db5d3f64585c07b39e4759388dec0e4d7.
    I don't know what I was thinking.

 src/liblzma/common/Makefile.inc     |  1 +
 src/liblzma/common/stream_encoder.c |  9 +++++----
 src/liblzma/common/stream_encoder.h | 23 +++++++++++++++++++++++
 3 files changed, 29 insertions(+), 4 deletions(-)

commit 9f0a806aef7ea79718e3f1f2baf3564295229a27
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-10 21:23:21 +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.

 configure.ac          |   1 +
 src/common/mythread.h | 200 +++++++++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 181 insertions(+), 20 deletions(-)

commit 352ac82db5d3f64585c07b39e4759388dec0e4d7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-10 20:37:36 +0300

    liblzma: Make lzma_stream_encoder_init() static.
    
    It's an internal function and it's not needed by
    anything outside stream_encoder.c.

 src/liblzma/common/Makefile.inc     |  1 -
 src/liblzma/common/stream_encoder.c |  9 ++++-----
 src/liblzma/common/stream_encoder.h | 23 -----------------------
 3 files changed, 4 insertions(+), 29 deletions(-)

commit 9e807fe3fe79618ac48f58207cf7082ea20a6928
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-10 14:58:10 +0300

    DOS: Update the docs and include notes about 8.3 filenames.

 dos/{README => INSTALL.txt} |  13 +----
 dos/README.txt              | 123 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 125 insertions(+), 11 deletions(-)

commit ebd54dbd6e481d31e80757f900ac8109ad1423c6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-10 13:09:42 +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.

 src/xz/suffix.c | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 167 insertions(+), 9 deletions(-)

commit cd4fe97852bcaeffe674ee51b4613709292a0972
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-10 12:47:47 +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.

 src/xz/file_io.c | 35 +++++++++++++++++++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)

commit 607f9f98ae5ef6d49f4c21c806d462bf6b3d6796
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-09 18:29:30 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit fca396b37410d272b754843a5dc13847be443a3a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-09 18:28:58 +0300

    liblzma: Add missing #ifdefs to filter_common.c.
    
    Passing --disable-decoders to configure broke a few
    encoders due to missing #ifdefs in filter_common.c.
    
    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@tukaani.org>
Date:   2011-04-09 15:24:59 +0300

    xz: Avoid unneeded fstat() on DOS-like systems.

 src/xz/file_io.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 335fe260a81f61ec99ff5940df733b4c50aedb7c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-09 15:11:13 +0300

    xz: Minor internal changes to handling of --threads.
    
    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/xz/args.c     |  4 ++--
 src/xz/hardware.c | 24 ++++++++++++------------
 src/xz/hardware.h |  9 ++++-----
 3 files changed, 18 insertions(+), 19 deletions(-)

commit 9edd6ee895fbe71d245a173f48e511f154a99875
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-08 17:53:05 +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 411013ea4506a6df24d35a060fcbd73a57b73eb3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-08 17:48:41 +0300

    xz: Fix a typo in a comment.

 src/xz/coder.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b34c5ce4b22e8d7b81f9895d15054af41d17f805
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-05 22:41:33 +0300

    liblzma: Use TUKLIB_GNUC_REQ to check GCC version in sha256.c.

 src/liblzma/check/sha256.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit db33117cc85c17e0b897b5312bd5eb43aac41c03
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-05 17:12:20 +0300

    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 => ax_pthread.m4} | 170 ++++++++++++++++++-----------------
 2 files changed, 88 insertions(+), 84 deletions(-)

commit 1039bfcfc098b69d56ecb39d198a092552eacf6d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-05 15:27:26 +0300

    xz: Use posix_fadvise() if it is available.

 configure.ac     |  3 +++
 src/xz/file_io.c | 15 +++++++++++++++
 2 files changed, 18 insertions(+)

commit 1ef3cf44a8eb9512480af4482a5232ea08363b14
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-05 15:13:29 +0300

    xz: Call lzma_end(&strm) before exiting if debugging is enabled.

 src/xz/coder.c | 10 ++++++++++
 src/xz/coder.h |  5 +++++
 src/xz/main.c  |  4 ++++
 3 files changed, 19 insertions(+)

commit bd432015d33dcade611d297bc01eb0700088ef6c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-02 14:49:56 +0300

    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.

 src/liblzma/common/stream_encoder.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 16889013214e7620d204b6e6c1bf9f3103a13655
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-04-01 08:47:20 +0300

    Updated NEWS for 5.0.2.

 NEWS | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit 85cdf7dd4e97b078e7b929e47f55a7f1da36010f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-03-31 15:06:58 +0300

    Update INSTALL with another note about IRIX.

 INSTALL | 4 ++++
 1 file changed, 4 insertions(+)

commit c3f4995586873d6a4fb7e451010a128571a9a370
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-03-31 12:22:55 +0300

    Tests: Add a new file to test empty LZMA2 streams.

 tests/files/README            |   4 ++++
 tests/files/good-1-lzma2-5.xz | Bin 0 -> 52 bytes
 2 files changed, 4 insertions(+)

commit 0d21f49a809dc2088da6cc0da7f948404df7ecfa
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-03-31 11:54:48 +0300

    liblzma: Fix decoding of LZMA2 streams having no uncompressed data.
    
    The decoder considered empty LZMA2 streams to be corrupt.
    This shouldn't matter much with .xz files, because no encoder
    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 40277998cb9bad564ce4827aff152e6e1c904dfa
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-03-24 01:42:49 +0200

    Scripts: Better fix for xzgrep.
    
    Now it uses "grep -q".
    
    Thanks to Gregory Margo.

 src/scripts/xzgrep.in | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 2118733045ad0ca183a3f181a0399baf876983a6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-03-24 01:22:18 +0200

    Updated THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit c7210d9a3fca6f31a57208bfddfc9ab20a2e097a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-03-24 01:21:32 +0200

    Scripts: Fix xzgrep -l.
    
    It didn't work at all. It tried to use the -q option
    for grep, but it appended it after "--". This works
    around it by redirecting to /dev/null. The downside
    is that this can be slower with big files compared
    to proper use of "grep -q".
    
    Thanks to Gregory Margo.

 src/scripts/xzgrep.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 4eb83e32046a6d670862bc91c3d82530963b455e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-03-19 13:08:22 +0200

    Scripts: Add lzop (.lzo) support to xzdiff and xzgrep.

 src/scripts/xzdiff.1  |  6 ++++--
 src/scripts/xzdiff.in | 22 ++++++++++++++--------
 src/scripts/xzgrep.1  | 11 +++++++----
 src/scripts/xzgrep.in |  5 +++--
 4 files changed, 28 insertions(+), 16 deletions(-)

commit 923b22483bd9356f3219b2b784d96f455f4dc499
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-03-18 19:10:30 +0200

    xz: Add --block-size=SIZE.
    
    This uses LZMA_FULL_FLUSH every SIZE bytes of input.
    
    Man page wasn't updated yet.

 src/xz/args.c    |  7 +++++++
 src/xz/coder.c   | 50 ++++++++++++++++++++++++++++++++++++++++----------
 src/xz/coder.h   |  3 +++
 src/xz/message.c |  4 ++++
 4 files changed, 54 insertions(+), 10 deletions(-)

commit 57597d42ca1740ad506437be168d800a50f1a0ad
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-03-18 18:19:19 +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.

 src/xz/args.c    |  6 ++++++
 src/xz/coder.c   | 11 +++++++++--
 src/xz/coder.h   |  3 +++
 src/xz/message.c |  6 +++++-
 4 files changed, 23 insertions(+), 3 deletions(-)

commit 96f94bc925d579a700147fa5d7793b64d69cfc18
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-02-04 22:49:31 +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 8930c7ae3f82bdae15aa129f01de08be23d7e8d7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-02-04 11:29:47 +0200

    xz: Check if the file already has custom suffix when compressing.
    
    Now "xz -S .test foo.test" refuses to compress the
    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 940d5852c6cf08abccc6befd9d1b5411c9076a58
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-02-02 23:01:51 +0200

    Updated THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 4ebe65f839613f27f127bab7b8c347d982330ee3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-02-02 23:00:33 +0200

    Translations: Add Polish translation.
    
    Thanks to Jakub Bogusz.

 po/LINGUAS |   1 +
 po/pl.po   | 825 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 826 insertions(+)

commit fc1d292dca1925dfd17174f443f91a696ecd5bf8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-02-02 22:24:00 +0200

    Updated THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 6dd061adfd2775428b079eb03d6fd47d7c0f1ffe
Merge: 9d542cee 5fbce0b8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-02-06 20:13:01 +0200

    Merge commit '5fbce0b8d96dc96775aa0215e3581addc830e23d'

commit 5fbce0b8d96dc96775aa0215e3581addc830e23d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-01-28 20:16:57 +0200

    Update NEWS for 5.0.1.

 NEWS | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 03ebd1bbb314f9f204940219a835c883bf442475
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-01-26 12:19:08 +0200

    xz: Fix --force on setuid/setgid/sticky and multi-hardlink files.
    
    xz didn't compress setuid/setgid/sticky files and files
    with multiple hard links even with --force. This bug was
    introduced in 23ac2c44c3ac76994825adb7f9a8f719f78b5ee4.
    
    Thanks to Charles Wilson.

 src/xz/file_io.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

commit 9d542ceebcbe40b174169c132ccfcdc720ca7089
Merge: 4f2c69a4 7bd0a5e7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-01-19 11:45:35 +0200

    Merge branch 'v5.0'

commit 7bd0a5e7ccc354f7c2e95c8bc27569c820f6a136
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-01-18 21:25:24 +0200

    Updated THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit f71c4e16e913f660977526f0ef8d2acdf458d7c9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2011-01-18 21:23:50 +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@tukaani.org>
Date:   2010-12-13 16:36:33 +0200

    Scripts: Fix gzip and bzip2 support in xzdiff.

 src/scripts/xzdiff.in | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 4f2c69a4e3e0aee2e37b0b1671d34086e20c8ac6
Merge: adb89e68 9311774c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-12-12 23:13:22 +0200

    Merge branch 'v5.0'

commit 9311774c493c19deab51ded919dcd2e9c4aa2829
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-12-12 21:23:55 +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@tukaani.org>
Date:   2010-12-12 16:09:42 +0200

    Updated THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit ce56f63c41ee210e6308090eb6d49221fdf67d6c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-12-12 16:07:11 +0200

    Add missing PRIx32 and PRIx64 compatibility definitions.
    
    This fixes portability to systems that lack C99 inttypes.h.
    
    Thanks to Juan Manuel Guerrero.

 src/common/sysdefs.h | 9 +++++++++
 1 file changed, 9 insertions(+)

commit e6baedddcf54e7da049ebc49183565b99facd4c7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-12-12 14:50:04 +0200

    DOS-like: Treat \ and : as directory separators in addition to /.
    
    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: 7c24e0d1 b7afd3e2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-12-07 18:53:04 +0200

    Merge branch 'v5.0'

commit b7afd3e22a8fac115b75c738d40d3eb1de7e286f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-12-07 18:52:04 +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: b4d42f1a 3e564704
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-11-15 14:33:01 +0200

    Merge branch 'v5.0'

commit 3e564704bc6f463cb2db11e3f3f0dbd71d85992e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-11-15 14:28:26 +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@gmail.com>
Date:   2010-11-12 15:22:13 -0600

    Simplify paths in generated API docs
    
    Currently the file list generated by Doxygen has src/ at the
    beginning of each path.  Paths like common/sysdefs.h and
    liblzma/api/lzma.h are easier to read without such a prefix.
    
    Builds from a separate build directory with
    
            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.
    
    Fixes: http://bugs.debian.org/572273

 Doxyfile.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b4d42f1a7120e2cefeb2f14425efe2ca6db85416
Author: Anders F Bjorklund <afb@users.sourceforge.net>
Date:   2010-11-05 12:56:11 +0100

    add build script for macosx universal

 macosx/build.sh | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

commit 15ee6935abe4a2fc76639ee342ca2e69af3e0ad6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-11-04 18:31:40 +0200

    Update the copies of GPLv2 and LGPLv2.1 from gnu.org.
    
    There are only a few white space changes.

 COPYING.GPLv2    | 14 +++++++-------
 COPYING.LGPLv2.1 | 16 +++++++---------
 2 files changed, 14 insertions(+), 16 deletions(-)

commit 8e355f7fdbeee6fe394eb02a28f267ce99a882a2
Merge: 974ebe63 37c25658
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-10-26 15:53:06 +0300

    Merge branch 'v5.0'

commit 37c25658efd25b034266daf87cd381d20d1df776
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-10-26 15:48:48 +0300

    Build: Copy the example programs to $docdir/examples.
    
    The example programs by Daniel Mealha Cabrita were included
    in the git repository, but I had forgot to add them to
    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@tukaani.org>
Date:   2010-10-26 10:36:41 +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).

 src/liblzma/lzma/fastpos.h                     |  55 +++++------
 src/liblzma/lzma/lzma2_encoder.c               |   2 +-
 src/liblzma/lzma/lzma_common.h                 |  45 ++++-----
 src/liblzma/lzma/lzma_decoder.c                |  58 +++++------
 src/liblzma/lzma/lzma_encoder.c                |  56 +++++------
 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   9 +-
 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 128 ++++++++++++-------------
 src/liblzma/lzma/lzma_encoder_private.h        |  16 ++--
 8 files changed, 183 insertions(+), 186 deletions(-)

commit 7c427ec38d016c0070a42315d752857e33792fc4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-10-25 12:59:25 +0300

    Bump version 5.1.0alpha.

 src/liblzma/api/lzma/version.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e45929260cd902036efd40c5610a8d0a50d5712b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-10-23 17:25:52 +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@tukaani.org>
Date:   2010-10-23 14:15:35 +0300

    Add NEWS for 5.0.0.

 NEWS | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

commit b667a3ef6338a2c1db7b7706b1f6c99ea392221c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2010-10-23 14:02:53 +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(-)
