From e6bd31355501f258ccd46fa49b89fe8cdb62e79d Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 18 Oct 2021 02:44:57 +0100 Subject: [PATCH] Add lzip. --- 3rdparty/CMakeLists.txt | 6 +- 3rdparty/lzip.cmake | 5 + 3rdparty/lzlib-1.12/AUTHORS | 7 + 3rdparty/lzlib-1.12/COPYING | 17 + 3rdparty/lzlib-1.12/COPYING.GPL | 338 +++++ 3rdparty/lzlib-1.12/ChangeLog | 242 +++ 3rdparty/lzlib-1.12/INSTALL | 80 + 3rdparty/lzlib-1.12/Makefile.in | 203 +++ 3rdparty/lzlib-1.12/NEWS | 92 ++ 3rdparty/lzlib-1.12/README | 103 ++ 3rdparty/lzlib-1.12/bbexample.c | 367 +++++ 3rdparty/lzlib-1.12/carg_parser.c | 285 ++++ 3rdparty/lzlib-1.12/carg_parser.h | 93 ++ 3rdparty/lzlib-1.12/cbuffer.c | 143 ++ 3rdparty/lzlib-1.12/configure | 229 +++ 3rdparty/lzlib-1.12/decoder.c | 152 ++ 3rdparty/lzlib-1.12/decoder.h | 416 ++++++ 3rdparty/lzlib-1.12/doc/lzlib.info | 1320 +++++++++++++++++ 3rdparty/lzlib-1.12/doc/lzlib.texi | 1393 ++++++++++++++++++ 3rdparty/lzlib-1.12/doc/minilzip.1 | 121 ++ 3rdparty/lzlib-1.12/encoder.c | 601 ++++++++ 3rdparty/lzlib-1.12/encoder.h | 327 ++++ 3rdparty/lzlib-1.12/encoder_base.c | 199 +++ 3rdparty/lzlib-1.12/encoder_base.h | 618 ++++++++ 3rdparty/lzlib-1.12/fast_encoder.c | 182 +++ 3rdparty/lzlib-1.12/fast_encoder.h | 70 + 3rdparty/lzlib-1.12/ffexample.c | 300 ++++ 3rdparty/lzlib-1.12/lzcheck.c | 366 +++++ 3rdparty/lzlib-1.12/lzip.h | 297 ++++ 3rdparty/lzlib-1.12/lzlib.c | 601 ++++++++ 3rdparty/lzlib-1.12/lzlib.h | 110 ++ 3rdparty/lzlib-1.12/main.c | 1222 +++++++++++++++ 3rdparty/lzlib-1.12/testsuite/check.sh | 440 ++++++ 3rdparty/lzlib-1.12/testsuite/fox.lz | Bin 0 -> 80 bytes 3rdparty/lzlib-1.12/testsuite/fox_bcrc.lz | Bin 0 -> 80 bytes 3rdparty/lzlib-1.12/testsuite/fox_crc0.lz | Bin 0 -> 80 bytes 3rdparty/lzlib-1.12/testsuite/fox_das46.lz | Bin 0 -> 80 bytes 3rdparty/lzlib-1.12/testsuite/fox_de20.lz | Bin 0 -> 80 bytes 3rdparty/lzlib-1.12/testsuite/fox_lf | 9 + 3rdparty/lzlib-1.12/testsuite/fox_mes81.lz | Bin 0 -> 80 bytes 3rdparty/lzlib-1.12/testsuite/fox_s11.lz | Bin 0 -> 80 bytes 3rdparty/lzlib-1.12/testsuite/fox_v2.lz | Bin 0 -> 80 bytes 3rdparty/lzlib-1.12/testsuite/test.txt | 676 +++++++++ 3rdparty/lzlib-1.12/testsuite/test.txt.lz | Bin 0 -> 7376 bytes 3rdparty/lzlib-1.12/testsuite/test_em.txt.lz | Bin 0 -> 14024 bytes 3rdparty/lzlib-1.12/testsuite/test_sync.lz | Bin 0 -> 7568 bytes CMakeLists.txt | 4 +- lzip.c | 71 + lzip.h | 27 + tests/CMakeLists.txt | 5 +- tests/data/lzip.lz | Bin 0 -> 1062874 bytes tests/lzip.cpp | 78 + 52 files changed, 11808 insertions(+), 7 deletions(-) create mode 100644 3rdparty/lzip.cmake create mode 100644 3rdparty/lzlib-1.12/AUTHORS create mode 100644 3rdparty/lzlib-1.12/COPYING create mode 100644 3rdparty/lzlib-1.12/COPYING.GPL create mode 100644 3rdparty/lzlib-1.12/ChangeLog create mode 100644 3rdparty/lzlib-1.12/INSTALL create mode 100644 3rdparty/lzlib-1.12/Makefile.in create mode 100644 3rdparty/lzlib-1.12/NEWS create mode 100644 3rdparty/lzlib-1.12/README create mode 100644 3rdparty/lzlib-1.12/bbexample.c create mode 100644 3rdparty/lzlib-1.12/carg_parser.c create mode 100644 3rdparty/lzlib-1.12/carg_parser.h create mode 100644 3rdparty/lzlib-1.12/cbuffer.c create mode 100755 3rdparty/lzlib-1.12/configure create mode 100644 3rdparty/lzlib-1.12/decoder.c create mode 100644 3rdparty/lzlib-1.12/decoder.h create mode 100644 3rdparty/lzlib-1.12/doc/lzlib.info create mode 100644 3rdparty/lzlib-1.12/doc/lzlib.texi create mode 100644 3rdparty/lzlib-1.12/doc/minilzip.1 create mode 100644 3rdparty/lzlib-1.12/encoder.c create mode 100644 3rdparty/lzlib-1.12/encoder.h create mode 100644 3rdparty/lzlib-1.12/encoder_base.c create mode 100644 3rdparty/lzlib-1.12/encoder_base.h create mode 100644 3rdparty/lzlib-1.12/fast_encoder.c create mode 100644 3rdparty/lzlib-1.12/fast_encoder.h create mode 100644 3rdparty/lzlib-1.12/ffexample.c create mode 100644 3rdparty/lzlib-1.12/lzcheck.c create mode 100644 3rdparty/lzlib-1.12/lzip.h create mode 100644 3rdparty/lzlib-1.12/lzlib.c create mode 100644 3rdparty/lzlib-1.12/lzlib.h create mode 100644 3rdparty/lzlib-1.12/main.c create mode 100755 3rdparty/lzlib-1.12/testsuite/check.sh create mode 100644 3rdparty/lzlib-1.12/testsuite/fox.lz create mode 100644 3rdparty/lzlib-1.12/testsuite/fox_bcrc.lz create mode 100644 3rdparty/lzlib-1.12/testsuite/fox_crc0.lz create mode 100644 3rdparty/lzlib-1.12/testsuite/fox_das46.lz create mode 100644 3rdparty/lzlib-1.12/testsuite/fox_de20.lz create mode 100644 3rdparty/lzlib-1.12/testsuite/fox_lf create mode 100644 3rdparty/lzlib-1.12/testsuite/fox_mes81.lz create mode 100644 3rdparty/lzlib-1.12/testsuite/fox_s11.lz create mode 100644 3rdparty/lzlib-1.12/testsuite/fox_v2.lz create mode 100644 3rdparty/lzlib-1.12/testsuite/test.txt create mode 100644 3rdparty/lzlib-1.12/testsuite/test.txt.lz create mode 100644 3rdparty/lzlib-1.12/testsuite/test_em.txt.lz create mode 100644 3rdparty/lzlib-1.12/testsuite/test_sync.lz create mode 100644 lzip.c create mode 100644 lzip.h create mode 100644 tests/data/lzip.lz create mode 100644 tests/lzip.cpp diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt index 3503875..c6062fa 100644 --- a/3rdparty/CMakeLists.txt +++ b/3rdparty/CMakeLists.txt @@ -1,7 +1,5 @@ -message("Hello") - - SET(ENABLE_LIB_ONLY ON) SET(ENABLE_STATIC_LIB ON) -add_subdirectory(bzip2) \ No newline at end of file +add_subdirectory(bzip2) +include(lzip.cmake) \ No newline at end of file diff --git a/3rdparty/lzip.cmake b/3rdparty/lzip.cmake new file mode 100644 index 0000000..510f410 --- /dev/null +++ b/3rdparty/lzip.cmake @@ -0,0 +1,5 @@ +project(lzlib C) + +set("LZIP_DIRECTORY" "lzlib-1.12") + +add_library(lzlib STATIC ${LZIP_DIRECTORY}/lzlib.c) \ No newline at end of file diff --git a/3rdparty/lzlib-1.12/AUTHORS b/3rdparty/lzlib-1.12/AUTHORS new file mode 100644 index 0000000..03a0e01 --- /dev/null +++ b/3rdparty/lzlib-1.12/AUTHORS @@ -0,0 +1,7 @@ +Lzlib was written by Antonio Diaz Diaz. + +The ideas embodied in lzlib are due to (at least) the following people: +Abraham Lempel and Jacob Ziv (for the LZ algorithm), Andrey Markov (for the +definition of Markov chains), G.N.N. Martin (for the definition of range +encoding), Igor Pavlov (for putting all the above together in LZMA), and +Julian Seward (for bzip2's CLI). diff --git a/3rdparty/lzlib-1.12/COPYING b/3rdparty/lzlib-1.12/COPYING new file mode 100644 index 0000000..a6511c8 --- /dev/null +++ b/3rdparty/lzlib-1.12/COPYING @@ -0,0 +1,17 @@ + Lzlib - Compression library for the lzip format + Copyright (C) Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/3rdparty/lzlib-1.12/COPYING.GPL b/3rdparty/lzlib-1.12/COPYING.GPL new file mode 100644 index 0000000..4ad17ae --- /dev/null +++ b/3rdparty/lzlib-1.12/COPYING.GPL @@ -0,0 +1,338 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/3rdparty/lzlib-1.12/ChangeLog b/3rdparty/lzlib-1.12/ChangeLog new file mode 100644 index 0000000..e38a855 --- /dev/null +++ b/3rdparty/lzlib-1.12/ChangeLog @@ -0,0 +1,242 @@ +2021-01-02 Antonio Diaz Diaz + + * Version 1.12 released. + * lzlib.h: Define LZ_API_VERSION as 1000 * major + minor. 1.12 = 1012. + This change does not affect the soversion. + * lzlib.h, lzlib.c: New function LZ_api_version. + * LZd_try_verify_trailer: Return 2 if EOF at trailer or EOS marker. + * Decompression speed has been slightly increased. + * decoder.h: Increase 'rd_min_available_bytes' from 8 to 10. + * encoder_base.c (LZeb_try_sync_flush): + Compensate for the increase in 'rd_min_available_bytes'. + * main.c (do_decompress): Fix false report about library stall. + * main.c: New option '--check-lib'. + * main.c (main): Report an error if a file name is empty. + Make '-o' behave like '-c', but writing to file instead of stdout. + Make '-c' and '-o' check whether the output is a terminal only once. + Do not open output if input is a terminal. + Replace 'decompressed', 'compressed' with 'out', 'in' in output. + Set a valid invocation_name even if argc == 0. + * lzlib.texi: Document the new way of verifying the library version. + Document that 'LZ_(de)compress_close' and 'LZ_(de)compress_errno' + can be called with a null argument. + Document that sync flush marker is not allowed in lzip files. + Document the consequences of not calling 'LZ_decompress_finish'. + Document that 'LZ_decompress_read' returns at least once per member. + Document that 'LZ_(de)compress_read' can be called with a null + buffer pointer argument. + Real code examples for common uses have been added to the tutorial. + * bbexample.c: Don't use 'LZ_(de)compress_write_size'. + * lzcheck.c: New options '-s' (sync) and '-m' (member by member). + Test member by member without 'LZ_decompress_finish'. + * ffexample.c: New file containing example functions for file-to-file + compression/decompression. + * Document extraction from tar.lz in '--help' output and man page. + * Makefile.in: 'install-bin' no longer installs the man page. + New targets 'install-bin-compress' and 'install-bin-strip-compress'. + * testsuite: Add 9 new test files. + +2019-01-02 Antonio Diaz Diaz + + * Version 1.11 released. + * Rename File_* to Lzip_*. + * LZ_decompress_read: Don't return error until all data is read. + * decoder.c (LZd_decode_member): Decode truncated data until EOF. + * cbuffer.c (Cb_read_data): Allow a null buffer pointer. + * main.c: Don't allow mixing different operations (-d and -t). + * main.c: Check return value of close( infd ). + * main.c: Compile on DOS with DJGPP. + * lzlib.texi: Improve descriptions of '-0..-9', '-m', and '-s'. + Document that 'LZ_(de)compress_finish' can be called repeatedly. + * configure: Accept appending to CFLAGS, 'CFLAGS+=OPTIONS'. + * Makefile.in: Rename targets 'install-bin*' to 'install-lib*'. + * Makefile.in: Targets 'install-bin*' now install minilzip. + * INSTALL: Document use of CFLAGS+='-D __USE_MINGW_ANSI_STDIO'. + +2018-02-07 Antonio Diaz Diaz + + * Version 1.10 released. + * LZ_compress_finish now adjusts dictionary size for each member. + * lzlib.c (LZ_decompress_read): Detect corrupt header with HD=3. + * main.c: New option '--loose-trailing'. + * main.c (main): Option '-S, --volume-size' now keeps input files. + * main.c: Replace 'bits/byte' with inverse compression ratio. + * main.c: Show final diagnostic when testing multiple files. + * main.c: Do not add a second .lz extension to the arg of -o. + * main.c: Show dictionary size at verbosity level 4 (-vvvv). + * lzlib.texi: New chapter 'Invoking minilzip'. + +2017-04-11 Antonio Diaz Diaz + + * Version 1.9 released. + * Compression time of option '-0' has been reduced by 3%. + * Compression time of options -1 to -9 has been reduced by 1%. + * Decompression time has been reduced by 3%. + * main.c: Continue testing if any input file is a terminal. + * Change the license of the library to "2-clause BSD". + +2016-05-17 Antonio Diaz Diaz + + * Version 1.8 released. + * lzlib.h: Define LZ_API_VERSION to 1. + * lzlib.c (LZ_decompress_sync_to_member): Add skipped size to in_size. + * decoder.c (LZd_verify_trailer): Remove test of final code. + * main.c: New option '-a, --trailing-error'. + * main.c (main): Delete '--output' file if infd is a terminal. + * main.c (main): Don't use stdin more than once. + * configure: Avoid warning on some shells when testing for gcc. + * Makefile.in: Detect the existence of install-info. + * check.sh: A POSIX shell is required to run the tests. + * check.sh: Don't check error messages. + +2015-07-08 Antonio Diaz Diaz + + * Version 1.7 released. + * Port fast encoder and option '-0' from lzip. + * If open-->write-->finish, produce same dictionary size as lzip. + * Makefile.in: New targets 'install*-compress'. + +2014-08-27 Antonio Diaz Diaz + + * Version 1.6 released. + * Compression ratio of option '-9' has been slightly increased. + * configure: New options '--disable-static' and '--disable-ldconfig'. + * Makefile.in: Ignore errors from ldconfig. + * Makefile.in: Use 'CFLAGS' in every invocation of 'CC'. + * main.c (close_and_set_permissions): Behave like 'cp -p'. + * lzlib.texinfo: Rename to lzlib.texi. + * Change license to "GPL version 2 or later with link exception". + +2013-09-15 Antonio Diaz Diaz + + * Version 1.5 released. + * Remove decompression support for version 0 files. + * The LZ_compress_sync_flush mechanism has been fixed (again). + * Minor fixes. + +2013-05-28 Antonio Diaz Diaz + + * Version 1.4 released. + * Multi-step trials have been implemented. + * Compression ratio has been slightly increased. + * Compression time has been reduced by 8%. + * Decompression time has been reduced by 7%. + * lzlib.h: Change 'long long' values to 'unsigned long long'. + * encoder.c (Mf_init): Reduce minimum buffer size to 64KiB. + * lzlib.c (LZ_decompress_read): Tell LZ_header_error from + LZ_unexpected_eof the same way as lzip does. + * Makefile.in: New targets 'install-as-lzip' and 'install-bin'. + * main.c: Use 'setmode' instead of '_setmode' on Windows and OS/2. + * main.c: Define 'strtoull' to 'strtoul' on Windows. + +2012-02-29 Antonio Diaz Diaz + + * Version 1.3 released. + * Translated to C from the C++ source of lzlib 1.2. + * configure: Rename 'datadir' to 'datarootdir'. + +2011-10-25 Antonio Diaz Diaz + + * Version 1.2 released. + * encoder.h (Lee_update_prices): Update high length symbol prices + independently of the value of 'pos_state'. This gives better + compression for large values of '--match-length' without being + slower. + * encoder.h, encoder.cc: Optimize pair price calculations, reducing + compression time for large values of '--match-length' by up to 6%. + * main.cc: New option '-F, --recompress'. + * Makefile.in: 'make install' no longer tries to run + '/sbin/ldconfig' on systems lacking it. + +2011-01-03 Antonio Diaz Diaz + + * Version 1.1 released. + * Compression time has been reduced by 2%. + * All declarations not belonging to the API have been + encapsulated in the namespace 'Lzlib'. + * testsuite: Rename 'test1' to 'test.txt'. New tests. + * Match length limits set by options -1 to -9 of minilzip have + been changed to match those of lzip 1.11. + * main.cc: Set stdin/stdout in binary mode on OS2. + * bbexample.cc: New file containing example functions for + buffer-to-buffer compression/decompression. + +2010-05-08 Antonio Diaz Diaz + + * Version 1.0 released. + * New functions LZ_decompress_member_version, LZ_decompress_data_crc, + LZ_decompress_member_finished, and LZ_decompress_dictionary_size. + * Variables declared 'extern' have been encapsulated in a namespace. + * main.cc: Fix warning about fchown's return value being ignored. + * decoder.h: Integrate Input_buffer in Range_decoder. + +2010-02-10 Antonio Diaz Diaz + + * Version 0.9 released. + * Compression time has been reduced by 8%. + * main.cc: New constant 'o_binary'. + +2010-01-17 Antonio Diaz Diaz + + * Version 0.8 released. + * New functions LZ_decompress_reset, LZ_decompress_sync_to_member, + LZ_decompress_write_size, and LZ_strerror. + * lzlib.h: API change. Replace 'enum' with functions for values of + dictionary size limits to make interface names consistent. + * lzlib.h: API change. Rename 'LZ_errno' to 'LZ_Errno'. + * lzlib.h: API change. Replace 'void *' with 'struct LZ_Encoder *' + and 'struct LZ_Decoder *' to make interface type safe. + * decoder.cc: A truncated member trailer is now correctly detected. + * encoder.cc: Matchfinder::reset now also clears at_stream_end_, + allowing LZ_compress_restart_member to restart a finished stream. + * lzlib.cc: Accept only query or close operations after a fatal + error has occurred. + * The shared version of lzlib is no longer built by default. + * check.sh: Use 'test1' instead of 'COPYING' for testing. + +2009-10-20 Antonio Diaz Diaz + + * Version 0.7 released. + * Compression time has been reduced by 4%. + * check.sh: Remove -9 to run in less than 256MiB of RAM. + * lzcheck.cc: Read files of any size up to 2^63 bytes. + +2009-09-02 Antonio Diaz Diaz + + * Version 0.6 released. + * The LZ_compress_sync_flush mechanism has been fixed. + +2009-07-03 Antonio Diaz Diaz + + * Version 0.5 released. + * Decompression speed has been improved. + * main.cc (signal_handler): Declare as 'extern "C"'. + +2009-06-03 Antonio Diaz Diaz + + * Version 0.4 released. + * New functions LZ_compress_sync_flush and LZ_compress_write_size. + * Decompression speed has been improved. + * lzlib.texinfo: New chapter 'Buffering'. + +2009-05-03 Antonio Diaz Diaz + + * Version 0.3 released. + * Lzlib is now built as a shared library (in addition to static). + +2009-04-26 Antonio Diaz Diaz + + * Version 0.2 released. + * Fix a segfault when decompressing trailing garbage. + * Fix a false positive in LZ_(de)compress_finished. + +2009-04-21 Antonio Diaz Diaz + + * Version 0.1 released. + + +Copyright (C) 2009-2021 Antonio Diaz Diaz. + +This file is a collection of facts, and thus it is not copyrightable, +but just in case, you have unlimited permission to copy, distribute, and +modify it. diff --git a/3rdparty/lzlib-1.12/INSTALL b/3rdparty/lzlib-1.12/INSTALL new file mode 100644 index 0000000..a9a870e --- /dev/null +++ b/3rdparty/lzlib-1.12/INSTALL @@ -0,0 +1,80 @@ +Requirements +------------ +You will need a C99 compiler. (gcc 3.3.6 or newer is recommended). +I use gcc 6.1.0 and 4.1.2, but the code should compile with any standards +compliant compiler. +Gcc is available at http://gcc.gnu.org. + +The operating system must allow signal handlers read access to objects with +static storage duration so that the cleanup handler for Control-C can delete +the partial output file. (This requirement is for minilzip only). + + +Procedure +--------- +1. Unpack the archive if you have not done so already: + + tar -xf lzlib[version].tar.lz +or + lzip -cd lzlib[version].tar.lz | tar -xf - + +This creates the directory ./lzlib[version] containing the source from +the main archive. + +2. Change to lzlib directory and run configure. + (Try 'configure --help' for usage instructions). + + cd lzlib[version] + ./configure + + If you are compiling on MinGW, use: + + ./configure CFLAGS+='-D __USE_MINGW_ANSI_STDIO' + +3. Run make. + + make + +4. Optionally, type 'make check' to run the tests that come with lzlib. + +5. Type 'make install' to install the library and any data files and + documentation. (You may need to run ldconfig also). + + Or type 'make install-compress', which additionally compresses the + info manual after installation. + (Installing compressed docs may become the default in the future). + + You can install only the library or the info manual by typing + 'make install-lib' or 'make install-info' respectively. + + 'make install-bin install-man' installs the program minilzip and its man + page. 'install-bin' installs a shared minilzip if the shared library has + been configured. Else it installs a static minilzip. + 'make install-bin-compress' additionally compresses the man page after + installation. + + 'make install-as-lzip' runs 'make install-bin' and then links minilzip to + the name 'lzip'. + + +Another way +----------- +You can also compile lzlib into a separate directory. +To do this, you must use a version of 'make' that supports the variable +'VPATH', such as GNU 'make'. 'cd' to the directory where you want the +object files and executables to go and run the 'configure' script. +'configure' automatically checks for the source code in '.', in '..', and +in the directory that 'configure' is in. + +'configure' recognizes the option '--srcdir=DIR' to control where to +look for the sources. Usually 'configure' can determine that directory +automatically. + +After running 'configure', you can run 'make' and 'make install' as +explained above. + + +Copyright (C) 2009-2021 Antonio Diaz Diaz. + +This file is free documentation: you have unlimited permission to copy, +distribute, and modify it. diff --git a/3rdparty/lzlib-1.12/Makefile.in b/3rdparty/lzlib-1.12/Makefile.in new file mode 100644 index 0000000..94e3770 --- /dev/null +++ b/3rdparty/lzlib-1.12/Makefile.in @@ -0,0 +1,203 @@ + +DISTNAME = $(pkgname)-$(pkgversion) +AR = ar +INSTALL = install +INSTALL_PROGRAM = $(INSTALL) -m 755 +INSTALL_DATA = $(INSTALL) -m 644 +INSTALL_DIR = $(INSTALL) -d -m 755 +LDCONFIG = /sbin/ldconfig +SHELL = /bin/sh +CAN_RUN_INSTALLINFO = $(SHELL) -c "install-info --version" > /dev/null 2>&1 + +objs = carg_parser.o main.o + + +.PHONY : all install install-bin install-info install-man \ + install-strip install-compress install-strip-compress \ + install-bin-strip install-info-compress install-man-compress \ + install-bin-compress install-bin-strip-compress \ + install-lib install-lib-strip \ + install-as-lzip \ + uninstall uninstall-bin uninstall-lib uninstall-info uninstall-man \ + doc info man check dist clean distclean + +all : $(progname_static) $(progname_shared) + +lib$(libname).a : lzlib.o + $(AR) -rcs $@ $< + +lib$(libname).so.$(pkgversion) : lzlib_sh.o + $(CC) $(LDFLAGS) $(CFLAGS) -fpic -fPIC -shared -Wl,--soname=lib$(libname).so.$(soversion) -o $@ $< + +$(progname) : $(objs) lib$(libname).a + $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(objs) lib$(libname).a + +$(progname)_shared : $(objs) lib$(libname).so.$(pkgversion) + $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(objs) lib$(libname).so.$(pkgversion) + +bbexample : bbexample.o lib$(libname).a + $(CC) $(LDFLAGS) $(CFLAGS) -o $@ bbexample.o lib$(libname).a + +ffexample : ffexample.o lib$(libname).a + $(CC) $(LDFLAGS) $(CFLAGS) -o $@ ffexample.o lib$(libname).a + +lzcheck : lzcheck.o lib$(libname).a + $(CC) $(LDFLAGS) $(CFLAGS) -o $@ lzcheck.o lib$(libname).a + +main.o : main.c + $(CC) $(CPPFLAGS) $(CFLAGS) -DPROGVERSION=\"$(pkgversion)\" -c -o $@ $< + +lzlib_sh.o : lzlib.c + $(CC) $(CPPFLAGS) $(CFLAGS) -fpic -fPIC -c -o $@ $< + +%.o : %.c + $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< + +lzdeps = lzlib.h lzip.h cbuffer.c decoder.h decoder.c encoder_base.h \ + encoder_base.c encoder.h encoder.c fast_encoder.h fast_encoder.c + +$(objs) : Makefile +carg_parser.o : carg_parser.h +lzlib.o : Makefile $(lzdeps) +lzlib_sh.o : Makefile $(lzdeps) +main.o : carg_parser.h lzlib.h +bbexample.o : Makefile lzlib.h +ffexample.o : Makefile lzlib.h +lzcheck.o : Makefile lzlib.h + + +doc : info man + +info : $(VPATH)/doc/$(pkgname).info + +$(VPATH)/doc/$(pkgname).info : $(VPATH)/doc/$(pkgname).texi + cd $(VPATH)/doc && makeinfo $(pkgname).texi + +man : $(VPATH)/doc/$(progname).1 + +$(VPATH)/doc/$(progname).1 : $(progname) + help2man -n 'reduces the size of files' -o $@ --no-info ./$(progname) + +Makefile : $(VPATH)/configure $(VPATH)/Makefile.in + ./config.status + +check : $(progname) bbexample ffexample lzcheck + @$(VPATH)/testsuite/check.sh $(VPATH)/testsuite $(pkgversion) + +install : install-lib install-info +install-strip : install-lib-strip install-info +install-compress : install-lib install-info-compress +install-strip-compress : install-lib-strip install-info-compress +install-bin-compress : install-bin install-man-compress +install-bin-strip-compress : install-bin-strip install-man-compress + +install-bin : all + if [ ! -d "$(DESTDIR)$(bindir)" ] ; then $(INSTALL_DIR) "$(DESTDIR)$(bindir)" ; fi + $(INSTALL_PROGRAM) ./$(progname_lzip) "$(DESTDIR)$(bindir)/$(progname)" + +install-bin-strip : all + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install-bin + +install-lib : all + if [ ! -d "$(DESTDIR)$(includedir)" ] ; then $(INSTALL_DIR) "$(DESTDIR)$(includedir)" ; fi + if [ ! -d "$(DESTDIR)$(libdir)" ] ; then $(INSTALL_DIR) "$(DESTDIR)$(libdir)" ; fi + $(INSTALL_DATA) $(VPATH)/$(libname)lib.h "$(DESTDIR)$(includedir)/$(libname)lib.h" + if [ -n "$(progname_static)" ] ; then \ + $(INSTALL_DATA) ./lib$(libname).a "$(DESTDIR)$(libdir)/lib$(libname).a" ; \ + fi + if [ -n "$(progname_shared)" ] ; then \ + $(INSTALL_PROGRAM) ./lib$(libname).so.$(pkgversion) "$(DESTDIR)$(libdir)/lib$(libname).so.$(pkgversion)" ; \ + if [ -e "$(DESTDIR)$(libdir)/lib$(libname).so.$(soversion)" ] ; then \ + run_ldconfig=no ; \ + else run_ldconfig=yes ; \ + fi ; \ + rm -f "$(DESTDIR)$(libdir)/lib$(libname).so" ; \ + rm -f "$(DESTDIR)$(libdir)/lib$(libname).so.$(soversion)" ; \ + cd "$(DESTDIR)$(libdir)" && ln -s lib$(libname).so.$(pkgversion) lib$(libname).so ; \ + cd "$(DESTDIR)$(libdir)" && ln -s lib$(libname).so.$(pkgversion) lib$(libname).so.$(soversion) ; \ + if [ "${disable_ldconfig}" != yes ] && [ $${run_ldconfig} = yes ] && \ + [ -x "$(LDCONFIG)" ] ; then "$(LDCONFIG)" -n "$(DESTDIR)$(libdir)" || true ; fi ; \ + fi + +install-lib-strip : all + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install-lib + +install-info : + if [ ! -d "$(DESTDIR)$(infodir)" ] ; then $(INSTALL_DIR) "$(DESTDIR)$(infodir)" ; fi + -rm -f "$(DESTDIR)$(infodir)/$(pkgname).info"* + $(INSTALL_DATA) $(VPATH)/doc/$(pkgname).info "$(DESTDIR)$(infodir)/$(pkgname).info" + -if $(CAN_RUN_INSTALLINFO) ; then \ + install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$(pkgname).info" ; \ + fi + +install-info-compress : install-info + lzip -v -9 "$(DESTDIR)$(infodir)/$(pkgname).info" + +install-man : + if [ ! -d "$(DESTDIR)$(mandir)/man1" ] ; then $(INSTALL_DIR) "$(DESTDIR)$(mandir)/man1" ; fi + -rm -f "$(DESTDIR)$(mandir)/man1/$(progname).1"* + $(INSTALL_DATA) $(VPATH)/doc/$(progname).1 "$(DESTDIR)$(mandir)/man1/$(progname).1" + +install-man-compress : install-man + lzip -v -9 "$(DESTDIR)$(mandir)/man1/$(progname).1" + +install-as-lzip : install-bin + -rm -f "$(DESTDIR)$(bindir)/lzip" + cd "$(DESTDIR)$(bindir)" && ln -s $(progname) lzip + +uninstall : uninstall-info uninstall-lib + +uninstall-bin : + -rm -f "$(DESTDIR)$(bindir)/$(progname)" + +uninstall-lib : + -rm -f "$(DESTDIR)$(includedir)/$(libname)lib.h" + -rm -f "$(DESTDIR)$(libdir)/lib$(libname).a" + -rm -f "$(DESTDIR)$(libdir)/lib$(libname).so" + -rm -f "$(DESTDIR)$(libdir)/lib$(libname).so.$(soversion)" + -rm -f "$(DESTDIR)$(libdir)/lib$(libname).so.$(pkgversion)" + +uninstall-info : + -if $(CAN_RUN_INSTALLINFO) ; then \ + install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$(pkgname).info" ; \ + fi + -rm -f "$(DESTDIR)$(infodir)/$(pkgname).info"* + +uninstall-man : + -rm -f "$(DESTDIR)$(mandir)/man1/$(progname).1"* + +dist : doc + ln -sf $(VPATH) $(DISTNAME) + tar -Hustar --owner=root --group=root -cvf $(DISTNAME).tar \ + $(DISTNAME)/AUTHORS \ + $(DISTNAME)/COPYING \ + $(DISTNAME)/COPYING.GPL \ + $(DISTNAME)/ChangeLog \ + $(DISTNAME)/INSTALL \ + $(DISTNAME)/Makefile.in \ + $(DISTNAME)/NEWS \ + $(DISTNAME)/README \ + $(DISTNAME)/configure \ + $(DISTNAME)/doc/$(progname).1 \ + $(DISTNAME)/doc/$(pkgname).info \ + $(DISTNAME)/doc/$(pkgname).texi \ + $(DISTNAME)/*.h \ + $(DISTNAME)/*.c \ + $(DISTNAME)/testsuite/check.sh \ + $(DISTNAME)/testsuite/test.txt \ + $(DISTNAME)/testsuite/fox_lf \ + $(DISTNAME)/testsuite/fox.lz \ + $(DISTNAME)/testsuite/fox_*.lz \ + $(DISTNAME)/testsuite/test_sync.lz \ + $(DISTNAME)/testsuite/test.txt.lz \ + $(DISTNAME)/testsuite/test_em.txt.lz + rm -f $(DISTNAME) + lzip -v -9 $(DISTNAME).tar + +clean : + -rm -f $(progname) $(objs) lzlib.o lib$(libname).a + -rm -f $(progname)_shared lzlib_sh.o lib$(libname).so* + -rm -f bbexample bbexample.o ffexample ffexample.o lzcheck lzcheck.o + +distclean : clean + -rm -f Makefile config.status *.tar *.tar.lz diff --git a/3rdparty/lzlib-1.12/NEWS b/3rdparty/lzlib-1.12/NEWS new file mode 100644 index 0000000..7b01d52 --- /dev/null +++ b/3rdparty/lzlib-1.12/NEWS @@ -0,0 +1,92 @@ +Changes in version 1.12: + +The value of the version test macro 'LZ_API_VERSION' is now defined as +1000 * major + minor. For version 1.12 it is 1012. +This change does not affect the soversion. + +The new function 'LZ_api_version', which returns the LZ_API_VERSION of the +library object code being used, has been added to lzlib. + +If end of file is found at member trailer or EOS marker, +'LZ_decompress_errno' now returns 'LZ_unexpected_eof' instead of +'LZ_data_error'. + +Decompression speed has been slightly increased. + +A bug has been fixed in minilzip that falsely reported a library stall when +decompressing a file with empty members. + +The new option '--check-lib', which compares the version of lzlib used to +compile minilzip with the version actually being used, has been added to +minilzip. + +Minilzip now reports an error if a file name is empty (minilzip -t ""). + +Option '-o, --output' now behaves like '-c, --stdout', but sending the +output unconditionally to a file instead of to standard output. See the new +description of '-o' in the manual. This change is not backwards compatible. +Therefore commands like: + minilzip -o foo.lz - bar < foo +must now be split into: + minilzip -o foo.lz - < foo + minilzip bar +or rewritten as: + minilzip - bar < foo > foo.lz + +When using '-c' or '-o', minilzip now checks whether the output is a +terminal only once. + +Minilzip now does not even open the output file if the input file is a terminal. + +The words 'decompressed' and 'compressed' have been replaced with the +shorter 'out' and 'in' in the verbose output of minilzip when decompressing +or testing. + +It has been documented in the manual that 'LZ_(de)compress_close' and +'LZ_(de)compress_errno' can be called with a null argument. + +It has been documented in the manual that the LZMA marker '3' ("Sync Flush" +marker) is not allowed in lzip files. Marker '3' is a device for interactive +communication between applications using lzlib, but is useless and wasteful +in a file, and is excluded from the media type 'application/lzip'. The LZMA +marker '2' ("End Of Stream" marker) is the only marker allowed in lzip +files. + +It has been documented in the manual that not calling 'LZ_decompress_finish' +prevents lzlib from detecting a truncated member. + +It has been documented in the manual that 'LZ_decompress_read' returns at +least once per member so that 'LZ_decompress_member_finished' can be called +(and trailer data retrieved) for each member, even for empty members. +Therefore, 'LZ_decompress_read' returning 0 does not mean that the end of +the stream has been reached. + +It has been documented in the manual that 'LZ_(de)compress_read' can be +called with a null buffer pointer argument. + +Real code examples for the most common uses of the library have been added +to the tutorial. + +'bbexample.c' has been simplified to not use 'LZ_(de)compress_write_size'. + +'lzcheck' now accepts options '-s' (to check LZ_compress_sync_flush) and +'-m' (to check member by member decompression). + +'lzcheck.c' now also tests member by member decompression without +intermediate calls to 'LZ_decompress_finish'. + +The new file 'ffexample.c', containing example functions for file-to-file +compression/decompression, has been added to the distribution. + +The commands needed to extract files from a tar.lz archive have been +documented in the output of 'minilzip --help' and in the man page. + +'make install-bin' no longer installs the minilzip man page. This is to +prevent 'make install-bin install-man-compress' from installing the man page +twice before compressing it. + +The new targets 'install-bin-compress' and 'install-bin-strip-compress', +which install a (stripped) minilzip and a compressed man page, have been +added to the Makefile. + +9 new test files have been added to the testsuite. diff --git a/3rdparty/lzlib-1.12/README b/3rdparty/lzlib-1.12/README new file mode 100644 index 0000000..ee6e6d7 --- /dev/null +++ b/3rdparty/lzlib-1.12/README @@ -0,0 +1,103 @@ +Description + +Lzlib is a data compression library providing in-memory LZMA compression and +decompression functions, including integrity checking of the decompressed +data. The compressed data format used by the library is the lzip format. +Lzlib is written in C. + +The lzip file format is designed for data sharing and long-term archiving, +taking into account both data integrity and decoder availability: + + * The lzip format provides very safe integrity checking and some data + recovery means. The program lziprecover can repair bit flip errors + (one of the most common forms of data corruption) in lzip files, and + provides data recovery capabilities, including error-checked merging + of damaged copies of a file. + + * The lzip format is as simple as possible (but not simpler). The lzip + manual provides the source code of a simple decompressor along with a + detailed explanation of how it works, so that with the only help of the + lzip manual it would be possible for a digital archaeologist to extract + the data from a lzip file long after quantum computers eventually + render LZMA obsolete. + + * Additionally the lzip reference implementation is copylefted, which + guarantees that it will remain free forever. + +A nice feature of the lzip format is that a corrupt byte is easier to repair +the nearer it is from the beginning of the file. Therefore, with the help of +lziprecover, losing an entire archive just because of a corrupt byte near +the beginning is a thing of the past. + +The functions and variables forming the interface of the compression library +are declared in the file 'lzlib.h'. Usage examples of the library are given +in the files 'bbexample.c', 'ffexample.c', and 'main.c' from the source +distribution. + +Compression/decompression is done by repeatedly calling a couple of +read/write functions until all the data have been processed by the library. +This interface is safer and less error prone than the traditional zlib +interface. + +Compression/decompression is done when the read function is called. This +means the value returned by the position functions will not be updated until +a read call, even if a lot of data are written. If you want the data to be +compressed in advance, just call the read function with a size equal to 0. + +If all the data to be compressed are written in advance, lzlib will +automatically adjust the header of the compressed data to use the largest +dictionary size that does not exceed neither the data size nor the limit +given to 'LZ_compress_open'. This feature reduces the amount of memory +needed for decompression and allows minilzip to produce identical compressed +output as lzip. + +Lzlib will correctly decompress a data stream which is the concatenation of +two or more compressed data streams. The result is the concatenation of the +corresponding decompressed data streams. Integrity testing of concatenated +compressed data streams is also supported. + +Lzlib is able to compress and decompress streams of unlimited size by +automatically creating multimember output. The members so created are large, +about 2 PiB each. + +All the library functions are thread safe. The library does not install +any signal handler. The decoder checks the consistency of the compressed +data, so the library should never crash even in case of corrupted input. + +In spite of its name (Lempel-Ziv-Markov chain-Algorithm), LZMA is not a +concrete algorithm; it is more like "any algorithm using the LZMA coding +scheme". For example, the option '-0' of lzip uses the scheme in almost the +simplest way possible; issuing the longest match it can find, or a literal +byte if it can't find a match. Inversely, a much more elaborated way of +finding coding sequences of minimum size than the one currently used by lzip +could be developed, and the resulting sequence could also be coded using the +LZMA coding scheme. + +Lzlib currently implements two variants of the LZMA algorithm; fast (used by +option '-0' of minilzip) and normal (used by all other compression levels). + +The high compression of LZMA comes from combining two basic, well-proven +compression ideas: sliding dictionaries (LZ77/78) and markov models (the +thing used by every compression algorithm that uses a range encoder or +similar order-0 entropy coder as its last stage) with segregation of +contexts according to what the bits are used for. + +The ideas embodied in lzlib are due to (at least) the following people: +Abraham Lempel and Jacob Ziv (for the LZ algorithm), Andrey Markov (for the +definition of Markov chains), G.N.N. Martin (for the definition of range +encoding), Igor Pavlov (for putting all the above together in LZMA), and +Julian Seward (for bzip2's CLI). + +LANGUAGE NOTE: Uncompressed = not compressed = plain data; it may never have +been compressed. Decompressed is used to refer to data which have undergone +the process of decompression. + + +Copyright (C) 2009-2021 Antonio Diaz Diaz. + +This file is free documentation: you have unlimited permission to copy, +distribute, and modify it. + +The file Makefile.in is a data file used by configure to produce the +Makefile. It has the same copyright owner and permissions that configure +itself. diff --git a/3rdparty/lzlib-1.12/bbexample.c b/3rdparty/lzlib-1.12/bbexample.c new file mode 100644 index 0000000..96257ee --- /dev/null +++ b/3rdparty/lzlib-1.12/bbexample.c @@ -0,0 +1,367 @@ +/* Buffer to buffer example - Test program for the library lzlib + Copyright (C) 2010-2021 Antonio Diaz Diaz. + + This program is free software: you have unlimited permission + to copy, distribute, and modify it. + + Usage: bbexample filename + + This program is an example of how buffer-to-buffer + compression/decompression can be implemented using lzlib. +*/ + +#define _FILE_OFFSET_BITS 64 + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "lzlib.h" + +#ifndef min + #define min(x,y) ((x) <= (y) ? (x) : (y)) +#endif + + +/* Returns the address of a malloc'd buffer containing the file data and + the file size in '*file_sizep'. + In case of error, returns 0 and does not modify '*file_sizep'. +*/ +uint8_t * read_file( const char * const name, long * const file_sizep ) + { + long buffer_size = 1 << 20, file_size; + uint8_t * buffer, * tmp; + FILE * const f = fopen( name, "rb" ); + if( !f ) + { fprintf( stderr, "bbexample: Can't open input file '%s': %s\n", + name, strerror( errno ) ); return 0; } + + buffer = (uint8_t *)malloc( buffer_size ); + if( !buffer ) + { fputs( "bbexample: read_file: Not enough memory.\n", stderr ); + fclose( f ); return 0; } + file_size = fread( buffer, 1, buffer_size, f ); + while( file_size >= buffer_size ) + { + if( buffer_size >= LONG_MAX ) + { + fprintf( stderr, "bbexample: Input file '%s' is too large.\n", name ); + free( buffer ); fclose( f ); return 0; + } + buffer_size = ( buffer_size <= LONG_MAX / 2 ) ? 2 * buffer_size : LONG_MAX; + tmp = (uint8_t *)realloc( buffer, buffer_size ); + if( !tmp ) + { fputs( "bbexample: read_file: Not enough memory.\n", stderr ); + free( buffer ); fclose( f ); return 0; } + buffer = tmp; + file_size += fread( buffer + file_size, 1, buffer_size - file_size, f ); + } + if( ferror( f ) || !feof( f ) ) + { + fprintf( stderr, "bbexample: Error reading file '%s': %s\n", + name, strerror( errno ) ); + free( buffer ); fclose( f ); return 0; + } + fclose( f ); + *file_sizep = file_size; + return buffer; + } + + +/* Compresses 'insize' bytes from 'inbuf'. + Returns the address of a malloc'd buffer containing the compressed data, + and the size of the data in '*outlenp'. + In case of error, returns 0 and does not modify '*outlenp'. +*/ +uint8_t * bbcompressl( const uint8_t * const inbuf, const long insize, + const int level, long * const outlenp ) + { + struct Lzma_options + { + int dictionary_size; /* 4 KiB .. 512 MiB */ + int match_len_limit; /* 5 .. 273 */ + }; + /* Mapping from gzip/bzip2 style 1..9 compression modes + to the corresponding LZMA compression modes. */ + const struct Lzma_options option_mapping[] = + { + { 65535, 16 }, /* -0 (65535,16 chooses fast encoder) */ + { 1 << 20, 5 }, /* -1 */ + { 3 << 19, 6 }, /* -2 */ + { 1 << 21, 8 }, /* -3 */ + { 3 << 20, 12 }, /* -4 */ + { 1 << 22, 20 }, /* -5 */ + { 1 << 23, 36 }, /* -6 */ + { 1 << 24, 68 }, /* -7 */ + { 3 << 23, 132 }, /* -8 */ + { 1 << 25, 273 } }; /* -9 */ + struct Lzma_options encoder_options; + struct LZ_Encoder * encoder; + uint8_t * outbuf; + const long delta_size = ( insize / 4 ) + 64; /* insize may be zero */ + long outsize = delta_size; /* initial outsize */ + long inpos = 0; + long outpos = 0; + bool error = false; + + if( level < 0 || level > 9 ) return 0; + encoder_options = option_mapping[level]; + + if( encoder_options.dictionary_size > insize && level != 0 ) + encoder_options.dictionary_size = insize; /* saves memory */ + if( encoder_options.dictionary_size < LZ_min_dictionary_size() ) + encoder_options.dictionary_size = LZ_min_dictionary_size(); + encoder = LZ_compress_open( encoder_options.dictionary_size, + encoder_options.match_len_limit, INT64_MAX ); + outbuf = (uint8_t *)malloc( outsize ); + if( !encoder || LZ_compress_errno( encoder ) != LZ_ok || !outbuf ) + { free( outbuf ); LZ_compress_close( encoder ); return 0; } + + while( true ) + { + int ret = LZ_compress_write( encoder, inbuf + inpos, + min( INT_MAX, insize - inpos ) ); + if( ret < 0 ) { error = true; break; } + inpos += ret; + if( inpos >= insize ) LZ_compress_finish( encoder ); + ret = LZ_compress_read( encoder, outbuf + outpos, + min( INT_MAX, outsize - outpos ) ); + if( ret < 0 ) { error = true; break; } + outpos += ret; + if( LZ_compress_finished( encoder ) == 1 ) break; + if( outpos >= outsize ) + { + uint8_t * tmp; + if( outsize > LONG_MAX - delta_size ) { error = true; break; } + outsize += delta_size; + tmp = (uint8_t *)realloc( outbuf, outsize ); + if( !tmp ) { error = true; break; } + outbuf = tmp; + } + } + + if( LZ_compress_close( encoder ) < 0 ) error = true; + if( error ) { free( outbuf ); return 0; } + *outlenp = outpos; + return outbuf; + } + + +/* Decompresses 'insize' bytes from 'inbuf'. + Returns the address of a malloc'd buffer containing the decompressed + data, and the size of the data in '*outlenp'. + In case of error, returns 0 and does not modify '*outlenp'. +*/ +uint8_t * bbdecompressl( const uint8_t * const inbuf, const long insize, + long * const outlenp ) + { + struct LZ_Decoder * const decoder = LZ_decompress_open(); + const long delta_size = insize; /* insize must be > zero */ + long outsize = delta_size; /* initial outsize */ + uint8_t * outbuf = (uint8_t *)malloc( outsize ); + long inpos = 0; + long outpos = 0; + bool error = false; + if( !decoder || LZ_decompress_errno( decoder ) != LZ_ok || !outbuf ) + { free( outbuf ); LZ_decompress_close( decoder ); return 0; } + + while( true ) + { + int ret = LZ_decompress_write( decoder, inbuf + inpos, + min( INT_MAX, insize - inpos ) ); + if( ret < 0 ) { error = true; break; } + inpos += ret; + if( inpos >= insize ) LZ_decompress_finish( decoder ); + ret = LZ_decompress_read( decoder, outbuf + outpos, + min( INT_MAX, outsize - outpos ) ); + if( ret < 0 ) { error = true; break; } + outpos += ret; + if( LZ_decompress_finished( decoder ) == 1 ) break; + if( outpos >= outsize ) + { + uint8_t * tmp; + if( outsize > LONG_MAX - delta_size ) { error = true; break; } + outsize += delta_size; + tmp = (uint8_t *)realloc( outbuf, outsize ); + if( !tmp ) { error = true; break; } + outbuf = tmp; + } + } + + if( LZ_decompress_close( decoder ) < 0 ) error = true; + if( error ) { free( outbuf ); return 0; } + *outlenp = outpos; + return outbuf; + } + + +/* Test the whole file at all levels. */ +int full_test( const uint8_t * const inbuf, const long insize ) + { + int level; + for( level = 0; level <= 9; ++level ) + { + long midsize = 0, outsize = 0; + uint8_t * outbuf; + uint8_t * midbuf = bbcompressl( inbuf, insize, level, &midsize ); + if( !midbuf ) + { fputs( "bbexample: full_test: Not enough memory or compress error.\n", + stderr ); return 1; } + + outbuf = bbdecompressl( midbuf, midsize, &outsize ); + free( midbuf ); + if( !outbuf ) + { fputs( "bbexample: full_test: Not enough memory or decompress error.\n", + stderr ); return 1; } + + if( insize != outsize || + ( insize > 0 && memcmp( inbuf, outbuf, insize ) != 0 ) ) + { fputs( "bbexample: full_test: Decompressed data differs from original.\n", + stderr ); free( outbuf ); return 1; } + + free( outbuf ); + } + return 0; + } + + +/* Compresses 'insize' bytes from 'inbuf' to 'outbuf'. + Returns the size of the compressed data in '*outlenp'. + In case of error, or if 'outsize' is too small, returns false and does + not modify '*outlenp'. +*/ +bool bbcompress( const uint8_t * const inbuf, const int insize, + const int dictionary_size, const int match_len_limit, + uint8_t * const outbuf, const int outsize, + int * const outlenp ) + { + int inpos = 0, outpos = 0; + bool error = false; + struct LZ_Encoder * const encoder = + LZ_compress_open( dictionary_size, match_len_limit, INT64_MAX ); + if( !encoder || LZ_compress_errno( encoder ) != LZ_ok ) + { LZ_compress_close( encoder ); return false; } + + while( true ) + { + int ret = LZ_compress_write( encoder, inbuf + inpos, insize - inpos ); + if( ret < 0 ) { error = true; break; } + inpos += ret; + if( inpos >= insize ) LZ_compress_finish( encoder ); + ret = LZ_compress_read( encoder, outbuf + outpos, outsize - outpos ); + if( ret < 0 ) { error = true; break; } + outpos += ret; + if( LZ_compress_finished( encoder ) == 1 ) break; + if( outpos >= outsize ) { error = true; break; } + } + + if( LZ_compress_close( encoder ) < 0 ) error = true; + if( error ) return false; + *outlenp = outpos; + return true; + } + + +/* Decompresses 'insize' bytes from 'inbuf' to 'outbuf'. + Returns the size of the decompressed data in '*outlenp'. + In case of error, or if 'outsize' is too small, returns false and does + not modify '*outlenp'. +*/ +bool bbdecompress( const uint8_t * const inbuf, const int insize, + uint8_t * const outbuf, const int outsize, + int * const outlenp ) + { + int inpos = 0, outpos = 0; + bool error = false; + struct LZ_Decoder * const decoder = LZ_decompress_open(); + if( !decoder || LZ_decompress_errno( decoder ) != LZ_ok ) + { LZ_decompress_close( decoder ); return false; } + + while( true ) + { + int ret = LZ_decompress_write( decoder, inbuf + inpos, insize - inpos ); + if( ret < 0 ) { error = true; break; } + inpos += ret; + if( inpos >= insize ) LZ_decompress_finish( decoder ); + ret = LZ_decompress_read( decoder, outbuf + outpos, outsize - outpos ); + if( ret < 0 ) { error = true; break; } + outpos += ret; + if( LZ_decompress_finished( decoder ) == 1 ) break; + if( outpos >= outsize ) { error = true; break; } + } + + if( LZ_decompress_close( decoder ) < 0 ) error = true; + if( error ) return false; + *outlenp = outpos; + return true; + } + + +/* Test at most INT_MAX bytes from the file with buffers of fixed size. */ +int fixed_test( const uint8_t * const inbuf, const int insize ) + { + int dictionary_size = 65535; /* fast encoder */ + int midsize = min( INT_MAX, ( insize / 8 ) * 9LL + 44 ), outsize = insize; + uint8_t * midbuf = (uint8_t *)malloc( midsize ); + uint8_t * outbuf = (uint8_t *)malloc( outsize ); + if( !midbuf || !outbuf ) + { fputs( "bbexample: fixed_test: Not enough memory.\n", stderr ); + free( outbuf ); free( midbuf ); return 1; } + + for( ; dictionary_size <= 8 << 20; dictionary_size += 8323073 ) + { + int midlen, outlen; + if( !bbcompress( inbuf, insize, dictionary_size, 16, midbuf, midsize, &midlen ) ) + { fputs( "bbexample: fixed_test: Not enough memory or compress error.\n", + stderr ); free( outbuf ); free( midbuf ); return 1; } + + if( !bbdecompress( midbuf, midlen, outbuf, outsize, &outlen ) ) + { fputs( "bbexample: fixed_test: Not enough memory or decompress error.\n", + stderr ); free( outbuf ); free( midbuf ); return 1; } + + if( insize != outlen || + ( insize > 0 && memcmp( inbuf, outbuf, insize ) != 0 ) ) + { fputs( "bbexample: fixed_test: Decompressed data differs from original.\n", + stderr ); free( outbuf ); free( midbuf ); return 1; } + + } + free( outbuf ); + free( midbuf ); + return 0; + } + + +int main( const int argc, const char * const argv[] ) + { + int retval = 0, i; + int open_failures = 0; + const bool verbose = ( argc > 2 ); + + if( argc < 2 ) + { + fputs( "Usage: bbexample filename\n", stderr ); + return 1; + } + + for( i = 1; i < argc && retval == 0; ++i ) + { + long insize; + uint8_t * const inbuf = read_file( argv[i], &insize ); + if( !inbuf ) { ++open_failures; continue; } + if( verbose ) fprintf( stderr, " Testing file '%s'\n", argv[i] ); + + retval = full_test( inbuf, insize ); + if( retval == 0 ) retval = fixed_test( inbuf, min( INT_MAX, insize ) ); + free( inbuf ); + } + if( open_failures > 0 && verbose ) + fprintf( stderr, "bbexample: warning: %d %s failed to open.\n", + open_failures, ( open_failures == 1 ) ? "file" : "files" ); + if( retval == 0 && open_failures ) retval = 1; + return retval; + } diff --git a/3rdparty/lzlib-1.12/carg_parser.c b/3rdparty/lzlib-1.12/carg_parser.c new file mode 100644 index 0000000..d0c05d5 --- /dev/null +++ b/3rdparty/lzlib-1.12/carg_parser.c @@ -0,0 +1,285 @@ +/* Arg_parser - POSIX/GNU command line argument parser. (C version) + Copyright (C) 2006-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#include +#include + +#include "carg_parser.h" + + +/* assure at least a minimum size for buffer 'buf' */ +static void * ap_resize_buffer( void * buf, const int min_size ) + { + if( buf ) buf = realloc( buf, min_size ); + else buf = malloc( min_size ); + return buf; + } + + +static char push_back_record( struct Arg_parser * const ap, + const int code, const char * const argument ) + { + const int len = strlen( argument ); + struct ap_Record * p; + void * tmp = ap_resize_buffer( ap->data, + ( ap->data_size + 1 ) * sizeof (struct ap_Record) ); + if( !tmp ) return 0; + ap->data = (struct ap_Record *)tmp; + p = &(ap->data[ap->data_size]); + p->code = code; + p->argument = 0; + tmp = ap_resize_buffer( p->argument, len + 1 ); + if( !tmp ) return 0; + p->argument = (char *)tmp; + strncpy( p->argument, argument, len + 1 ); + ++ap->data_size; + return 1; + } + + +static char add_error( struct Arg_parser * const ap, const char * const msg ) + { + const int len = strlen( msg ); + void * tmp = ap_resize_buffer( ap->error, ap->error_size + len + 1 ); + if( !tmp ) return 0; + ap->error = (char *)tmp; + strncpy( ap->error + ap->error_size, msg, len + 1 ); + ap->error_size += len; + return 1; + } + + +static void free_data( struct Arg_parser * const ap ) + { + int i; + for( i = 0; i < ap->data_size; ++i ) free( ap->data[i].argument ); + if( ap->data ) { free( ap->data ); ap->data = 0; } + ap->data_size = 0; + } + + +static char parse_long_option( struct Arg_parser * const ap, + const char * const opt, const char * const arg, + const struct ap_Option options[], + int * const argindp ) + { + unsigned len; + int index = -1, i; + char exact = 0, ambig = 0; + + for( len = 0; opt[len+2] && opt[len+2] != '='; ++len ) ; + + /* Test all long options for either exact match or abbreviated matches. */ + for( i = 0; options[i].code != 0; ++i ) + if( options[i].name && strncmp( options[i].name, &opt[2], len ) == 0 ) + { + if( strlen( options[i].name ) == len ) /* Exact match found */ + { index = i; exact = 1; break; } + else if( index < 0 ) index = i; /* First nonexact match found */ + else if( options[index].code != options[i].code || + options[index].has_arg != options[i].has_arg ) + ambig = 1; /* Second or later nonexact match found */ + } + + if( ambig && !exact ) + { + add_error( ap, "option '" ); add_error( ap, opt ); + add_error( ap, "' is ambiguous" ); + return 1; + } + + if( index < 0 ) /* nothing found */ + { + add_error( ap, "unrecognized option '" ); add_error( ap, opt ); + add_error( ap, "'" ); + return 1; + } + + ++*argindp; + + if( opt[len+2] ) /* '--=' syntax */ + { + if( options[index].has_arg == ap_no ) + { + add_error( ap, "option '--" ); add_error( ap, options[index].name ); + add_error( ap, "' doesn't allow an argument" ); + return 1; + } + if( options[index].has_arg == ap_yes && !opt[len+3] ) + { + add_error( ap, "option '--" ); add_error( ap, options[index].name ); + add_error( ap, "' requires an argument" ); + return 1; + } + return push_back_record( ap, options[index].code, &opt[len+3] ); + } + + if( options[index].has_arg == ap_yes ) + { + if( !arg || !arg[0] ) + { + add_error( ap, "option '--" ); add_error( ap, options[index].name ); + add_error( ap, "' requires an argument" ); + return 1; + } + ++*argindp; + return push_back_record( ap, options[index].code, arg ); + } + + return push_back_record( ap, options[index].code, "" ); + } + + +static char parse_short_option( struct Arg_parser * const ap, + const char * const opt, const char * const arg, + const struct ap_Option options[], + int * const argindp ) + { + int cind = 1; /* character index in opt */ + + while( cind > 0 ) + { + int index = -1, i; + const unsigned char code = opt[cind]; + char code_str[2]; + code_str[0] = code; code_str[1] = 0; + + if( code != 0 ) + for( i = 0; options[i].code; ++i ) + if( code == options[i].code ) + { index = i; break; } + + if( index < 0 ) + { + add_error( ap, "invalid option -- '" ); add_error( ap, code_str ); + add_error( ap, "'" ); + return 1; + } + + if( opt[++cind] == 0 ) { ++*argindp; cind = 0; } /* opt finished */ + + if( options[index].has_arg != ap_no && cind > 0 && opt[cind] ) + { + if( !push_back_record( ap, code, &opt[cind] ) ) return 0; + ++*argindp; cind = 0; + } + else if( options[index].has_arg == ap_yes ) + { + if( !arg || !arg[0] ) + { + add_error( ap, "option requires an argument -- '" ); + add_error( ap, code_str ); add_error( ap, "'" ); + return 1; + } + ++*argindp; cind = 0; + if( !push_back_record( ap, code, arg ) ) return 0; + } + else if( !push_back_record( ap, code, "" ) ) return 0; + } + return 1; + } + + +char ap_init( struct Arg_parser * const ap, + const int argc, const char * const argv[], + const struct ap_Option options[], const char in_order ) + { + const char ** non_options = 0; /* skipped non-options */ + int non_options_size = 0; /* number of skipped non-options */ + int argind = 1; /* index in argv */ + int i; + + ap->data = 0; + ap->error = 0; + ap->data_size = 0; + ap->error_size = 0; + if( argc < 2 || !argv || !options ) return 1; + + while( argind < argc ) + { + const unsigned char ch1 = argv[argind][0]; + const unsigned char ch2 = ch1 ? argv[argind][1] : 0; + + if( ch1 == '-' && ch2 ) /* we found an option */ + { + const char * const opt = argv[argind]; + const char * const arg = ( argind + 1 < argc ) ? argv[argind+1] : 0; + if( ch2 == '-' ) + { + if( !argv[argind][2] ) { ++argind; break; } /* we found "--" */ + else if( !parse_long_option( ap, opt, arg, options, &argind ) ) return 0; + } + else if( !parse_short_option( ap, opt, arg, options, &argind ) ) return 0; + if( ap->error ) break; + } + else + { + if( in_order ) + { if( !push_back_record( ap, 0, argv[argind++] ) ) return 0; } + else + { + void * tmp = ap_resize_buffer( non_options, + ( non_options_size + 1 ) * sizeof *non_options ); + if( !tmp ) return 0; + non_options = (const char **)tmp; + non_options[non_options_size++] = argv[argind++]; + } + } + } + if( ap->error ) free_data( ap ); + else + { + for( i = 0; i < non_options_size; ++i ) + if( !push_back_record( ap, 0, non_options[i] ) ) return 0; + while( argind < argc ) + if( !push_back_record( ap, 0, argv[argind++] ) ) return 0; + } + if( non_options ) free( non_options ); + return 1; + } + + +void ap_free( struct Arg_parser * const ap ) + { + free_data( ap ); + if( ap->error ) { free( ap->error ); ap->error = 0; } + ap->error_size = 0; + } + + +const char * ap_error( const struct Arg_parser * const ap ) + { return ap->error; } + + +int ap_arguments( const struct Arg_parser * const ap ) + { return ap->data_size; } + + +int ap_code( const struct Arg_parser * const ap, const int i ) + { + if( i >= 0 && i < ap_arguments( ap ) ) return ap->data[i].code; + else return 0; + } + + +const char * ap_argument( const struct Arg_parser * const ap, const int i ) + { + if( i >= 0 && i < ap_arguments( ap ) ) return ap->data[i].argument; + else return ""; + } diff --git a/3rdparty/lzlib-1.12/carg_parser.h b/3rdparty/lzlib-1.12/carg_parser.h new file mode 100644 index 0000000..c5f2352 --- /dev/null +++ b/3rdparty/lzlib-1.12/carg_parser.h @@ -0,0 +1,93 @@ +/* Arg_parser - POSIX/GNU command line argument parser. (C version) + Copyright (C) 2006-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +/* Arg_parser reads the arguments in 'argv' and creates a number of + option codes, option arguments, and non-option arguments. + + In case of error, 'ap_error' returns a non-null pointer to an error + message. + + 'options' is an array of 'struct ap_Option' terminated by an element + containing a code which is zero. A null name means a short-only + option. A code value outside the unsigned char range means a + long-only option. + + Arg_parser normally makes it appear as if all the option arguments + were specified before all the non-option arguments for the purposes + of parsing, even if the user of your program intermixed option and + non-option arguments. If you want the arguments in the exact order + the user typed them, call 'ap_init' with 'in_order' = true. + + The argument '--' terminates all options; any following arguments are + treated as non-option arguments, even if they begin with a hyphen. + + The syntax for optional option arguments is '-' + (without whitespace), or '--='. +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +enum ap_Has_arg { ap_no, ap_yes, ap_maybe }; + +struct ap_Option + { + int code; /* Short option letter or code ( code != 0 ) */ + const char * name; /* Long option name (maybe null) */ + enum ap_Has_arg has_arg; + }; + + +struct ap_Record + { + int code; + char * argument; + }; + + +struct Arg_parser + { + struct ap_Record * data; + char * error; + int data_size; + int error_size; + }; + + +char ap_init( struct Arg_parser * const ap, + const int argc, const char * const argv[], + const struct ap_Option options[], const char in_order ); + +void ap_free( struct Arg_parser * const ap ); + +const char * ap_error( const struct Arg_parser * const ap ); + +/* The number of arguments parsed. May be different from argc. */ +int ap_arguments( const struct Arg_parser * const ap ); + +/* If ap_code( i ) is 0, ap_argument( i ) is a non-option. + Else ap_argument( i ) is the option's argument (or empty). */ +int ap_code( const struct Arg_parser * const ap, const int i ); + +const char * ap_argument( const struct Arg_parser * const ap, const int i ); + +#ifdef __cplusplus +} +#endif diff --git a/3rdparty/lzlib-1.12/cbuffer.c b/3rdparty/lzlib-1.12/cbuffer.c new file mode 100644 index 0000000..ee54131 --- /dev/null +++ b/3rdparty/lzlib-1.12/cbuffer.c @@ -0,0 +1,143 @@ +/* Lzlib - Compression library for the lzip format + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +struct Circular_buffer + { + uint8_t * buffer; + unsigned buffer_size; /* capacity == buffer_size - 1 */ + unsigned get; /* buffer is empty when get == put */ + unsigned put; + }; + +static inline bool Cb_init( struct Circular_buffer * const cb, + const unsigned buf_size ) + { + cb->buffer_size = buf_size + 1; + cb->get = 0; + cb->put = 0; + cb->buffer = + ( cb->buffer_size > 1 ) ? (uint8_t *)malloc( cb->buffer_size ) : 0; + return ( cb->buffer != 0 ); + } + +static inline void Cb_free( struct Circular_buffer * const cb ) + { free( cb->buffer ); cb->buffer = 0; } + +static inline void Cb_reset( struct Circular_buffer * const cb ) + { cb->get = 0; cb->put = 0; } + +static inline unsigned Cb_empty( const struct Circular_buffer * const cb ) + { return cb->get == cb->put; } + +static inline unsigned Cb_used_bytes( const struct Circular_buffer * const cb ) + { return ( (cb->get <= cb->put) ? 0 : cb->buffer_size ) + cb->put - cb->get; } + +static inline unsigned Cb_free_bytes( const struct Circular_buffer * const cb ) + { return ( (cb->get <= cb->put) ? cb->buffer_size : 0 ) - cb->put + cb->get - 1; } + +static inline uint8_t Cb_get_byte( struct Circular_buffer * const cb ) + { + const uint8_t b = cb->buffer[cb->get]; + if( ++cb->get >= cb->buffer_size ) cb->get = 0; + return b; + } + +static inline void Cb_put_byte( struct Circular_buffer * const cb, + const uint8_t b ) + { + cb->buffer[cb->put] = b; + if( ++cb->put >= cb->buffer_size ) cb->put = 0; + } + + +static bool Cb_unread_data( struct Circular_buffer * const cb, + const unsigned size ) + { + if( size > Cb_free_bytes( cb ) ) return false; + if( cb->get >= size ) cb->get -= size; + else cb->get = cb->buffer_size - size + cb->get; + return true; + } + + +/* Copies up to 'out_size' bytes to 'out_buffer' and updates 'get'. + If 'out_buffer' is null, the bytes are discarded. + Returns the number of bytes copied or discarded. +*/ +static unsigned Cb_read_data( struct Circular_buffer * const cb, + uint8_t * const out_buffer, + const unsigned out_size ) + { + unsigned size = 0; + if( out_size == 0 ) return 0; + if( cb->get > cb->put ) + { + size = min( cb->buffer_size - cb->get, out_size ); + if( size > 0 ) + { + if( out_buffer ) memcpy( out_buffer, cb->buffer + cb->get, size ); + cb->get += size; + if( cb->get >= cb->buffer_size ) cb->get = 0; + } + } + if( cb->get < cb->put ) + { + const unsigned size2 = min( cb->put - cb->get, out_size - size ); + if( size2 > 0 ) + { + if( out_buffer ) memcpy( out_buffer + size, cb->buffer + cb->get, size2 ); + cb->get += size2; + size += size2; + } + } + return size; + } + + +/* Copies up to 'in_size' bytes from 'in_buffer' and updates 'put'. + Returns the number of bytes copied. +*/ +static unsigned Cb_write_data( struct Circular_buffer * const cb, + const uint8_t * const in_buffer, + const unsigned in_size ) + { + unsigned size = 0; + if( in_size == 0 ) return 0; + if( cb->put >= cb->get ) + { + size = min( cb->buffer_size - cb->put - (cb->get == 0), in_size ); + if( size > 0 ) + { + memcpy( cb->buffer + cb->put, in_buffer, size ); + cb->put += size; + if( cb->put >= cb->buffer_size ) cb->put = 0; + } + } + if( cb->put < cb->get ) + { + const unsigned size2 = min( cb->get - cb->put - 1, in_size - size ); + if( size2 > 0 ) + { + memcpy( cb->buffer + cb->put, in_buffer + size, size2 ); + cb->put += size2; + size += size2; + } + } + return size; + } diff --git a/3rdparty/lzlib-1.12/configure b/3rdparty/lzlib-1.12/configure new file mode 100755 index 0000000..d74cf5d --- /dev/null +++ b/3rdparty/lzlib-1.12/configure @@ -0,0 +1,229 @@ +#! /bin/sh +# configure script for Lzlib - Compression library for the lzip format +# Copyright (C) 2009-2021 Antonio Diaz Diaz. +# +# This configure script is free software: you have unlimited permission +# to copy, distribute, and modify it. + +pkgname=lzlib +pkgversion=1.12 +soversion=1 +progname=minilzip +progname_static=${progname} +progname_shared= +progname_lzip=${progname} +disable_ldconfig= +libname=lz +srctrigger=doc/${pkgname}.texi + +# clear some things potentially inherited from environment. +LC_ALL=C +export LC_ALL +srcdir= +prefix=/usr/local +exec_prefix='$(prefix)' +bindir='$(exec_prefix)/bin' +datarootdir='$(prefix)/share' +includedir='$(prefix)/include' +infodir='$(datarootdir)/info' +libdir='$(exec_prefix)/lib' +mandir='$(datarootdir)/man' +CC=gcc +CPPFLAGS= +CFLAGS='-Wall -W -O2' +LDFLAGS= + +# checking whether we are using GNU C. +/bin/sh -c "${CC} --version" > /dev/null 2>&1 || { CC=cc ; CFLAGS=-O2 ; } + +# Loop over all args +args= +no_create= +while [ $# != 0 ] ; do + + # Get the first arg, and shuffle + option=$1 ; arg2=no + shift + + # Add the argument quoted to args + if [ -z "${args}" ] ; then args="\"${option}\"" + else args="${args} \"${option}\"" ; fi + + # Split out the argument for options that take them + case ${option} in + *=*) optarg=`echo "${option}" | sed -e 's,^[^=]*=,,;s,/$,,'` ;; + esac + + # Process the options + case ${option} in + --help | -h) + echo "Usage: $0 [OPTION]... [VAR=VALUE]..." + echo + echo "To assign makefile variables (e.g., CC, CFLAGS...), specify them as" + echo "arguments to configure in the form VAR=VALUE." + echo + echo "Options and variables: [defaults in brackets]" + echo " -h, --help display this help and exit" + echo " -V, --version output version information and exit" + echo " --srcdir=DIR find the sources in DIR [. or ..]" + echo " --prefix=DIR install into DIR [${prefix}]" + echo " --exec-prefix=DIR base directory for arch-dependent files [${exec_prefix}]" + echo " --bindir=DIR user executables directory [${bindir}]" + echo " --datarootdir=DIR base directory for doc and data [${datarootdir}]" + echo " --includedir=DIR C header files [${includedir}]" + echo " --infodir=DIR info files directory [${infodir}]" + echo " --libdir=DIR object code libraries [${libdir}]" + echo " --mandir=DIR man pages directory [${mandir}]" + echo " --disable-static don't build a static library [enable]" + echo " (implies --enable-shared)" + echo " --enable-shared build also a shared library [disable]" + echo " --disable-ldconfig don't run ldconfig after install" + echo " CC=COMPILER C compiler to use [${CC}]" + echo " CPPFLAGS=OPTIONS command line options for the preprocessor [${CPPFLAGS}]" + echo " CFLAGS=OPTIONS command line options for the C compiler [${CFLAGS}]" + echo " CFLAGS+=OPTIONS append options to the current value of CFLAGS" + echo " LDFLAGS=OPTIONS command line options for the linker [${LDFLAGS}]" + echo + exit 0 ;; + --version | -V) + echo "Configure script for ${pkgname} version ${pkgversion}" + exit 0 ;; + --srcdir) srcdir=$1 ; arg2=yes ;; + --prefix) prefix=$1 ; arg2=yes ;; + --exec-prefix) exec_prefix=$1 ; arg2=yes ;; + --bindir) bindir=$1 ; arg2=yes ;; + --datarootdir) datarootdir=$1 ; arg2=yes ;; + --includedir) includedir=$1 ; arg2=yes ;; + --infodir) infodir=$1 ; arg2=yes ;; + --libdir) libdir=$1 ; arg2=yes ;; + --mandir) mandir=$1 ; arg2=yes ;; + + --srcdir=*) srcdir=${optarg} ;; + --prefix=*) prefix=${optarg} ;; + --exec-prefix=*) exec_prefix=${optarg} ;; + --bindir=*) bindir=${optarg} ;; + --datarootdir=*) datarootdir=${optarg} ;; + --includedir=*) includedir=${optarg} ;; + --infodir=*) infodir=${optarg} ;; + --libdir=*) libdir=${optarg} ;; + --mandir=*) mandir=${optarg} ;; + --no-create) no_create=yes ;; + --disable-static) + progname_static= + progname_shared=${progname}_shared + progname_lzip=${progname}_shared ;; + --enable-shared) + progname_shared=${progname}_shared + progname_lzip=${progname}_shared ;; + --disable-ldconfig) disable_ldconfig=yes ;; + + CC=*) CC=${optarg} ;; + CPPFLAGS=*) CPPFLAGS=${optarg} ;; + CFLAGS=*) CFLAGS=${optarg} ;; + CFLAGS+=*) CFLAGS="${CFLAGS} ${optarg}" ;; + LDFLAGS=*) LDFLAGS=${optarg} ;; + + --*) + echo "configure: WARNING: unrecognized option: '${option}'" 1>&2 ;; + *=* | *-*-*) ;; + *) + echo "configure: unrecognized option: '${option}'" 1>&2 + echo "Try 'configure --help' for more information." 1>&2 + exit 1 ;; + esac + + # Check if the option took a separate argument + if [ "${arg2}" = yes ] ; then + if [ $# != 0 ] ; then args="${args} \"$1\"" ; shift + else echo "configure: Missing argument to '${option}'" 1>&2 + exit 1 + fi + fi +done + +# Find the source files, if location was not specified. +srcdirtext= +if [ -z "${srcdir}" ] ; then + srcdirtext="or . or .." ; srcdir=. + if [ ! -r "${srcdir}/${srctrigger}" ] ; then srcdir=.. ; fi + if [ ! -r "${srcdir}/${srctrigger}" ] ; then + ## the sed command below emulates the dirname command + srcdir=`echo "$0" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + fi +fi + +if [ ! -r "${srcdir}/${srctrigger}" ] ; then + echo "configure: Can't find sources in ${srcdir} ${srcdirtext}" 1>&2 + echo "configure: (At least ${srctrigger} is missing)." 1>&2 + exit 1 +fi + +# Set srcdir to . if that's what it is. +if [ "`pwd`" = "`cd "${srcdir}" ; pwd`" ] ; then srcdir=. ; fi + +echo +if [ -z "${no_create}" ] ; then + echo "creating config.status" + rm -f config.status + cat > config.status << EOF +#! /bin/sh +# This file was generated automatically by configure. Don't edit. +# Run this file to recreate the current configuration. +# +# This script is free software: you have unlimited permission +# to copy, distribute, and modify it. + +exec /bin/sh $0 ${args} --no-create +EOF + chmod +x config.status +fi + +echo "creating Makefile" +echo "VPATH = ${srcdir}" +echo "prefix = ${prefix}" +echo "exec_prefix = ${exec_prefix}" +echo "bindir = ${bindir}" +echo "datarootdir = ${datarootdir}" +echo "includedir = ${includedir}" +echo "infodir = ${infodir}" +echo "libdir = ${libdir}" +echo "mandir = ${mandir}" +echo "CC = ${CC}" +echo "CPPFLAGS = ${CPPFLAGS}" +echo "CFLAGS = ${CFLAGS}" +echo "LDFLAGS = ${LDFLAGS}" +rm -f Makefile +cat > Makefile << EOF +# Makefile for Lzlib - Compression library for the lzip format +# Copyright (C) 2009-2021 Antonio Diaz Diaz. +# This file was generated automatically by configure. Don't edit. +# +# This Makefile is free software: you have unlimited permission +# to copy, distribute, and modify it. + +pkgname = ${pkgname} +pkgversion = ${pkgversion} +soversion = ${soversion} +progname = ${progname} +progname_static = ${progname_static} +progname_shared = ${progname_shared} +progname_lzip = ${progname_lzip} +disable_ldconfig = ${disable_ldconfig} +libname = ${libname} +VPATH = ${srcdir} +prefix = ${prefix} +exec_prefix = ${exec_prefix} +bindir = ${bindir} +datarootdir = ${datarootdir} +includedir = ${includedir} +infodir = ${infodir} +libdir = ${libdir} +mandir = ${mandir} +CC = ${CC} +CPPFLAGS = ${CPPFLAGS} +CFLAGS = ${CFLAGS} +LDFLAGS = ${LDFLAGS} +EOF +cat "${srcdir}/Makefile.in" >> Makefile + +echo "OK. Now you can run make." diff --git a/3rdparty/lzlib-1.12/decoder.c b/3rdparty/lzlib-1.12/decoder.c new file mode 100644 index 0000000..82472b3 --- /dev/null +++ b/3rdparty/lzlib-1.12/decoder.c @@ -0,0 +1,152 @@ +/* Lzlib - Compression library for the lzip format + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +static int LZd_try_verify_trailer( struct LZ_decoder * const d ) + { + Lzip_trailer trailer; + if( Rd_available_bytes( d->rdec ) < Lt_size ) + { if( !d->rdec->at_stream_end ) return 0; else return 2; } + d->verify_trailer_pending = false; + d->member_finished = true; + + if( Rd_read_data( d->rdec, trailer, Lt_size ) == Lt_size && + Lt_get_data_crc( trailer ) == LZd_crc( d ) && + Lt_get_data_size( trailer ) == LZd_data_position( d ) && + Lt_get_member_size( trailer ) == d->rdec->member_position ) return 0; + return 3; + } + + +/* Return value: 0 = OK, 1 = decoder error, 2 = unexpected EOF, + 3 = trailer error, 4 = unknown marker found, + 5 = library error. */ +static int LZd_decode_member( struct LZ_decoder * const d ) + { + struct Range_decoder * const rdec = d->rdec; + State * const state = &d->state; + /* unsigned old_mpos = rdec->member_position; */ + + if( d->member_finished ) return 0; + if( !Rd_try_reload( rdec ) ) + { if( !rdec->at_stream_end ) return 0; else return 2; } + if( d->verify_trailer_pending ) return LZd_try_verify_trailer( d ); + + while( !Rd_finished( rdec ) ) + { + int len; + const int pos_state = LZd_data_position( d ) & pos_state_mask; + /* const unsigned mpos = rdec->member_position; + if( mpos - old_mpos > rd_min_available_bytes ) return 5; + old_mpos = mpos; */ + if( !Rd_enough_available_bytes( rdec ) ) /* check unexpected EOF */ + { if( !rdec->at_stream_end ) return 0; + if( Cb_empty( &rdec->cb ) ) break; } /* decode until EOF */ + if( !LZd_enough_free_bytes( d ) ) return 0; + if( Rd_decode_bit( rdec, &d->bm_match[*state][pos_state] ) == 0 ) /* 1st bit */ + { + /* literal byte */ + Bit_model * const bm = d->bm_literal[get_lit_state(LZd_peek_prev( d ))]; + if( St_is_char( *state ) ) + { + *state -= ( *state < 4 ) ? *state : 3; + LZd_put_byte( d, Rd_decode_tree8( rdec, bm ) ); + } + else + { + *state -= ( *state < 10 ) ? 3 : 6; + LZd_put_byte( d, Rd_decode_matched( rdec, bm, LZd_peek( d, d->rep0 ) ) ); + } + continue; + } + /* match or repeated match */ + if( Rd_decode_bit( rdec, &d->bm_rep[*state] ) != 0 ) /* 2nd bit */ + { + if( Rd_decode_bit( rdec, &d->bm_rep0[*state] ) == 0 ) /* 3rd bit */ + { + if( Rd_decode_bit( rdec, &d->bm_len[*state][pos_state] ) == 0 ) /* 4th bit */ + { *state = St_set_short_rep( *state ); + LZd_put_byte( d, LZd_peek( d, d->rep0 ) ); continue; } + } + else + { + unsigned distance; + if( Rd_decode_bit( rdec, &d->bm_rep1[*state] ) == 0 ) /* 4th bit */ + distance = d->rep1; + else + { + if( Rd_decode_bit( rdec, &d->bm_rep2[*state] ) == 0 ) /* 5th bit */ + distance = d->rep2; + else + { distance = d->rep3; d->rep3 = d->rep2; } + d->rep2 = d->rep1; + } + d->rep1 = d->rep0; + d->rep0 = distance; + } + *state = St_set_rep( *state ); + len = min_match_len + Rd_decode_len( rdec, &d->rep_len_model, pos_state ); + } + else /* match */ + { + unsigned distance; + len = min_match_len + Rd_decode_len( rdec, &d->match_len_model, pos_state ); + distance = Rd_decode_tree6( rdec, d->bm_dis_slot[get_len_state(len)] ); + if( distance >= start_dis_model ) + { + const unsigned dis_slot = distance; + const int direct_bits = ( dis_slot >> 1 ) - 1; + distance = ( 2 | ( dis_slot & 1 ) ) << direct_bits; + if( dis_slot < end_dis_model ) + distance += Rd_decode_tree_reversed( rdec, + d->bm_dis + ( distance - dis_slot ), direct_bits ); + else + { + distance += + Rd_decode( rdec, direct_bits - dis_align_bits ) << dis_align_bits; + distance += Rd_decode_tree_reversed4( rdec, d->bm_align ); + if( distance == 0xFFFFFFFFU ) /* marker found */ + { + Rd_normalize( rdec ); + /* const unsigned mpos = rdec->member_position; + if( mpos - old_mpos > rd_min_available_bytes ) return 5; + old_mpos = mpos; */ + if( len == min_match_len ) /* End Of Stream marker */ + { + d->verify_trailer_pending = true; + return LZd_try_verify_trailer( d ); + } + if( len == min_match_len + 1 ) /* Sync Flush marker */ + { + rdec->reload_pending = true; + if( Rd_try_reload( rdec ) ) continue; + else { if( !rdec->at_stream_end ) return 0; else break; } + } + return 4; + } + } + } + d->rep3 = d->rep2; d->rep2 = d->rep1; d->rep1 = d->rep0; d->rep0 = distance; + *state = St_set_match( *state ); + if( d->rep0 >= d->dictionary_size || + ( d->rep0 >= d->cb.put && !d->pos_wrapped ) ) return 1; + } + LZd_copy_block( d, d->rep0, len ); + } + return 2; + } diff --git a/3rdparty/lzlib-1.12/decoder.h b/3rdparty/lzlib-1.12/decoder.h new file mode 100644 index 0000000..15d5dfb --- /dev/null +++ b/3rdparty/lzlib-1.12/decoder.h @@ -0,0 +1,416 @@ +/* Lzlib - Compression library for the lzip format + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +enum { rd_min_available_bytes = 10 }; + +struct Range_decoder + { + struct Circular_buffer cb; /* input buffer */ + unsigned long long member_position; + uint32_t code; + uint32_t range; + bool at_stream_end; + bool reload_pending; + }; + +static inline bool Rd_init( struct Range_decoder * const rdec ) + { + if( !Cb_init( &rdec->cb, 65536 + rd_min_available_bytes ) ) return false; + rdec->member_position = 0; + rdec->code = 0; + rdec->range = 0xFFFFFFFFU; + rdec->at_stream_end = false; + rdec->reload_pending = false; + return true; + } + +static inline void Rd_free( struct Range_decoder * const rdec ) + { Cb_free( &rdec->cb ); } + +static inline bool Rd_finished( const struct Range_decoder * const rdec ) + { return rdec->at_stream_end && Cb_empty( &rdec->cb ); } + +static inline void Rd_finish( struct Range_decoder * const rdec ) + { rdec->at_stream_end = true; } + +static inline bool Rd_enough_available_bytes( const struct Range_decoder * const rdec ) + { return ( Cb_used_bytes( &rdec->cb ) >= rd_min_available_bytes ); } + +static inline unsigned Rd_available_bytes( const struct Range_decoder * const rdec ) + { return Cb_used_bytes( &rdec->cb ); } + +static inline unsigned Rd_free_bytes( const struct Range_decoder * const rdec ) + { return rdec->at_stream_end ? 0 : Cb_free_bytes( &rdec->cb ); } + +static inline unsigned long long Rd_purge( struct Range_decoder * const rdec ) + { + const unsigned long long size = + rdec->member_position + Cb_used_bytes( &rdec->cb ); + Cb_reset( &rdec->cb ); + rdec->member_position = 0; rdec->at_stream_end = true; + return size; + } + +static inline void Rd_reset( struct Range_decoder * const rdec ) + { Cb_reset( &rdec->cb ); + rdec->member_position = 0; rdec->at_stream_end = false; } + + +/* Seeks a member header and updates 'get'. '*skippedp' is set to the + number of bytes skipped. Returns true if it finds a valid header. +*/ +static bool Rd_find_header( struct Range_decoder * const rdec, + unsigned * const skippedp ) + { + *skippedp = 0; + while( rdec->cb.get != rdec->cb.put ) + { + if( rdec->cb.buffer[rdec->cb.get] == lzip_magic[0] ) + { + unsigned get = rdec->cb.get; + int i; + Lzip_header header; + for( i = 0; i < Lh_size; ++i ) + { + if( get == rdec->cb.put ) return false; /* not enough data */ + header[i] = rdec->cb.buffer[get]; + if( ++get >= rdec->cb.buffer_size ) get = 0; + } + if( Lh_verify( header ) ) return true; + } + if( ++rdec->cb.get >= rdec->cb.buffer_size ) rdec->cb.get = 0; + ++*skippedp; + } + return false; + } + + +static inline int Rd_write_data( struct Range_decoder * const rdec, + const uint8_t * const inbuf, const int size ) + { + if( rdec->at_stream_end || size <= 0 ) return 0; + return Cb_write_data( &rdec->cb, inbuf, size ); + } + +static inline uint8_t Rd_get_byte( struct Range_decoder * const rdec ) + { + /* 0xFF avoids decoder error if member is truncated at EOS marker */ + if( Rd_finished( rdec ) ) return 0xFF; + ++rdec->member_position; + return Cb_get_byte( &rdec->cb ); + } + +static inline int Rd_read_data( struct Range_decoder * const rdec, + uint8_t * const outbuf, const int size ) + { + const int sz = Cb_read_data( &rdec->cb, outbuf, size ); + if( sz > 0 ) rdec->member_position += sz; + return sz; + } + +static inline bool Rd_unread_data( struct Range_decoder * const rdec, + const unsigned size ) + { + if( size > rdec->member_position || !Cb_unread_data( &rdec->cb, size ) ) + return false; + rdec->member_position -= size; + return true; + } + +static bool Rd_try_reload( struct Range_decoder * const rdec ) + { + if( rdec->reload_pending && Rd_available_bytes( rdec ) >= 5 ) + { + int i; + rdec->reload_pending = false; + rdec->code = 0; + for( i = 0; i < 5; ++i ) + rdec->code = (rdec->code << 8) | Rd_get_byte( rdec ); + rdec->range = 0xFFFFFFFFU; + rdec->code &= rdec->range; /* make sure that first byte is discarded */ + } + return !rdec->reload_pending; + } + +static inline void Rd_normalize( struct Range_decoder * const rdec ) + { + if( rdec->range <= 0x00FFFFFFU ) + { rdec->range <<= 8; rdec->code = (rdec->code << 8) | Rd_get_byte( rdec ); } + } + +static inline unsigned Rd_decode( struct Range_decoder * const rdec, + const int num_bits ) + { + unsigned symbol = 0; + int i; + for( i = num_bits; i > 0; --i ) + { + bool bit; + Rd_normalize( rdec ); + rdec->range >>= 1; +/* symbol <<= 1; */ +/* if( rdec->code >= rdec->range ) { rdec->code -= rdec->range; symbol |= 1; } */ + bit = ( rdec->code >= rdec->range ); + symbol <<= 1; symbol += bit; + rdec->code -= rdec->range & ( 0U - bit ); + } + return symbol; + } + +static inline unsigned Rd_decode_bit( struct Range_decoder * const rdec, + Bit_model * const probability ) + { + uint32_t bound; + Rd_normalize( rdec ); + bound = ( rdec->range >> bit_model_total_bits ) * *probability; + if( rdec->code < bound ) + { + *probability += (bit_model_total - *probability) >> bit_model_move_bits; + rdec->range = bound; + return 0; + } + else + { + *probability -= *probability >> bit_model_move_bits; + rdec->code -= bound; + rdec->range -= bound; + return 1; + } + } + +static inline unsigned Rd_decode_tree3( struct Range_decoder * const rdec, + Bit_model bm[] ) + { + unsigned symbol = 2 | Rd_decode_bit( rdec, &bm[1] ); + symbol = ( symbol << 1 ) | Rd_decode_bit( rdec, &bm[symbol] ); + symbol = ( symbol << 1 ) | Rd_decode_bit( rdec, &bm[symbol] ); + return symbol & 7; + } + +static inline unsigned Rd_decode_tree6( struct Range_decoder * const rdec, + Bit_model bm[] ) + { + unsigned symbol = 2 | Rd_decode_bit( rdec, &bm[1] ); + symbol = ( symbol << 1 ) | Rd_decode_bit( rdec, &bm[symbol] ); + symbol = ( symbol << 1 ) | Rd_decode_bit( rdec, &bm[symbol] ); + symbol = ( symbol << 1 ) | Rd_decode_bit( rdec, &bm[symbol] ); + symbol = ( symbol << 1 ) | Rd_decode_bit( rdec, &bm[symbol] ); + symbol = ( symbol << 1 ) | Rd_decode_bit( rdec, &bm[symbol] ); + return symbol & 0x3F; + } + +static inline unsigned Rd_decode_tree8( struct Range_decoder * const rdec, + Bit_model bm[] ) + { + unsigned symbol = 1; + int i; + for( i = 0; i < 8; ++i ) + symbol = ( symbol << 1 ) | Rd_decode_bit( rdec, &bm[symbol] ); + return symbol & 0xFF; + } + +static inline unsigned +Rd_decode_tree_reversed( struct Range_decoder * const rdec, + Bit_model bm[], const int num_bits ) + { + unsigned model = 1; + unsigned symbol = 0; + int i; + for( i = 0; i < num_bits; ++i ) + { + const unsigned bit = Rd_decode_bit( rdec, &bm[model] ); + model <<= 1; model += bit; + symbol |= ( bit << i ); + } + return symbol; + } + +static inline unsigned +Rd_decode_tree_reversed4( struct Range_decoder * const rdec, Bit_model bm[] ) + { + unsigned symbol = Rd_decode_bit( rdec, &bm[1] ); + symbol += Rd_decode_bit( rdec, &bm[2+symbol] ) << 1; + symbol += Rd_decode_bit( rdec, &bm[4+symbol] ) << 2; + symbol += Rd_decode_bit( rdec, &bm[8+symbol] ) << 3; + return symbol; + } + +static inline unsigned Rd_decode_matched( struct Range_decoder * const rdec, + Bit_model bm[], unsigned match_byte ) + { + unsigned symbol = 1; + unsigned mask = 0x100; + while( true ) + { + const unsigned match_bit = ( match_byte <<= 1 ) & mask; + const unsigned bit = Rd_decode_bit( rdec, &bm[symbol+match_bit+mask] ); + symbol <<= 1; symbol += bit; + if( symbol > 0xFF ) return symbol & 0xFF; + mask &= ~(match_bit ^ (bit << 8)); /* if( match_bit != bit ) mask = 0; */ + } + } + +static inline unsigned Rd_decode_len( struct Range_decoder * const rdec, + struct Len_model * const lm, + const int pos_state ) + { + if( Rd_decode_bit( rdec, &lm->choice1 ) == 0 ) + return Rd_decode_tree3( rdec, lm->bm_low[pos_state] ); + if( Rd_decode_bit( rdec, &lm->choice2 ) == 0 ) + return len_low_symbols + Rd_decode_tree3( rdec, lm->bm_mid[pos_state] ); + return len_low_symbols + len_mid_symbols + Rd_decode_tree8( rdec, lm->bm_high ); + } + + +enum { lzd_min_free_bytes = max_match_len }; + +struct LZ_decoder + { + struct Circular_buffer cb; + unsigned long long partial_data_pos; + struct Range_decoder * rdec; + unsigned dictionary_size; + uint32_t crc; + bool member_finished; + bool verify_trailer_pending; + bool pos_wrapped; + unsigned rep0; /* rep[0-3] latest four distances */ + unsigned rep1; /* used for efficient coding of */ + unsigned rep2; /* repeated distances */ + unsigned rep3; + State state; + + Bit_model bm_literal[1<cb ) >= lzd_min_free_bytes; } + +static inline uint8_t LZd_peek_prev( const struct LZ_decoder * const d ) + { return d->cb.buffer[((d->cb.put > 0) ? d->cb.put : d->cb.buffer_size)-1]; } + +static inline uint8_t LZd_peek( const struct LZ_decoder * const d, + const unsigned distance ) + { + const unsigned i = ( ( d->cb.put > distance ) ? 0 : d->cb.buffer_size ) + + d->cb.put - distance - 1; + return d->cb.buffer[i]; + } + +static inline void LZd_put_byte( struct LZ_decoder * const d, const uint8_t b ) + { + CRC32_update_byte( &d->crc, b ); + d->cb.buffer[d->cb.put] = b; + if( ++d->cb.put >= d->cb.buffer_size ) + { d->partial_data_pos += d->cb.put; d->cb.put = 0; d->pos_wrapped = true; } + } + +static inline void LZd_copy_block( struct LZ_decoder * const d, + const unsigned distance, unsigned len ) + { + unsigned lpos = d->cb.put, i = lpos - distance - 1; + bool fast, fast2; + if( lpos > distance ) + { + fast = ( len < d->cb.buffer_size - lpos ); + fast2 = ( fast && len <= lpos - i ); + } + else + { + i += d->cb.buffer_size; + fast = ( len < d->cb.buffer_size - i ); /* (i == pos) may happen */ + fast2 = ( fast && len <= i - lpos ); + } + if( fast ) /* no wrap */ + { + const unsigned tlen = len; + if( fast2 ) /* no wrap, no overlap */ + memcpy( d->cb.buffer + lpos, d->cb.buffer + i, len ); + else + for( ; len > 0; --len ) d->cb.buffer[lpos++] = d->cb.buffer[i++]; + CRC32_update_buf( &d->crc, d->cb.buffer + d->cb.put, tlen ); + d->cb.put += tlen; + } + else for( ; len > 0; --len ) + { + LZd_put_byte( d, d->cb.buffer[i] ); + if( ++i >= d->cb.buffer_size ) i = 0; + } + } + +static inline bool LZd_init( struct LZ_decoder * const d, + struct Range_decoder * const rde, + const unsigned dict_size ) + { + if( !Cb_init( &d->cb, max( 65536, dict_size ) + lzd_min_free_bytes ) ) + return false; + d->partial_data_pos = 0; + d->rdec = rde; + d->dictionary_size = dict_size; + d->crc = 0xFFFFFFFFU; + d->member_finished = false; + d->verify_trailer_pending = false; + d->pos_wrapped = false; + /* prev_byte of first byte; also for LZd_peek( 0 ) on corrupt file */ + d->cb.buffer[d->cb.buffer_size-1] = 0; + d->rep0 = 0; + d->rep1 = 0; + d->rep2 = 0; + d->rep3 = 0; + d->state = 0; + + Bm_array_init( d->bm_literal[0], (1 << literal_context_bits) * 0x300 ); + Bm_array_init( d->bm_match[0], states * pos_states ); + Bm_array_init( d->bm_rep, states ); + Bm_array_init( d->bm_rep0, states ); + Bm_array_init( d->bm_rep1, states ); + Bm_array_init( d->bm_rep2, states ); + Bm_array_init( d->bm_len[0], states * pos_states ); + Bm_array_init( d->bm_dis_slot[0], len_states * (1 << dis_slot_bits) ); + Bm_array_init( d->bm_dis, modeled_distances - end_dis_model + 1 ); + Bm_array_init( d->bm_align, dis_align_size ); + Lm_init( &d->match_len_model ); + Lm_init( &d->rep_len_model ); + return true; + } + +static inline void LZd_free( struct LZ_decoder * const d ) + { Cb_free( &d->cb ); } + +static inline bool LZd_member_finished( const struct LZ_decoder * const d ) + { return ( d->member_finished && Cb_empty( &d->cb ) ); } + +static inline unsigned LZd_crc( const struct LZ_decoder * const d ) + { return d->crc ^ 0xFFFFFFFFU; } + +static inline unsigned long long +LZd_data_position( const struct LZ_decoder * const d ) + { return d->partial_data_pos + d->cb.put; } diff --git a/3rdparty/lzlib-1.12/doc/lzlib.info b/3rdparty/lzlib-1.12/doc/lzlib.info new file mode 100644 index 0000000..bef1859 --- /dev/null +++ b/3rdparty/lzlib-1.12/doc/lzlib.info @@ -0,0 +1,1320 @@ +This is lzlib.info, produced by makeinfo version 4.13+ from lzlib.texi. + +INFO-DIR-SECTION Data Compression +START-INFO-DIR-ENTRY +* Lzlib: (lzlib). Compression library for the lzip format +END-INFO-DIR-ENTRY + + +File: lzlib.info, Node: Top, Next: Introduction, Up: (dir) + +Lzlib Manual +************ + +This manual is for Lzlib (version 1.12, 2 January 2021). + +* Menu: + +* Introduction:: Purpose and features of lzlib +* Library version:: Checking library version +* Buffering:: Sizes of lzlib's buffers +* Parameter limits:: Min / max values for some parameters +* Compression functions:: Descriptions of the compression functions +* Decompression functions:: Descriptions of the decompression functions +* Error codes:: Meaning of codes returned by functions +* Error messages:: Error messages corresponding to error codes +* Invoking minilzip:: Command line interface of the test program +* Data format:: Detailed format of the compressed data +* Examples:: A small tutorial with examples +* Problems:: Reporting bugs +* Concept index:: Index of concepts + + + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This manual is free documentation: you have unlimited permission to copy, +distribute, and modify it. + + +File: lzlib.info, Node: Introduction, Next: Library version, Prev: Top, Up: Top + +1 Introduction +************** + +Lzlib is a data compression library providing in-memory LZMA compression and +decompression functions, including integrity checking of the decompressed +data. The compressed data format used by the library is the lzip format. +Lzlib is written in C. + + The lzip file format is designed for data sharing and long-term +archiving, taking into account both data integrity and decoder availability: + + * The lzip format provides very safe integrity checking and some data + recovery means. The program lziprecover can repair bit flip errors + (one of the most common forms of data corruption) in lzip files, and + provides data recovery capabilities, including error-checked merging + of damaged copies of a file. *Note Data safety: (lziprecover)Data + safety. + + * The lzip format is as simple as possible (but not simpler). The lzip + manual provides the source code of a simple decompressor along with a + detailed explanation of how it works, so that with the only help of the + lzip manual it would be possible for a digital archaeologist to extract + the data from a lzip file long after quantum computers eventually + render LZMA obsolete. + + * Additionally the lzip reference implementation is copylefted, which + guarantees that it will remain free forever. + + A nice feature of the lzip format is that a corrupt byte is easier to +repair the nearer it is from the beginning of the file. Therefore, with the +help of lziprecover, losing an entire archive just because of a corrupt +byte near the beginning is a thing of the past. + + The functions and variables forming the interface of the compression +library are declared in the file 'lzlib.h'. Usage examples of the library +are given in the files 'bbexample.c', 'ffexample.c', and 'main.c' from the +source distribution. + + Compression/decompression is done by repeatedly calling a couple of +read/write functions until all the data have been processed by the library. +This interface is safer and less error prone than the traditional zlib +interface. + + Compression/decompression is done when the read function is called. This +means the value returned by the position functions will not be updated until +a read call, even if a lot of data are written. If you want the data to be +compressed in advance, just call the read function with a SIZE equal to 0. + + If all the data to be compressed are written in advance, lzlib will +automatically adjust the header of the compressed data to use the largest +dictionary size that does not exceed neither the data size nor the limit +given to 'LZ_compress_open'. This feature reduces the amount of memory +needed for decompression and allows minilzip to produce identical compressed +output as lzip. + + Lzlib will correctly decompress a data stream which is the concatenation +of two or more compressed data streams. The result is the concatenation of +the corresponding decompressed data streams. Integrity testing of +concatenated compressed data streams is also supported. + + Lzlib is able to compress and decompress streams of unlimited size by +automatically creating multimember output. The members so created are large, +about 2 PiB each. + + All the library functions are thread safe. The library does not install +any signal handler. The decoder checks the consistency of the compressed +data, so the library should never crash even in case of corrupted input. + + In spite of its name (Lempel-Ziv-Markov chain-Algorithm), LZMA is not a +concrete algorithm; it is more like "any algorithm using the LZMA coding +scheme". For example, the option '-0' of lzip uses the scheme in almost the +simplest way possible; issuing the longest match it can find, or a literal +byte if it can't find a match. Inversely, a much more elaborated way of +finding coding sequences of minimum size than the one currently used by +lzip could be developed, and the resulting sequence could also be coded +using the LZMA coding scheme. + + Lzlib currently implements two variants of the LZMA algorithm; fast +(used by option '-0' of minilzip) and normal (used by all other compression +levels). + + The high compression of LZMA comes from combining two basic, well-proven +compression ideas: sliding dictionaries (LZ77/78) and markov models (the +thing used by every compression algorithm that uses a range encoder or +similar order-0 entropy coder as its last stage) with segregation of +contexts according to what the bits are used for. + + The ideas embodied in lzlib are due to (at least) the following people: +Abraham Lempel and Jacob Ziv (for the LZ algorithm), Andrey Markov (for the +definition of Markov chains), G.N.N. Martin (for the definition of range +encoding), Igor Pavlov (for putting all the above together in LZMA), and +Julian Seward (for bzip2's CLI). + + LANGUAGE NOTE: Uncompressed = not compressed = plain data; it may never +have been compressed. Decompressed is used to refer to data which have +undergone the process of decompression. + + +File: lzlib.info, Node: Library version, Next: Buffering, Prev: Introduction, Up: Top + +2 Library version +***************** + +One goal of lzlib is to keep perfect backward compatibility with older +versions of itself down to 1.0. Any application working with an older lzlib +should work with a newer lzlib. Installing a newer lzlib should not break +anything. This chapter describes the constants and functions that the +application can use to discover the version of the library being used. + + -- Constant: LZ_API_VERSION + This constant is defined in 'lzlib.h' and works as a version test + macro. The application should verify at compile time that + LZ_API_VERSION is greater than or equal to the version required by the + application: + + #if !defined LZ_API_VERSION || LZ_API_VERSION < 1012 + #error "lzlib 1.12 or newer needed." + #endif + + Before version 1.8, lzlib didn't define LZ_API_VERSION. + LZ_API_VERSION was first defined in lzlib 1.8 to 1. + Since lzlib 1.12, LZ_API_VERSION is defined as (major * 1000 + minor). + + NOTE: Version test macros are the library's way of announcing +functionality to the application. They should not be confused with feature +test macros, which allow the application to announce to the library its +desire to have certain symbols and prototypes exposed. + + -- Function: int LZ_api_version ( void ) + If LZ_API_VERSION >= 1012, this function is declared in 'lzlib.h' (else + it doesn't exist). It returns the LZ_API_VERSION of the library object + code being used. The application should verify at run time that the + value returned by 'LZ_api_version' is greater than or equal to the + version required by the application. An application may be dinamically + linked at run time with a different version of lzlib than the one it + was compiled for, and this should not break the program as long as the + library used provides the functionality required by the application. + + #if defined LZ_API_VERSION && LZ_API_VERSION >= 1012 + if( LZ_api_version() < 1012 ) + show_error( "lzlib 1.12 or newer needed." ); + #endif + + -- Constant: const char * LZ_version_string + This string constant is defined in the header file 'lzlib.h' and + represents the version of the library being used at compile time. + + -- Function: const char * LZ_version ( void ) + This function returns a string representing the version of the library + being used at run time. + + +File: lzlib.info, Node: Buffering, Next: Parameter limits, Prev: Library version, Up: Top + +3 Buffering +*********** + +Lzlib internal functions need access to a memory chunk at least as large as +the dictionary size (sliding window). For efficiency reasons, the input +buffer for compression is twice or sixteen times as large as the dictionary +size. + + Finally, for safety reasons, lzlib uses two more internal buffers. + + These are the four buffers used by lzlib, and their guaranteed minimum +sizes: + + * Input compression buffer. Written to by the function + 'LZ_compress_write'. For the normal variant of LZMA, its size is two + times the dictionary size set with the function 'LZ_compress_open' or + 64 KiB, whichever is larger. For the fast variant, its size is 1 MiB. + + * Output compression buffer. Read from by the function + 'LZ_compress_read'. Its size is 64 KiB. + + * Input decompression buffer. Written to by the function + 'LZ_decompress_write'. Its size is 64 KiB. + + * Output decompression buffer. Read from by the function + 'LZ_decompress_read'. Its size is the dictionary size set in the header + of the member currently being decompressed or 64 KiB, whichever is + larger. + + +File: lzlib.info, Node: Parameter limits, Next: Compression functions, Prev: Buffering, Up: Top + +4 Parameter limits +****************** + +These functions provide minimum and maximum values for some parameters. +Current values are shown in square brackets. + + -- Function: int LZ_min_dictionary_bits ( void ) + Returns the base 2 logarithm of the smallest valid dictionary size + [12]. + + -- Function: int LZ_min_dictionary_size ( void ) + Returns the smallest valid dictionary size [4 KiB]. + + -- Function: int LZ_max_dictionary_bits ( void ) + Returns the base 2 logarithm of the largest valid dictionary size [29]. + + -- Function: int LZ_max_dictionary_size ( void ) + Returns the largest valid dictionary size [512 MiB]. + + -- Function: int LZ_min_match_len_limit ( void ) + Returns the smallest valid match length limit [5]. + + -- Function: int LZ_max_match_len_limit ( void ) + Returns the largest valid match length limit [273]. + + +File: lzlib.info, Node: Compression functions, Next: Decompression functions, Prev: Parameter limits, Up: Top + +5 Compression functions +*********************** + +These are the functions used to compress data. In case of error, all of +them return -1 or 0, for signed and unsigned return values respectively, +except 'LZ_compress_open' whose return value must be verified by calling +'LZ_compress_errno' before using it. + + -- Function: struct LZ_Encoder * LZ_compress_open ( const int + DICTIONARY_SIZE, const int MATCH_LEN_LIMIT, const unsigned long + long MEMBER_SIZE ) + Initializes the internal stream state for compression and returns a + pointer that can only be used as the ENCODER argument for the other + LZ_compress functions, or a null pointer if the encoder could not be + allocated. + + The returned pointer must be verified by calling 'LZ_compress_errno' + before using it. If 'LZ_compress_errno' does not return 'LZ_ok', the + returned pointer must not be used and should be freed with + 'LZ_compress_close' to avoid memory leaks. + + DICTIONARY_SIZE sets the dictionary size to be used, in bytes. Valid + values range from 4 KiB to 512 MiB. Note that dictionary sizes are + quantized. If the size specified does not match one of the valid + sizes, it will be rounded upwards by adding up to + (DICTIONARY_SIZE / 8) to it. + + MATCH_LEN_LIMIT sets the match length limit in bytes. Valid values + range from 5 to 273. Larger values usually give better compression + ratios but longer compression times. + + If DICTIONARY_SIZE is 65535 and MATCH_LEN_LIMIT is 16, the fast + variant of LZMA is chosen, which produces identical compressed output + as 'lzip -0'. (The dictionary size used will be rounded upwards to + 64 KiB). + + MEMBER_SIZE sets the member size limit in bytes. Valid values range + from 4 KiB to 2 PiB. A small member size may degrade compression + ratio, so use it only when needed. To produce a single-member data + stream, give MEMBER_SIZE a value larger than the amount of data to be + produced. Values larger than 2 PiB will be reduced to 2 PiB to prevent + the uncompressed size of the member from overflowing. + + -- Function: int LZ_compress_close ( struct LZ_Encoder * const ENCODER ) + Frees all dynamically allocated data structures for this stream. This + function discards any unprocessed input and does not flush any pending + output. After a call to 'LZ_compress_close', ENCODER can no longer be + used as an argument to any LZ_compress function. It is safe to call + 'LZ_compress_close' with a null argument. + + -- Function: int LZ_compress_finish ( struct LZ_Encoder * const ENCODER ) + Use this function to tell 'lzlib' that all the data for this member + have already been written (with the function 'LZ_compress_write'). It + is safe to call 'LZ_compress_finish' as many times as needed. After + all the compressed data have been read with 'LZ_compress_read' and + 'LZ_compress_member_finished' returns 1, a new member can be started + with 'LZ_compress_restart_member'. + + -- Function: int LZ_compress_restart_member ( struct LZ_Encoder * const + ENCODER, const unsigned long long MEMBER_SIZE ) + Use this function to start a new member in a multimember data stream. + Call this function only after 'LZ_compress_member_finished' indicates + that the current member has been fully read (with the function + 'LZ_compress_read'). *Note member_size::, for a description of + MEMBER_SIZE. + + -- Function: int LZ_compress_sync_flush ( struct LZ_Encoder * const + ENCODER ) + Use this function to make available to 'LZ_compress_read' all the data + already written with the function 'LZ_compress_write'. First call + 'LZ_compress_sync_flush'. Then call 'LZ_compress_read' until it + returns 0. + + This function writes a LZMA marker '3' ("Sync Flush" marker) to the + compressed output. Note that the sync flush marker is not allowed in + lzip files; it is a device for interactive communication between + applications using lzlib, but is useless and wasteful in a file, and + is excluded from the media type 'application/lzip'. The LZMA marker + '2' ("End Of Stream" marker) is the only marker allowed in lzip files. + *Note Data format::. + + Repeated use of 'LZ_compress_sync_flush' may degrade compression + ratio, so use it only when needed. If the interval between calls to + 'LZ_compress_sync_flush' is large (comparable to dictionary size), + creating a multimember data stream with 'LZ_compress_restart_member' + may be an alternative. + + Combining multimember stream creation with flushing may be tricky. If + there are more bytes available than those needed to complete + MEMBER_SIZE, 'LZ_compress_restart_member' needs to be called when + 'LZ_compress_member_finished' returns 1, followed by a new call to + 'LZ_compress_sync_flush'. + + -- Function: int LZ_compress_read ( struct LZ_Encoder * const ENCODER, + uint8_t * const BUFFER, const int SIZE ) + The function 'LZ_compress_read' reads up to SIZE bytes from the stream + pointed to by ENCODER, storing the results in BUFFER. If + LZ_API_VERSION >= 1012, BUFFER may be a null pointer, in which case + the bytes read are discarded. + + The return value is the number of bytes actually read. This might be + less than SIZE; for example, if there aren't that many bytes left in + the stream or if more bytes have to be yet written with the function + 'LZ_compress_write'. Note that reading less than SIZE bytes is not an + error. + + -- Function: int LZ_compress_write ( struct LZ_Encoder * const ENCODER, + uint8_t * const BUFFER, const int SIZE ) + The function 'LZ_compress_write' writes up to SIZE bytes from BUFFER + to the stream pointed to by ENCODER. + + The return value is the number of bytes actually written. This might be + less than SIZE. Note that writing less than SIZE bytes is not an error. + + -- Function: int LZ_compress_write_size ( struct LZ_Encoder * const + ENCODER ) + The function 'LZ_compress_write_size' returns the maximum number of + bytes that can be immediately written through 'LZ_compress_write'. For + efficiency reasons, once the input buffer is full and + 'LZ_compress_write_size' returns 0, almost all the buffer must be + compressed before a size greater than 0 is returned again. (This is + done to minimize the amount of data that must be copied to the + beginning of the buffer before new data can be accepted). + + It is guaranteed that an immediate call to 'LZ_compress_write' will + accept a SIZE up to the returned number of bytes. + + -- Function: enum LZ_Errno LZ_compress_errno ( struct LZ_Encoder * const + ENCODER ) + Returns the current error code for ENCODER. *Note Error codes::. It is + safe to call 'LZ_compress_errno' with a null argument, in which case + it returns 'LZ_bad_argument'. + + -- Function: int LZ_compress_finished ( struct LZ_Encoder * const ENCODER ) + Returns 1 if all the data have been read and 'LZ_compress_close' can + be safely called. Otherwise it returns 0. 'LZ_compress_finished' + implies 'LZ_compress_member_finished'. + + -- Function: int LZ_compress_member_finished ( struct LZ_Encoder * const + ENCODER ) + Returns 1 if the current member, in a multimember data stream, has been + fully read and 'LZ_compress_restart_member' can be safely called. + Otherwise it returns 0. + + -- Function: unsigned long long LZ_compress_data_position ( struct + LZ_Encoder * const ENCODER ) + Returns the number of input bytes already compressed in the current + member. + + -- Function: unsigned long long LZ_compress_member_position ( struct + LZ_Encoder * const ENCODER ) + Returns the number of compressed bytes already produced, but perhaps + not yet read, in the current member. + + -- Function: unsigned long long LZ_compress_total_in_size ( struct + LZ_Encoder * const ENCODER ) + Returns the total number of input bytes already compressed. + + -- Function: unsigned long long LZ_compress_total_out_size ( struct + LZ_Encoder * const ENCODER ) + Returns the total number of compressed bytes already produced, but + perhaps not yet read. + + +File: lzlib.info, Node: Decompression functions, Next: Error codes, Prev: Compression functions, Up: Top + +6 Decompression functions +************************* + +These are the functions used to decompress data. In case of error, all of +them return -1 or 0, for signed and unsigned return values respectively, +except 'LZ_decompress_open' whose return value must be verified by calling +'LZ_decompress_errno' before using it. + + -- Function: struct LZ_Decoder * LZ_decompress_open ( void ) + Initializes the internal stream state for decompression and returns a + pointer that can only be used as the DECODER argument for the other + LZ_decompress functions, or a null pointer if the decoder could not be + allocated. + + The returned pointer must be verified by calling 'LZ_decompress_errno' + before using it. If 'LZ_decompress_errno' does not return 'LZ_ok', the + returned pointer must not be used and should be freed with + 'LZ_decompress_close' to avoid memory leaks. + + -- Function: int LZ_decompress_close ( struct LZ_Decoder * const DECODER ) + Frees all dynamically allocated data structures for this stream. This + function discards any unprocessed input and does not flush any pending + output. After a call to 'LZ_decompress_close', DECODER can no longer + be used as an argument to any LZ_decompress function. It is safe to + call 'LZ_decompress_close' with a null argument. + + -- Function: int LZ_decompress_finish ( struct LZ_Decoder * const DECODER ) + Use this function to tell 'lzlib' that all the data for this stream + have already been written (with the function 'LZ_decompress_write'). + It is safe to call 'LZ_decompress_finish' as many times as needed. It + is not required to call 'LZ_decompress_finish' if the input stream + only contains whole members, but not calling it prevents lzlib from + detecting a truncated member. + + -- Function: int LZ_decompress_reset ( struct LZ_Decoder * const DECODER ) + Resets the internal state of DECODER as it was just after opening it + with the function 'LZ_decompress_open'. Data stored in the internal + buffers is discarded. Position counters are set to 0. + + -- Function: int LZ_decompress_sync_to_member ( struct LZ_Decoder * const + DECODER ) + Resets the error state of DECODER and enters a search state that lasts + until a new member header (or the end of the stream) is found. After a + successful call to 'LZ_decompress_sync_to_member', data written with + 'LZ_decompress_write' will be consumed and 'LZ_decompress_read' will + return 0 until a header is found. + + This function is useful to discard any data preceding the first member, + or to discard the rest of the current member, for example in case of a + data error. If the decoder is already at the beginning of a member, + this function does nothing. + + -- Function: int LZ_decompress_read ( struct LZ_Decoder * const DECODER, + uint8_t * const BUFFER, const int SIZE ) + The function 'LZ_decompress_read' reads up to SIZE bytes from the + stream pointed to by DECODER, storing the results in BUFFER. If + LZ_API_VERSION >= 1012, BUFFER may be a null pointer, in which case + the bytes read are discarded. + + The return value is the number of bytes actually read. This might be + less than SIZE; for example, if there aren't that many bytes left in + the stream or if more bytes have to be yet written with the function + 'LZ_decompress_write'. Note that reading less than SIZE bytes is not + an error. + + 'LZ_decompress_read' returns at least once per member so that + 'LZ_decompress_member_finished' can be called (and trailer data + retrieved) for each member, even for empty members. Therefore, + 'LZ_decompress_read' returning 0 does not mean that the end of the + stream has been reached. The increase in the value returned by + 'LZ_decompress_total_in_size' can be used to tell the end of the stream + from an empty member. + + In case of decompression error caused by corrupt or truncated data, + 'LZ_decompress_read' does not signal the error immediately to the + application, but waits until all the bytes decoded have been read. This + allows tools like tarlz to recover as much data as possible from each + damaged member. *Note tarlz manual: (tarlz)Top. + + -- Function: int LZ_decompress_write ( struct LZ_Decoder * const DECODER, + uint8_t * const BUFFER, const int SIZE ) + The function 'LZ_decompress_write' writes up to SIZE bytes from BUFFER + to the stream pointed to by DECODER. + + The return value is the number of bytes actually written. This might be + less than SIZE. Note that writing less than SIZE bytes is not an error. + + -- Function: int LZ_decompress_write_size ( struct LZ_Decoder * const + DECODER ) + The function 'LZ_decompress_write_size' returns the maximum number of + bytes that can be immediately written through 'LZ_decompress_write'. + This number varies smoothly; each compressed byte consumed may be + overwritten immediately, increasing by 1 the value returned. + + It is guaranteed that an immediate call to 'LZ_decompress_write' will + accept a SIZE up to the returned number of bytes. + + -- Function: enum LZ_Errno LZ_decompress_errno ( struct LZ_Decoder * const + DECODER ) + Returns the current error code for DECODER. *Note Error codes::. It is + safe to call 'LZ_decompress_errno' with a null argument, in which case + it returns 'LZ_bad_argument'. + + -- Function: int LZ_decompress_finished ( struct LZ_Decoder * const + DECODER ) + Returns 1 if all the data have been read and 'LZ_decompress_close' can + be safely called. Otherwise it returns 0. 'LZ_decompress_finished' + does not imply 'LZ_decompress_member_finished'. + + -- Function: int LZ_decompress_member_finished ( struct LZ_Decoder * const + DECODER ) + Returns 1 if the previous call to 'LZ_decompress_read' finished reading + the current member, indicating that final values for member are + available through 'LZ_decompress_data_crc', + 'LZ_decompress_data_position', and 'LZ_decompress_member_position'. + Otherwise it returns 0. + + -- Function: int LZ_decompress_member_version ( struct LZ_Decoder * const + DECODER ) + Returns the version of current member from member header. + + -- Function: int LZ_decompress_dictionary_size ( struct LZ_Decoder * const + DECODER ) + Returns the dictionary size of the current member, read from the member + header. + + -- Function: unsigned LZ_decompress_data_crc ( struct LZ_Decoder * const + DECODER ) + Returns the 32 bit Cyclic Redundancy Check of the data decompressed + from the current member. The returned value is valid only when + 'LZ_decompress_member_finished' returns 1. + + -- Function: unsigned long long LZ_decompress_data_position ( struct + LZ_Decoder * const DECODER ) + Returns the number of decompressed bytes already produced, but perhaps + not yet read, in the current member. + + -- Function: unsigned long long LZ_decompress_member_position ( struct + LZ_Decoder * const DECODER ) + Returns the number of input bytes already decompressed in the current + member. + + -- Function: unsigned long long LZ_decompress_total_in_size ( struct + LZ_Decoder * const DECODER ) + Returns the total number of input bytes already decompressed. + + -- Function: unsigned long long LZ_decompress_total_out_size ( struct + LZ_Decoder * const DECODER ) + Returns the total number of decompressed bytes already produced, but + perhaps not yet read. + + +File: lzlib.info, Node: Error codes, Next: Error messages, Prev: Decompression functions, Up: Top + +7 Error codes +************* + +Most library functions return -1 to indicate that they have failed. But +this return value only tells you that an error has occurred. To find out +what kind of error it was, you need to verify the error code by calling +'LZ_(de)compress_errno'. + + Library functions don't change the value returned by +'LZ_(de)compress_errno' when they succeed; thus, the value returned by +'LZ_(de)compress_errno' after a successful call is not necessarily LZ_ok, +and you should not use 'LZ_(de)compress_errno' to determine whether a call +failed. If the call failed, then you can examine 'LZ_(de)compress_errno'. + + The error codes are defined in the header file 'lzlib.h'. + + -- Constant: enum LZ_Errno LZ_ok + The value of this constant is 0 and is used to indicate that there is + no error. + + -- Constant: enum LZ_Errno LZ_bad_argument + At least one of the arguments passed to the library function was + invalid. + + -- Constant: enum LZ_Errno LZ_mem_error + No memory available. The system cannot allocate more virtual memory + because its capacity is full. + + -- Constant: enum LZ_Errno LZ_sequence_error + A library function was called in the wrong order. For example + 'LZ_compress_restart_member' was called before + 'LZ_compress_member_finished' indicates that the current member is + finished. + + -- Constant: enum LZ_Errno LZ_header_error + An invalid member header (one with the wrong magic bytes) was read. If + this happens at the end of the data stream it may indicate trailing + data. + + -- Constant: enum LZ_Errno LZ_unexpected_eof + The end of the data stream was reached in the middle of a member. + + -- Constant: enum LZ_Errno LZ_data_error + The data stream is corrupt. If 'LZ_decompress_member_position' is 6 or + less, it indicates either a format version not supported, an invalid + dictionary size, a corrupt header in a multimember data stream, or + trailing data too similar to a valid lzip header. Lziprecover can be + used to remove conflicting trailing data from a file. + + -- Constant: enum LZ_Errno LZ_library_error + A bug was detected in the library. Please, report it. *Note Problems::. + + +File: lzlib.info, Node: Error messages, Next: Invoking minilzip, Prev: Error codes, Up: Top + +8 Error messages +**************** + + -- Function: const char * LZ_strerror ( const enum LZ_Errno LZ_ERRNO ) + Returns the standard error message for a given error code. The messages + are fairly short; there are no multi-line messages or embedded + newlines. This function makes it easy for your program to report + informative error messages about the failure of a library call. + + The value of LZ_ERRNO normally comes from a call to + 'LZ_(de)compress_errno'. + + +File: lzlib.info, Node: Invoking minilzip, Next: Data format, Prev: Error messages, Up: Top + +9 Invoking minilzip +******************* + +Minilzip is a test program for the compression library lzlib, fully +compatible with lzip 1.4 or newer. + + Lzip is a lossless data compressor with a user interface similar to the +one of gzip or bzip2. Lzip uses a simplified form of the 'Lempel-Ziv-Markov +chain-Algorithm' (LZMA) stream format, chosen to maximize safety and +interoperability. Lzip can compress about as fast as gzip (lzip -0) or +compress most files more than bzip2 (lzip -9). Decompression speed is +intermediate between gzip and bzip2. Lzip is better than gzip and bzip2 +from a data recovery perspective. Lzip has been designed, written, and +tested with great care to replace gzip and bzip2 as the standard +general-purpose compressed format for unix-like systems. + +The format for running minilzip is: + + minilzip [OPTIONS] [FILES] + +If no file names are specified, minilzip compresses (or decompresses) from +standard input to standard output. A hyphen '-' used as a FILE argument +means standard input. It can be mixed with other FILES and is read just +once, the first time it appears in the command line. + + minilzip supports the following options: *Note Argument syntax: +(arg_parser)Argument syntax. + +'-h' +'--help' + Print an informative help message describing the options and exit. + +'-V' +'--version' + Print the version number of minilzip on the standard output and exit. + This version number should be included in all bug reports. + +'-a' +'--trailing-error' + Exit with error status 2 if any remaining input is detected after + decompressing the last member. Such remaining input is usually trailing + garbage that can be safely ignored. + +'-b BYTES' +'--member-size=BYTES' + When compressing, set the member size limit to BYTES. It is advisable + to keep members smaller than RAM size so that they can be repaired with + lziprecover in case of corruption. A small member size may degrade + compression ratio, so use it only when needed. Valid values range from + 100 kB to 2 PiB. Defaults to 2 PiB. + +'-c' +'--stdout' + Compress or decompress to standard output; keep input files unchanged. + If compressing several files, each file is compressed independently. + (The output consists of a sequence of independently compressed + members). This option (or '-o') is needed when reading from a named + pipe (fifo) or from a device. Use it also to recover as much of the + decompressed data as possible when decompressing a corrupt file. '-c' + overrides '-o' and '-S'. '-c' has no effect when testing or listing. + +'-d' +'--decompress' + Decompress the files specified. If a file does not exist or can't be + opened, minilzip continues decompressing the rest of the files. If a + file fails to decompress, or is a terminal, minilzip exits immediately + without decompressing the rest of the files. + +'-f' +'--force' + Force overwrite of output files. + +'-F' +'--recompress' + When compressing, force re-compression of files whose name already has + the '.lz' or '.tlz' suffix. + +'-k' +'--keep' + Keep (don't delete) input files during compression or decompression. + +'-m BYTES' +'--match-length=BYTES' + When compressing, set the match length limit in bytes. After a match + this long is found, the search is finished. Valid values range from 5 + to 273. Larger values usually give better compression ratios but longer + compression times. + +'-o FILE' +'--output=FILE' + If '-c' has not been also specified, write the (de)compressed output to + FILE; keep input files unchanged. If compressing several files, each + file is compressed independently. (The output consists of a sequence of + independently compressed members). This option (or '-c') is needed when + reading from a named pipe (fifo) or from a device. '-o -' is + equivalent to '-c'. '-o' has no effect when testing or listing. + + When compressing and splitting the output in volumes, FILE is used as + a prefix, and several files named 'FILE00001.lz', 'FILE00002.lz', etc, + are created. In this case, only one input file is allowed. + +'-q' +'--quiet' + Quiet operation. Suppress all messages. + +'-s BYTES' +'--dictionary-size=BYTES' + When compressing, set the dictionary size limit in bytes. Minilzip + will use for each file the largest dictionary size that does not + exceed neither the file size nor this limit. Valid values range from + 4 KiB to 512 MiB. Values 12 to 29 are interpreted as powers of two, + meaning 2^12 to 2^29 bytes. Dictionary sizes are quantized so that + they can be coded in just one byte (*note coded-dict-size::). If the + size specified does not match one of the valid sizes, it will be + rounded upwards by adding up to (BYTES / 8) to it. + + For maximum compression you should use a dictionary size limit as large + as possible, but keep in mind that the decompression memory requirement + is affected at compression time by the choice of dictionary size limit. + +'-S BYTES' +'--volume-size=BYTES' + When compressing, and '-c' has not been also specified, split the + compressed output into several volume files with names + 'original_name00001.lz', 'original_name00002.lz', etc, and set the + volume size limit to BYTES. Input files are kept unchanged. Each + volume is a complete, maybe multimember, lzip file. A small volume + size may degrade compression ratio, so use it only when needed. Valid + values range from 100 kB to 4 EiB. + +'-t' +'--test' + Check integrity of the files specified, but don't decompress them. This + really performs a trial decompression and throws away the result. Use + it together with '-v' to see information about the files. If a file + fails the test, does not exist, can't be opened, or is a terminal, + minilzip continues checking the rest of the files. A final diagnostic + is shown at verbosity level 1 or higher if any file fails the test + when testing multiple files. + +'-v' +'--verbose' + Verbose mode. + When compressing, show the compression ratio and size for each file + processed. + When decompressing or testing, further -v's (up to 4) increase the + verbosity level, showing status, compression ratio, dictionary size, + and trailer contents (CRC, data size, member size). + +'-0 .. -9' + Compression level. Set the compression parameters (dictionary size and + match length limit) as shown in the table below. The default + compression level is '-6', equivalent to '-s8MiB -m36'. Note that '-9' + can be much slower than '-0'. These options have no effect when + decompressing or testing. + + The bidimensional parameter space of LZMA can't be mapped to a linear + scale optimal for all files. If your files are large, very repetitive, + etc, you may need to use the options '--dictionary-size' and + '--match-length' directly to achieve optimal performance. + + If several compression levels or '-s' or '-m' options are given, the + last setting is used. For example '-9 -s64MiB' is equivalent to + '-s64MiB -m273' + + Level Dictionary size (-s) Match length limit (-m) + -0 64 KiB 16 bytes + -1 1 MiB 5 bytes + -2 1.5 MiB 6 bytes + -3 2 MiB 8 bytes + -4 3 MiB 12 bytes + -5 4 MiB 20 bytes + -6 8 MiB 36 bytes + -7 16 MiB 68 bytes + -8 24 MiB 132 bytes + -9 32 MiB 273 bytes + +'--fast' +'--best' + Aliases for GNU gzip compatibility. + +'--loose-trailing' + When decompressing or testing, allow trailing data whose first bytes + are so similar to the magic bytes of a lzip header that they can be + confused with a corrupt header. Use this option if a file triggers a + "corrupt header" error and the cause is not indeed a corrupt header. + +'--check-lib' + Compare the version of lzlib used to compile minilzip with the version + actually being used and exit. Report any differences found. Exit with + error status 1 if differences are found. A mismatch may indicate that + lzlib is not correctly installed or that a different version of lzlib + has been installed after compiling the shared version of minilzip. + 'minilzip -v --check-lib' shows the version of lzlib being used and + the value of 'LZ_API_VERSION' (if defined). *Note Library version::. + + + Numbers given as arguments to options may be followed by a multiplier +and an optional 'B' for "byte". + + Table of SI and binary prefixes (unit multipliers): + +Prefix Value | Prefix Value +k kilobyte (10^3 = 1000) | Ki kibibyte (2^10 = 1024) +M megabyte (10^6) | Mi mebibyte (2^20) +G gigabyte (10^9) | Gi gibibyte (2^30) +T terabyte (10^12) | Ti tebibyte (2^40) +P petabyte (10^15) | Pi pebibyte (2^50) +E exabyte (10^18) | Ei exbibyte (2^60) +Z zettabyte (10^21) | Zi zebibyte (2^70) +Y yottabyte (10^24) | Yi yobibyte (2^80) + + + Exit status: 0 for a normal exit, 1 for environmental problems (file not +found, invalid flags, I/O errors, etc), 2 to indicate a corrupt or invalid +input file, 3 for an internal consistency error (eg, bug) which caused +minilzip to panic. + + +File: lzlib.info, Node: Data format, Next: Examples, Prev: Invoking minilzip, Up: Top + +10 Data format +************** + +Perfection is reached, not when there is no longer anything to add, but +when there is no longer anything to take away. +-- Antoine de Saint-Exupery + + + In the diagram below, a box like this: + ++---+ +| | <-- the vertical bars might be missing ++---+ + + represents one byte; a box like this: + ++==============+ +| | ++==============+ + + represents a variable number of bytes. + + + A lzip data stream consists of a series of "members" (compressed data +sets). The members simply appear one after another in the data stream, with +no additional information before, between, or after them. + + Each member has the following structure: + ++--+--+--+--+----+----+=============+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| ID string | VN | DS | LZMA stream | CRC32 | Data size | Member size | ++--+--+--+--+----+----+=============+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + All multibyte values are stored in little endian order. + +'ID string (the "magic" bytes)' + A four byte string, identifying the lzip format, with the value "LZIP" + (0x4C, 0x5A, 0x49, 0x50). + +'VN (version number, 1 byte)' + Just in case something needs to be modified in the future. 1 for now. + +'DS (coded dictionary size, 1 byte)' + The dictionary size is calculated by taking a power of 2 (the base + size) and subtracting from it a fraction between 0/16 and 7/16 of the + base size. + Bits 4-0 contain the base 2 logarithm of the base size (12 to 29). + Bits 7-5 contain the numerator of the fraction (0 to 7) to subtract + from the base size to obtain the dictionary size. + Example: 0xD3 = 2^19 - 6 * 2^15 = 512 KiB - 6 * 32 KiB = 320 KiB + Valid values for dictionary size range from 4 KiB to 512 MiB. + +'LZMA stream' + The LZMA stream, finished by an end of stream marker. Uses default + values for encoder properties. *Note Stream format: (lzip)Stream + format, for a complete description. + Lzip only uses the LZMA marker '2' ("End Of Stream" marker). Lzlib + also uses the LZMA marker '3' ("Sync Flush" marker). *Note + sync_flush::. + +'CRC32 (4 bytes)' + Cyclic Redundancy Check (CRC) of the uncompressed original data. + +'Data size (8 bytes)' + Size of the uncompressed original data. + +'Member size (8 bytes)' + Total size of the member, including header and trailer. This field acts + as a distributed index, allows the verification of stream integrity, + and facilitates safe recovery of undamaged members from multimember + files. + + + +File: lzlib.info, Node: Examples, Next: Problems, Prev: Data format, Up: Top + +11 A small tutorial with examples +********************************* + +This chapter provides real code examples for the most common uses of the +library. See these examples in context in the files 'bbexample.c' and +'ffexample.c' from the source distribution of lzlib. + + Note that the interface of lzlib is symmetrical. That is, the code for +normal compression and decompression is identical except because one calls +LZ_compress* functions while the other calls LZ_decompress* functions. + +* Menu: + +* Buffer compression:: Buffer-to-buffer single-member compression +* Buffer decompression:: Buffer-to-buffer decompression +* File compression:: File-to-file single-member compression +* File decompression:: File-to-file decompression +* File compression mm:: File-to-file multimember compression +* Skipping data errors:: Decompression with automatic resynchronization + + +File: lzlib.info, Node: Buffer compression, Next: Buffer decompression, Up: Examples + +11.1 Buffer compression +======================= + +Buffer-to-buffer single-member compression (MEMBER_SIZE > total output). + +/* Compresses 'insize' bytes from 'inbuf' to 'outbuf'. + Returns the size of the compressed data in '*outlenp'. + In case of error, or if 'outsize' is too small, returns false and does + not modify '*outlenp'. +*/ +bool bbcompress( const uint8_t * const inbuf, const int insize, + const int dictionary_size, const int match_len_limit, + uint8_t * const outbuf, const int outsize, + int * const outlenp ) + { + int inpos = 0, outpos = 0; + bool error = false; + struct LZ_Encoder * const encoder = + LZ_compress_open( dictionary_size, match_len_limit, INT64_MAX ); + if( !encoder || LZ_compress_errno( encoder ) != LZ_ok ) + { LZ_compress_close( encoder ); return false; } + + while( true ) + { + int ret = LZ_compress_write( encoder, inbuf + inpos, insize - inpos ); + if( ret < 0 ) { error = true; break; } + inpos += ret; + if( inpos >= insize ) LZ_compress_finish( encoder ); + ret = LZ_compress_read( encoder, outbuf + outpos, outsize - outpos ); + if( ret < 0 ) { error = true; break; } + outpos += ret; + if( LZ_compress_finished( encoder ) == 1 ) break; + if( outpos >= outsize ) { error = true; break; } + } + + if( LZ_compress_close( encoder ) < 0 ) error = true; + if( error ) return false; + *outlenp = outpos; + return true; + } + + +File: lzlib.info, Node: Buffer decompression, Next: File compression, Prev: Buffer compression, Up: Examples + +11.2 Buffer decompression +========================= + +Buffer-to-buffer decompression. + +/* Decompresses 'insize' bytes from 'inbuf' to 'outbuf'. + Returns the size of the decompressed data in '*outlenp'. + In case of error, or if 'outsize' is too small, returns false and does + not modify '*outlenp'. +*/ +bool bbdecompress( const uint8_t * const inbuf, const int insize, + uint8_t * const outbuf, const int outsize, + int * const outlenp ) + { + int inpos = 0, outpos = 0; + bool error = false; + struct LZ_Decoder * const decoder = LZ_decompress_open(); + if( !decoder || LZ_decompress_errno( decoder ) != LZ_ok ) + { LZ_decompress_close( decoder ); return false; } + + while( true ) + { + int ret = LZ_decompress_write( decoder, inbuf + inpos, insize - inpos ); + if( ret < 0 ) { error = true; break; } + inpos += ret; + if( inpos >= insize ) LZ_decompress_finish( decoder ); + ret = LZ_decompress_read( decoder, outbuf + outpos, outsize - outpos ); + if( ret < 0 ) { error = true; break; } + outpos += ret; + if( LZ_decompress_finished( decoder ) == 1 ) break; + if( outpos >= outsize ) { error = true; break; } + } + + if( LZ_decompress_close( decoder ) < 0 ) error = true; + if( error ) return false; + *outlenp = outpos; + return true; + } + + +File: lzlib.info, Node: File compression, Next: File decompression, Prev: Buffer decompression, Up: Examples + +11.3 File compression +===================== + +File-to-file compression using LZ_compress_write_size. + +int ffcompress( struct LZ_Encoder * const encoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_compress_write_size( encoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_compress_write( encoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_compress_finish( encoder ); + } + ret = LZ_compress_read( encoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_compress_finished( encoder ) == 1 ) return 0; + } + return 1; + } + + +File: lzlib.info, Node: File decompression, Next: File compression mm, Prev: File compression, Up: Examples + +11.4 File decompression +======================= + +File-to-file decompression using LZ_decompress_write_size. + +int ffdecompress( struct LZ_Decoder * const decoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_decompress_write_size( decoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_decompress_write( decoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_decompress_finish( decoder ); + } + ret = LZ_decompress_read( decoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_decompress_finished( decoder ) == 1 ) return 0; + } + return 1; + } + + +File: lzlib.info, Node: File compression mm, Next: Skipping data errors, Prev: File decompression, Up: Examples + +11.5 File-to-file multimember compression +========================================= + +Example 1: Multimember compression with members of fixed size +(MEMBER_SIZE < total output). + +int ffmmcompress( FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384, member_size = 4096 }; + uint8_t buffer[buffer_size]; + bool done = false; + struct LZ_Encoder * const encoder = + LZ_compress_open( 65535, 16, member_size ); + if( !encoder || LZ_compress_errno( encoder ) != LZ_ok ) + { fputs( "ffexample: Not enough memory.\n", stderr ); + LZ_compress_close( encoder ); return 1; } + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_compress_write_size( encoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_compress_write( encoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_compress_finish( encoder ); + } + ret = LZ_compress_read( encoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_compress_member_finished( encoder ) == 1 ) + { + if( LZ_compress_finished( encoder ) == 1 ) { done = true; break; } + if( LZ_compress_restart_member( encoder, member_size ) < 0 ) break; + } + } + if( LZ_compress_close( encoder ) < 0 ) done = false; + return done; + } + + +Example 2: Multimember compression (user-restarted members). (Call +LZ_compress_open with MEMBER_SIZE > largest member). + +/* Compresses 'infile' to 'outfile' as a multimember stream with one member + for each line of text terminated by a newline character or by EOF. + Returns 0 if success, 1 if error. +*/ +int fflfcompress( struct LZ_Encoder * const encoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_compress_write_size( encoder ) ); + if( size > 0 ) + { + for( len = 0; len < size; ) + { + int ch = getc( infile ); + if( ch == EOF || ( buffer[len++] = ch ) == '\n' ) break; + } + /* avoid writing an empty member to outfile */ + if( len == 0 && LZ_compress_data_position( encoder ) == 0 ) return 0; + ret = LZ_compress_write( encoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) || buffer[len-1] == '\n' ) + LZ_compress_finish( encoder ); + } + ret = LZ_compress_read( encoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_compress_member_finished( encoder ) == 1 ) + { + if( feof( infile ) && LZ_compress_finished( encoder ) == 1 ) return 0; + if( LZ_compress_restart_member( encoder, INT64_MAX ) < 0 ) break; + } + } + return 1; + } + + +File: lzlib.info, Node: Skipping data errors, Prev: File compression mm, Up: Examples + +11.6 Skipping data errors +========================= + +/* Decompresses 'infile' to 'outfile' with automatic resynchronization to + next member in case of data error, including the automatic removal of + leading garbage. +*/ +int ffrsdecompress( struct LZ_Decoder * const decoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_decompress_write_size( decoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_decompress_write( decoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_decompress_finish( decoder ); + } + ret = LZ_decompress_read( decoder, buffer, buffer_size ); + if( ret < 0 ) + { + if( LZ_decompress_errno( decoder ) == LZ_header_error || + LZ_decompress_errno( decoder ) == LZ_data_error ) + { LZ_decompress_sync_to_member( decoder ); continue; } + else break; + } + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_decompress_finished( decoder ) == 1 ) return 0; + } + return 1; + } + + +File: lzlib.info, Node: Problems, Next: Concept index, Prev: Examples, Up: Top + +12 Reporting bugs +***************** + +There are probably bugs in lzlib. There are certainly errors and omissions +in this manual. If you report them, they will get fixed. If you don't, no +one will ever know about them and they will remain unfixed for all +eternity, if not longer. + + If you find a bug in lzlib, please send electronic mail to +. Include the version number, which you can find by +running 'minilzip --version' or in 'LZ_version_string' from 'lzlib.h'. + + +File: lzlib.info, Node: Concept index, Prev: Problems, Up: Top + +Concept index +************* + +[index] +* Menu: + +* buffer compression: Buffer compression. (line 6) +* buffer decompression: Buffer decompression. (line 6) +* buffering: Buffering. (line 6) +* bugs: Problems. (line 6) +* compression functions: Compression functions. (line 6) +* data format: Data format. (line 6) +* decompression functions: Decompression functions. (line 6) +* error codes: Error codes. (line 6) +* error messages: Error messages. (line 6) +* examples: Examples. (line 6) +* file compression: File compression. (line 6) +* file decompression: File decompression. (line 6) +* getting help: Problems. (line 6) +* introduction: Introduction. (line 6) +* invoking: Invoking minilzip. (line 6) +* library version: Library version. (line 6) +* multimember compression: File compression mm. (line 6) +* options: Invoking minilzip. (line 6) +* parameter limits: Parameter limits. (line 6) +* skipping data errors: Skipping data errors. (line 6) + + + +Tag Table: +Node: Top220 +Node: Introduction1342 +Node: Library version6413 +Node: Buffering8918 +Node: Parameter limits10143 +Node: Compression functions11097 +Ref: member_size12907 +Ref: sync_flush14673 +Node: Decompression functions19493 +Node: Error codes27187 +Node: Error messages29478 +Node: Invoking minilzip30057 +Node: Data format39651 +Ref: coded-dict-size40957 +Node: Examples42267 +Node: Buffer compression43228 +Node: Buffer decompression44754 +Node: File compression46174 +Node: File decompression47157 +Node: File compression mm48161 +Node: Skipping data errors51193 +Node: Problems52505 +Node: Concept index53077 + +End Tag Table + + +Local Variables: +coding: iso-8859-15 +End: diff --git a/3rdparty/lzlib-1.12/doc/lzlib.texi b/3rdparty/lzlib-1.12/doc/lzlib.texi new file mode 100644 index 0000000..644a3d7 --- /dev/null +++ b/3rdparty/lzlib-1.12/doc/lzlib.texi @@ -0,0 +1,1393 @@ +\input texinfo @c -*-texinfo-*- +@c %**start of header +@setfilename lzlib.info +@documentencoding ISO-8859-15 +@settitle Lzlib Manual +@finalout +@c %**end of header + +@set UPDATED 2 January 2021 +@set VERSION 1.12 + +@dircategory Data Compression +@direntry +* Lzlib: (lzlib). Compression library for the lzip format +@end direntry + + +@ifnothtml +@titlepage +@title Lzlib +@subtitle Compression library for the lzip format +@subtitle for Lzlib version @value{VERSION}, @value{UPDATED} +@author by Antonio Diaz Diaz + +@page +@vskip 0pt plus 1filll +@end titlepage + +@contents +@end ifnothtml + +@ifnottex +@node Top +@top + +This manual is for Lzlib (version @value{VERSION}, @value{UPDATED}). + +@menu +* Introduction:: Purpose and features of lzlib +* Library version:: Checking library version +* Buffering:: Sizes of lzlib's buffers +* Parameter limits:: Min / max values for some parameters +* Compression functions:: Descriptions of the compression functions +* Decompression functions:: Descriptions of the decompression functions +* Error codes:: Meaning of codes returned by functions +* Error messages:: Error messages corresponding to error codes +* Invoking minilzip:: Command line interface of the test program +* Data format:: Detailed format of the compressed data +* Examples:: A small tutorial with examples +* Problems:: Reporting bugs +* Concept index:: Index of concepts +@end menu + +@sp 1 +Copyright @copyright{} 2009-2021 Antonio Diaz Diaz. + +This manual is free documentation: you have unlimited permission to copy, +distribute, and modify it. +@end ifnottex + + +@node Introduction +@chapter Introduction +@cindex introduction + +@uref{http://www.nongnu.org/lzip/lzlib.html,,Lzlib} +is a data compression library providing in-memory LZMA compression and +decompression functions, including integrity checking of the decompressed +data. The compressed data format used by the library is the lzip format. +Lzlib is written in C. + +The lzip file format is designed for data sharing and long-term archiving, +taking into account both data integrity and decoder availability: + +@itemize @bullet +@item +The lzip format provides very safe integrity checking and some data +recovery means. The program +@uref{http://www.nongnu.org/lzip/manual/lziprecover_manual.html#Data-safety,,lziprecover} +can repair bit flip errors (one of the most common forms of data +corruption) in lzip files, and provides data recovery capabilities, +including error-checked merging of damaged copies of a file. +@ifnothtml +@xref{Data safety,,,lziprecover}. +@end ifnothtml + +@item +The lzip format is as simple as possible (but not simpler). The lzip +manual provides the source code of a simple decompressor along with a +detailed explanation of how it works, so that with the only help of the +lzip manual it would be possible for a digital archaeologist to extract +the data from a lzip file long after quantum computers eventually render +LZMA obsolete. + +@item +Additionally the lzip reference implementation is copylefted, which +guarantees that it will remain free forever. +@end itemize + +A nice feature of the lzip format is that a corrupt byte is easier to repair +the nearer it is from the beginning of the file. Therefore, with the help of +lziprecover, losing an entire archive just because of a corrupt byte near +the beginning is a thing of the past. + +The functions and variables forming the interface of the compression library +are declared in the file @samp{lzlib.h}. Usage examples of the library are +given in the files @samp{bbexample.c}, @samp{ffexample.c}, and @samp{main.c} +from the source distribution. + +Compression/decompression is done by repeatedly calling a couple of +read/write functions until all the data have been processed by the library. +This interface is safer and less error prone than the traditional zlib +interface. + +Compression/decompression is done when the read function is called. This +means the value returned by the position functions will not be updated until +a read call, even if a lot of data are written. If you want the data to be +compressed in advance, just call the read function with a @var{size} equal +to 0. + +If all the data to be compressed are written in advance, lzlib will +automatically adjust the header of the compressed data to use the largest +dictionary size that does not exceed neither the data size nor the limit +given to @samp{LZ_compress_open}. This feature reduces the amount of memory +needed for decompression and allows minilzip to produce identical compressed +output as lzip. + +Lzlib will correctly decompress a data stream which is the concatenation of +two or more compressed data streams. The result is the concatenation of the +corresponding decompressed data streams. Integrity testing of concatenated +compressed data streams is also supported. + +Lzlib is able to compress and decompress streams of unlimited size by +automatically creating multimember output. The members so created are large, +about @w{2 PiB} each. + +All the library functions are thread safe. The library does not install +any signal handler. The decoder checks the consistency of the compressed +data, so the library should never crash even in case of corrupted input. + +In spite of its name (Lempel-Ziv-Markov chain-Algorithm), LZMA is not a +concrete algorithm; it is more like "any algorithm using the LZMA coding +scheme". For example, the option @samp{-0} of lzip uses the scheme in almost +the simplest way possible; issuing the longest match it can find, or a +literal byte if it can't find a match. Inversely, a much more elaborated way +of finding coding sequences of minimum size than the one currently used by +lzip could be developed, and the resulting sequence could also be coded +using the LZMA coding scheme. + +Lzlib currently implements two variants of the LZMA algorithm; fast (used by +option @samp{-0} of minilzip) and normal (used by all other compression +levels). + +The high compression of LZMA comes from combining two basic, well-proven +compression ideas: sliding dictionaries (LZ77/78) and markov models (the +thing used by every compression algorithm that uses a range encoder or +similar order-0 entropy coder as its last stage) with segregation of +contexts according to what the bits are used for. + +The ideas embodied in lzlib are due to (at least) the following people: +Abraham Lempel and Jacob Ziv (for the LZ algorithm), Andrey Markov (for the +definition of Markov chains), G.N.N. Martin (for the definition of range +encoding), Igor Pavlov (for putting all the above together in LZMA), and +Julian Seward (for bzip2's CLI). + +LANGUAGE NOTE: Uncompressed = not compressed = plain data; it may never have +been compressed. Decompressed is used to refer to data which have undergone +the process of decompression. + + +@node Library version +@chapter Library version +@cindex library version + +One goal of lzlib is to keep perfect backward compatibility with older +versions of itself down to 1.0. Any application working with an older lzlib +should work with a newer lzlib. Installing a newer lzlib should not break +anything. This chapter describes the constants and functions that the +application can use to discover the version of the library being used. + +@defvr Constant LZ_API_VERSION +This constant is defined in @samp{lzlib.h} and works as a version test +macro. The application should verify at compile time that LZ_API_VERSION is +greater than or equal to the version required by the application: + +@example +#if !defined LZ_API_VERSION || LZ_API_VERSION < 1012 +#error "lzlib 1.12 or newer needed." +#endif +@end example + +Before version 1.8, lzlib didn't define LZ_API_VERSION.@* +LZ_API_VERSION was first defined in lzlib 1.8 to 1.@* +Since lzlib 1.12, LZ_API_VERSION is defined as (major * 1000 + minor). +@end defvr + +NOTE: Version test macros are the library's way of announcing functionality +to the application. They should not be confused with feature test macros, +which allow the application to announce to the library its desire to have +certain symbols and prototypes exposed. + +@deftypefun int LZ_api_version ( void ) +If LZ_API_VERSION >= 1012, this function is declared in @samp{lzlib.h} (else +it doesn't exist). It returns the LZ_API_VERSION of the library object code +being used. The application should verify at run time that the value +returned by @code{LZ_api_version} is greater than or equal to the version +required by the application. An application may be dinamically linked at run +time with a different version of lzlib than the one it was compiled for, and +this should not break the program as long as the library used provides the +functionality required by the application. + +@example +#if defined LZ_API_VERSION && LZ_API_VERSION >= 1012 + if( LZ_api_version() < 1012 ) + show_error( "lzlib 1.12 or newer needed." ); +#endif +@end example +@end deftypefun + +@deftypevr Constant {const char *} LZ_version_string +This string constant is defined in the header file @samp{lzlib.h} and +represents the version of the library being used at compile time. +@end deftypevr + +@deftypefun {const char *} LZ_version ( void ) +This function returns a string representing the version of the library being +used at run time. +@end deftypefun + + +@node Buffering +@chapter Buffering +@cindex buffering + +Lzlib internal functions need access to a memory chunk at least as large +as the dictionary size (sliding window). For efficiency reasons, the +input buffer for compression is twice or sixteen times as large as the +dictionary size. + +Finally, for safety reasons, lzlib uses two more internal buffers. + +These are the four buffers used by lzlib, and their guaranteed minimum sizes: + +@itemize @bullet +@item Input compression buffer. Written to by the function +@samp{LZ_compress_write}. For the normal variant of LZMA, its size is two +times the dictionary size set with the function @samp{LZ_compress_open} or +@w{64 KiB}, whichever is larger. For the fast variant, its size is @w{1 MiB}. + +@item Output compression buffer. Read from by the function +@samp{LZ_compress_read}. Its size is @w{64 KiB}. + +@item Input decompression buffer. Written to by the function +@samp{LZ_decompress_write}. Its size is @w{64 KiB}. + +@item Output decompression buffer. Read from by the function +@samp{LZ_decompress_read}. Its size is the dictionary size set in the header +of the member currently being decompressed or @w{64 KiB}, whichever is larger. +@end itemize + + +@node Parameter limits +@chapter Parameter limits +@cindex parameter limits + +These functions provide minimum and maximum values for some parameters. +Current values are shown in square brackets. + +@deftypefun int LZ_min_dictionary_bits ( void ) +Returns the base 2 logarithm of the smallest valid dictionary size [12]. +@end deftypefun + +@deftypefun int LZ_min_dictionary_size ( void ) +Returns the smallest valid dictionary size [4 KiB]. +@end deftypefun + +@deftypefun int LZ_max_dictionary_bits ( void ) +Returns the base 2 logarithm of the largest valid dictionary size [29]. +@end deftypefun + +@deftypefun int LZ_max_dictionary_size ( void ) +Returns the largest valid dictionary size [512 MiB]. +@end deftypefun + +@deftypefun int LZ_min_match_len_limit ( void ) +Returns the smallest valid match length limit [5]. +@end deftypefun + +@deftypefun int LZ_max_match_len_limit ( void ) +Returns the largest valid match length limit [273]. +@end deftypefun + + +@node Compression functions +@chapter Compression functions +@cindex compression functions + +These are the functions used to compress data. In case of error, all of +them return -1 or 0, for signed and unsigned return values respectively, +except @samp{LZ_compress_open} whose return value must be verified by +calling @samp{LZ_compress_errno} before using it. + + +@deftypefun {struct LZ_Encoder *} LZ_compress_open ( const int @var{dictionary_size}, const int @var{match_len_limit}, const unsigned long long @var{member_size} ) +Initializes the internal stream state for compression and returns a +pointer that can only be used as the @var{encoder} argument for the +other LZ_compress functions, or a null pointer if the encoder could not +be allocated. + +The returned pointer must be verified by calling +@samp{LZ_compress_errno} before using it. If @samp{LZ_compress_errno} +does not return @samp{LZ_ok}, the returned pointer must not be used and +should be freed with @samp{LZ_compress_close} to avoid memory leaks. + +@var{dictionary_size} sets the dictionary size to be used, in bytes. +Valid values range from @w{4 KiB} to @w{512 MiB}. Note that dictionary +sizes are quantized. If the size specified does not match one of the +valid sizes, it will be rounded upwards by adding up to +@w{(@var{dictionary_size} / 8)} to it. + +@var{match_len_limit} sets the match length limit in bytes. Valid values +range from 5 to 273. Larger values usually give better compression ratios +but longer compression times. + +If @var{dictionary_size} is 65535 and @var{match_len_limit} is 16, the fast +variant of LZMA is chosen, which produces identical compressed output as +@w{@samp{lzip -0}}. (The dictionary size used will be rounded upwards to +@w{64 KiB}). + +@anchor{member_size} +@var{member_size} sets the member size limit in bytes. Valid values range +from @w{4 KiB} to @w{2 PiB}. A small member size may degrade compression +ratio, so use it only when needed. To produce a single-member data stream, +give @var{member_size} a value larger than the amount of data to be +produced. Values larger than @w{2 PiB} will be reduced to @w{2 PiB} to +prevent the uncompressed size of the member from overflowing. +@end deftypefun + + +@deftypefun int LZ_compress_close ( struct LZ_Encoder * const @var{encoder} ) +Frees all dynamically allocated data structures for this stream. This +function discards any unprocessed input and does not flush any pending +output. After a call to @samp{LZ_compress_close}, @var{encoder} can no +longer be used as an argument to any LZ_compress function. +It is safe to call @samp{LZ_compress_close} with a null argument. +@end deftypefun + + +@deftypefun int LZ_compress_finish ( struct LZ_Encoder * const @var{encoder} ) +Use this function to tell @samp{lzlib} that all the data for this member +have already been written (with the function @samp{LZ_compress_write}). +It is safe to call @samp{LZ_compress_finish} as many times as needed. +After all the compressed data have been read with @samp{LZ_compress_read} +and @samp{LZ_compress_member_finished} returns 1, a new member can be +started with @samp{LZ_compress_restart_member}. +@end deftypefun + + +@deftypefun int LZ_compress_restart_member ( struct LZ_Encoder * const @var{encoder}, const unsigned long long @var{member_size} ) +Use this function to start a new member in a multimember data stream. Call +this function only after @samp{LZ_compress_member_finished} indicates that +the current member has been fully read (with the function +@samp{LZ_compress_read}). @xref{member_size}, for a description of +@var{member_size}. +@end deftypefun + + +@anchor{sync_flush} +@deftypefun int LZ_compress_sync_flush ( struct LZ_Encoder * const @var{encoder} ) +Use this function to make available to @samp{LZ_compress_read} all the data +already written with the function @samp{LZ_compress_write}. First call +@samp{LZ_compress_sync_flush}. Then call @samp{LZ_compress_read} until it +returns 0. + +This function writes a LZMA marker @samp{3} ("Sync Flush" marker) to the +compressed output. Note that the sync flush marker is not allowed in lzip +files; it is a device for interactive communication between applications +using lzlib, but is useless and wasteful in a file, and is excluded from the +media type @samp{application/lzip}. The LZMA marker @samp{2} ("End Of +Stream" marker) is the only marker allowed in lzip files. @xref{Data format}. + +Repeated use of @samp{LZ_compress_sync_flush} may degrade compression +ratio, so use it only when needed. If the interval between calls to +@samp{LZ_compress_sync_flush} is large (comparable to dictionary size), +creating a multimember data stream with @samp{LZ_compress_restart_member} +may be an alternative. + +Combining multimember stream creation with flushing may be tricky. If there +are more bytes available than those needed to complete @var{member_size}, +@samp{LZ_compress_restart_member} needs to be called when +@samp{LZ_compress_member_finished} returns 1, followed by a new call to +@samp{LZ_compress_sync_flush}. +@end deftypefun + + +@deftypefun int LZ_compress_read ( struct LZ_Encoder * const @var{encoder}, uint8_t * const @var{buffer}, const int @var{size} ) +The function @samp{LZ_compress_read} reads up to @var{size} bytes from the +stream pointed to by @var{encoder}, storing the results in @var{buffer}. +If @w{LZ_API_VERSION >= 1012}, @var{buffer} may be a null pointer, in which +case the bytes read are discarded. + +The return value is the number of bytes actually read. This might be less +than @var{size}; for example, if there aren't that many bytes left in the +stream or if more bytes have to be yet written with the function +@samp{LZ_compress_write}. Note that reading less than @var{size} bytes is +not an error. +@end deftypefun + + +@deftypefun int LZ_compress_write ( struct LZ_Encoder * const @var{encoder}, uint8_t * const @var{buffer}, const int @var{size} ) +The function @samp{LZ_compress_write} writes up to @var{size} bytes from +@var{buffer} to the stream pointed to by @var{encoder}. + +The return value is the number of bytes actually written. This might be +less than @var{size}. Note that writing less than @var{size} bytes is +not an error. +@end deftypefun + + +@deftypefun int LZ_compress_write_size ( struct LZ_Encoder * const @var{encoder} ) +The function @samp{LZ_compress_write_size} returns the maximum number of +bytes that can be immediately written through @samp{LZ_compress_write}. +For efficiency reasons, once the input buffer is full and +@samp{LZ_compress_write_size} returns 0, almost all the buffer must be +compressed before a size greater than 0 is returned again. (This is done to +minimize the amount of data that must be copied to the beginning of the +buffer before new data can be accepted). + +It is guaranteed that an immediate call to @samp{LZ_compress_write} will +accept a @var{size} up to the returned number of bytes. +@end deftypefun + + +@deftypefun {enum LZ_Errno} LZ_compress_errno ( struct LZ_Encoder * const @var{encoder} ) +Returns the current error code for @var{encoder}. @xref{Error codes}. +It is safe to call @samp{LZ_compress_errno} with a null argument, in which +case it returns @samp{LZ_bad_argument}. +@end deftypefun + + +@deftypefun int LZ_compress_finished ( struct LZ_Encoder * const @var{encoder} ) +Returns 1 if all the data have been read and @samp{LZ_compress_close} +can be safely called. Otherwise it returns 0. @samp{LZ_compress_finished} +implies @samp{LZ_compress_member_finished}. +@end deftypefun + + +@deftypefun int LZ_compress_member_finished ( struct LZ_Encoder * const @var{encoder} ) +Returns 1 if the current member, in a multimember data stream, has been +fully read and @samp{LZ_compress_restart_member} can be safely called. +Otherwise it returns 0. +@end deftypefun + + +@deftypefun {unsigned long long} LZ_compress_data_position ( struct LZ_Encoder * const @var{encoder} ) +Returns the number of input bytes already compressed in the current member. +@end deftypefun + + +@deftypefun {unsigned long long} LZ_compress_member_position ( struct LZ_Encoder * const @var{encoder} ) +Returns the number of compressed bytes already produced, but perhaps not +yet read, in the current member. +@end deftypefun + + +@deftypefun {unsigned long long} LZ_compress_total_in_size ( struct LZ_Encoder * const @var{encoder} ) +Returns the total number of input bytes already compressed. +@end deftypefun + + +@deftypefun {unsigned long long} LZ_compress_total_out_size ( struct LZ_Encoder * const @var{encoder} ) +Returns the total number of compressed bytes already produced, but +perhaps not yet read. +@end deftypefun + + +@node Decompression functions +@chapter Decompression functions +@cindex decompression functions + +These are the functions used to decompress data. In case of error, all +of them return -1 or 0, for signed and unsigned return values +respectively, except @samp{LZ_decompress_open} whose return value must +be verified by calling @samp{LZ_decompress_errno} before using it. + + +@deftypefun {struct LZ_Decoder *} LZ_decompress_open ( void ) +Initializes the internal stream state for decompression and returns a +pointer that can only be used as the @var{decoder} argument for the +other LZ_decompress functions, or a null pointer if the decoder could +not be allocated. + +The returned pointer must be verified by calling +@samp{LZ_decompress_errno} before using it. If +@samp{LZ_decompress_errno} does not return @samp{LZ_ok}, the returned +pointer must not be used and should be freed with +@samp{LZ_decompress_close} to avoid memory leaks. +@end deftypefun + + +@deftypefun int LZ_decompress_close ( struct LZ_Decoder * const @var{decoder} ) +Frees all dynamically allocated data structures for this stream. This +function discards any unprocessed input and does not flush any pending +output. After a call to @samp{LZ_decompress_close}, @var{decoder} can no +longer be used as an argument to any LZ_decompress function. +It is safe to call @samp{LZ_decompress_close} with a null argument. +@end deftypefun + + +@deftypefun int LZ_decompress_finish ( struct LZ_Decoder * const @var{decoder} ) +Use this function to tell @samp{lzlib} that all the data for this stream +have already been written (with the function @samp{LZ_decompress_write}). +It is safe to call @samp{LZ_decompress_finish} as many times as needed. +It is not required to call @samp{LZ_decompress_finish} if the input stream +only contains whole members, but not calling it prevents lzlib from +detecting a truncated member. +@end deftypefun + + +@deftypefun int LZ_decompress_reset ( struct LZ_Decoder * const @var{decoder} ) +Resets the internal state of @var{decoder} as it was just after opening +it with the function @samp{LZ_decompress_open}. Data stored in the +internal buffers is discarded. Position counters are set to 0. +@end deftypefun + + +@deftypefun int LZ_decompress_sync_to_member ( struct LZ_Decoder * const @var{decoder} ) +Resets the error state of @var{decoder} and enters a search state that +lasts until a new member header (or the end of the stream) is found. +After a successful call to @samp{LZ_decompress_sync_to_member}, data +written with @samp{LZ_decompress_write} will be consumed and +@samp{LZ_decompress_read} will return 0 until a header is found. + +This function is useful to discard any data preceding the first member, +or to discard the rest of the current member, for example in case of a +data error. If the decoder is already at the beginning of a member, this +function does nothing. +@end deftypefun + + +@deftypefun int LZ_decompress_read ( struct LZ_Decoder * const @var{decoder}, uint8_t * const @var{buffer}, const int @var{size} ) +The function @samp{LZ_decompress_read} reads up to @var{size} bytes from the +stream pointed to by @var{decoder}, storing the results in @var{buffer}. +If @w{LZ_API_VERSION >= 1012}, @var{buffer} may be a null pointer, in which +case the bytes read are discarded. + +The return value is the number of bytes actually read. This might be less +than @var{size}; for example, if there aren't that many bytes left in the +stream or if more bytes have to be yet written with the function +@samp{LZ_decompress_write}. Note that reading less than @var{size} bytes is +not an error. + +@samp{LZ_decompress_read} returns at least once per member so that +@samp{LZ_decompress_member_finished} can be called (and trailer data +retrieved) for each member, even for empty members. Therefore, +@samp{LZ_decompress_read} returning 0 does not mean that the end of the +stream has been reached. The increase in the value returned by +@samp{LZ_decompress_total_in_size} can be used to tell the end of the stream +from an empty member. + +In case of decompression error caused by corrupt or truncated data, +@samp{LZ_decompress_read} does not signal the error immediately to the +application, but waits until all the bytes decoded have been read. This +allows tools like +@uref{http://www.nongnu.org/lzip/manual/tarlz_manual.html,,tarlz} to +recover as much data as possible from each damaged member. +@ifnothtml +@xref{Top,tarlz manual,,tarlz}. +@end ifnothtml +@end deftypefun + + +@deftypefun int LZ_decompress_write ( struct LZ_Decoder * const @var{decoder}, uint8_t * const @var{buffer}, const int @var{size} ) +The function @samp{LZ_decompress_write} writes up to @var{size} bytes from +@var{buffer} to the stream pointed to by @var{decoder}. + +The return value is the number of bytes actually written. This might be +less than @var{size}. Note that writing less than @var{size} bytes is +not an error. +@end deftypefun + + +@deftypefun int LZ_decompress_write_size ( struct LZ_Decoder * const @var{decoder} ) +The function @samp{LZ_decompress_write_size} returns the maximum number of +bytes that can be immediately written through @samp{LZ_decompress_write}. +This number varies smoothly; each compressed byte consumed may be +overwritten immediately, increasing by 1 the value returned. + +It is guaranteed that an immediate call to @samp{LZ_decompress_write} will +accept a @var{size} up to the returned number of bytes. +@end deftypefun + + +@deftypefun {enum LZ_Errno} LZ_decompress_errno ( struct LZ_Decoder * const @var{decoder} ) +Returns the current error code for @var{decoder}. @xref{Error codes}. +It is safe to call @samp{LZ_decompress_errno} with a null argument, in which +case it returns @samp{LZ_bad_argument}. +@end deftypefun + + +@deftypefun int LZ_decompress_finished ( struct LZ_Decoder * const @var{decoder} ) +Returns 1 if all the data have been read and @samp{LZ_decompress_close} +can be safely called. Otherwise it returns 0. @samp{LZ_decompress_finished} +does not imply @samp{LZ_decompress_member_finished}. +@end deftypefun + + +@deftypefun int LZ_decompress_member_finished ( struct LZ_Decoder * const @var{decoder} ) +Returns 1 if the previous call to @samp{LZ_decompress_read} finished reading +the current member, indicating that final values for member are available +through @samp{LZ_decompress_data_crc}, @samp{LZ_decompress_data_position}, +and @samp{LZ_decompress_member_position}. Otherwise it returns 0. +@end deftypefun + + +@deftypefun int LZ_decompress_member_version ( struct LZ_Decoder * const @var{decoder} ) +Returns the version of current member from member header. +@end deftypefun + + +@deftypefun int LZ_decompress_dictionary_size ( struct LZ_Decoder * const @var{decoder} ) +Returns the dictionary size of the current member, read from the member +header. +@end deftypefun + + +@deftypefun {unsigned} LZ_decompress_data_crc ( struct LZ_Decoder * const @var{decoder} ) +Returns the 32 bit Cyclic Redundancy Check of the data decompressed from +the current member. The returned value is valid only when +@samp{LZ_decompress_member_finished} returns 1. +@end deftypefun + + +@deftypefun {unsigned long long} LZ_decompress_data_position ( struct LZ_Decoder * const @var{decoder} ) +Returns the number of decompressed bytes already produced, but perhaps +not yet read, in the current member. +@end deftypefun + + +@deftypefun {unsigned long long} LZ_decompress_member_position ( struct LZ_Decoder * const @var{decoder} ) +Returns the number of input bytes already decompressed in the current member. +@end deftypefun + + +@deftypefun {unsigned long long} LZ_decompress_total_in_size ( struct LZ_Decoder * const @var{decoder} ) +Returns the total number of input bytes already decompressed. +@end deftypefun + + +@deftypefun {unsigned long long} LZ_decompress_total_out_size ( struct LZ_Decoder * const @var{decoder} ) +Returns the total number of decompressed bytes already produced, but +perhaps not yet read. +@end deftypefun + + +@node Error codes +@chapter Error codes +@cindex error codes + +Most library functions return -1 to indicate that they have failed. But +this return value only tells you that an error has occurred. To find out +what kind of error it was, you need to verify the error code by calling +@samp{LZ_(de)compress_errno}. + +Library functions don't change the value returned by +@samp{LZ_(de)compress_errno} when they succeed; thus, the value returned +by @samp{LZ_(de)compress_errno} after a successful call is not +necessarily LZ_ok, and you should not use @samp{LZ_(de)compress_errno} +to determine whether a call failed. If the call failed, then you can +examine @samp{LZ_(de)compress_errno}. + +The error codes are defined in the header file @samp{lzlib.h}. + +@deftypevr Constant {enum LZ_Errno} LZ_ok +The value of this constant is 0 and is used to indicate that there is no +error. +@end deftypevr + +@deftypevr Constant {enum LZ_Errno} LZ_bad_argument +At least one of the arguments passed to the library function was invalid. +@end deftypevr + +@deftypevr Constant {enum LZ_Errno} LZ_mem_error +No memory available. The system cannot allocate more virtual memory +because its capacity is full. +@end deftypevr + +@deftypevr Constant {enum LZ_Errno} LZ_sequence_error +A library function was called in the wrong order. For example +@samp{LZ_compress_restart_member} was called before +@samp{LZ_compress_member_finished} indicates that the current member is +finished. +@end deftypevr + +@deftypevr Constant {enum LZ_Errno} LZ_header_error +An invalid member header (one with the wrong magic bytes) was read. If +this happens at the end of the data stream it may indicate trailing data. +@end deftypevr + +@deftypevr Constant {enum LZ_Errno} LZ_unexpected_eof +The end of the data stream was reached in the middle of a member. +@end deftypevr + +@deftypevr Constant {enum LZ_Errno} LZ_data_error +The data stream is corrupt. If @samp{LZ_decompress_member_position} is 6 +or less, it indicates either a format version not supported, an invalid +dictionary size, a corrupt header in a multimember data stream, or +trailing data too similar to a valid lzip header. Lziprecover can be +used to remove conflicting trailing data from a file. +@end deftypevr + +@deftypevr Constant {enum LZ_Errno} LZ_library_error +A bug was detected in the library. Please, report it. @xref{Problems}. +@end deftypevr + + +@node Error messages +@chapter Error messages +@cindex error messages + +@deftypefun {const char *} LZ_strerror ( const enum LZ_Errno @var{lz_errno} ) +Returns the standard error message for a given error code. The messages +are fairly short; there are no multi-line messages or embedded newlines. +This function makes it easy for your program to report informative error +messages about the failure of a library call. + +The value of @var{lz_errno} normally comes from a call to +@samp{LZ_(de)compress_errno}. +@end deftypefun + + +@node Invoking minilzip +@chapter Invoking minilzip +@cindex invoking +@cindex options + +Minilzip is a test program for the compression library lzlib, fully +compatible with lzip 1.4 or newer. + +@uref{http://www.nongnu.org/lzip/lzip.html,,Lzip} is a lossless data +compressor with a user interface similar to the one of gzip or bzip2. Lzip +uses a simplified form of the 'Lempel-Ziv-Markov chain-Algorithm' (LZMA) +stream format, chosen to maximize safety and interoperability. Lzip can +compress about as fast as gzip @w{(lzip -0)} or compress most files more +than bzip2 @w{(lzip -9)}. Decompression speed is intermediate between gzip +and bzip2. Lzip is better than gzip and bzip2 from a data recovery +perspective. Lzip has been designed, written, and tested with great care to +replace gzip and bzip2 as the standard general-purpose compressed format for +unix-like systems. + +@noindent +The format for running minilzip is: + +@example +minilzip [@var{options}] [@var{files}] +@end example + +@noindent +If no file names are specified, minilzip compresses (or decompresses) from +standard input to standard output. A hyphen @samp{-} used as a @var{file} +argument means standard input. It can be mixed with other @var{files} and is +read just once, the first time it appears in the command line. + +minilzip supports the following +@uref{http://www.nongnu.org/arg-parser/manual/arg_parser_manual.html#Argument-syntax,,options}: +@ifnothtml +@xref{Argument syntax,,,arg_parser}. +@end ifnothtml + +@table @code +@item -h +@itemx --help +Print an informative help message describing the options and exit. + +@item -V +@itemx --version +Print the version number of minilzip on the standard output and exit. +This version number should be included in all bug reports. + +@item -a +@itemx --trailing-error +Exit with error status 2 if any remaining input is detected after +decompressing the last member. Such remaining input is usually trailing +garbage that can be safely ignored. + +@item -b @var{bytes} +@itemx --member-size=@var{bytes} +When compressing, set the member size limit to @var{bytes}. It is advisable +to keep members smaller than RAM size so that they can be repaired with +lziprecover in case of corruption. A small member size may degrade +compression ratio, so use it only when needed. Valid values range from +@w{100 kB} to @w{2 PiB}. Defaults to @w{2 PiB}. + +@item -c +@itemx --stdout +Compress or decompress to standard output; keep input files unchanged. If +compressing several files, each file is compressed independently. (The +output consists of a sequence of independently compressed members). This +option (or @samp{-o}) is needed when reading from a named pipe (fifo) or +from a device. Use it also to recover as much of the decompressed data as +possible when decompressing a corrupt file. @samp{-c} overrides @samp{-o} +and @samp{-S}. @samp{-c} has no effect when testing or listing. + +@item -d +@itemx --decompress +Decompress the files specified. If a file does not exist or can't be +opened, minilzip continues decompressing the rest of the files. If a file +fails to decompress, or is a terminal, minilzip exits immediately without +decompressing the rest of the files. + +@item -f +@itemx --force +Force overwrite of output files. + +@item -F +@itemx --recompress +When compressing, force re-compression of files whose name already has +the @samp{.lz} or @samp{.tlz} suffix. + +@item -k +@itemx --keep +Keep (don't delete) input files during compression or decompression. + +@item -m @var{bytes} +@itemx --match-length=@var{bytes} +When compressing, set the match length limit in bytes. After a match +this long is found, the search is finished. Valid values range from 5 to +273. Larger values usually give better compression ratios but longer +compression times. + +@item -o @var{file} +@itemx --output=@var{file} +If @samp{-c} has not been also specified, write the (de)compressed output to +@var{file}; keep input files unchanged. If compressing several files, each +file is compressed independently. (The output consists of a sequence of +independently compressed members). This option (or @samp{-c}) is needed when +reading from a named pipe (fifo) or from a device. @w{@samp{-o -}} is +equivalent to @samp{-c}. @samp{-o} has no effect when testing or listing. + +When compressing and splitting the output in volumes, @var{file} is used as +a prefix, and several files named @samp{@var{file}00001.lz}, +@samp{@var{file}00002.lz}, etc, are created. In this case, only one input +file is allowed. + +@item -q +@itemx --quiet +Quiet operation. Suppress all messages. + +@item -s @var{bytes} +@itemx --dictionary-size=@var{bytes} +When compressing, set the dictionary size limit in bytes. Minilzip will use +for each file the largest dictionary size that does not exceed neither +the file size nor this limit. Valid values range from @w{4 KiB} to +@w{512 MiB}. Values 12 to 29 are interpreted as powers of two, meaning +2^12 to 2^29 bytes. Dictionary sizes are quantized so that they can be +coded in just one byte (@pxref{coded-dict-size}). If the size specified +does not match one of the valid sizes, it will be rounded upwards by +adding up to @w{(@var{bytes} / 8)} to it. + +For maximum compression you should use a dictionary size limit as large +as possible, but keep in mind that the decompression memory requirement +is affected at compression time by the choice of dictionary size limit. + +@item -S @var{bytes} +@itemx --volume-size=@var{bytes} +When compressing, and @samp{-c} has not been also specified, split the +compressed output into several volume files with names +@samp{original_name00001.lz}, @samp{original_name00002.lz}, etc, and set the +volume size limit to @var{bytes}. Input files are kept unchanged. Each +volume is a complete, maybe multimember, lzip file. A small volume size may +degrade compression ratio, so use it only when needed. Valid values range +from @w{100 kB} to @w{4 EiB}. + +@item -t +@itemx --test +Check integrity of the files specified, but don't decompress them. This +really performs a trial decompression and throws away the result. Use it +together with @samp{-v} to see information about the files. If a file +fails the test, does not exist, can't be opened, or is a terminal, minilzip +continues checking the rest of the files. A final diagnostic is shown at +verbosity level 1 or higher if any file fails the test when testing +multiple files. + +@item -v +@itemx --verbose +Verbose mode.@* +When compressing, show the compression ratio and size for each file +processed.@* +When decompressing or testing, further -v's (up to 4) increase the +verbosity level, showing status, compression ratio, dictionary size, +and trailer contents (CRC, data size, member size). + +@item -0 .. -9 +Compression level. Set the compression parameters (dictionary size and +match length limit) as shown in the table below. The default compression +level is @samp{-6}, equivalent to @w{@samp{-s8MiB -m36}}. Note that +@samp{-9} can be much slower than @samp{-0}. These options have no +effect when decompressing or testing. + +The bidimensional parameter space of LZMA can't be mapped to a linear +scale optimal for all files. If your files are large, very repetitive, +etc, you may need to use the options @samp{--dictionary-size} and +@samp{--match-length} directly to achieve optimal performance. + +If several compression levels or @samp{-s} or @samp{-m} options are +given, the last setting is used. For example @w{@samp{-9 -s64MiB}} is +equivalent to @w{@samp{-s64MiB -m273}} + +@multitable {Level} {Dictionary size (-s)} {Match length limit (-m)} +@item Level @tab Dictionary size (-s) @tab Match length limit (-m) +@item -0 @tab 64 KiB @tab 16 bytes +@item -1 @tab 1 MiB @tab 5 bytes +@item -2 @tab 1.5 MiB @tab 6 bytes +@item -3 @tab 2 MiB @tab 8 bytes +@item -4 @tab 3 MiB @tab 12 bytes +@item -5 @tab 4 MiB @tab 20 bytes +@item -6 @tab 8 MiB @tab 36 bytes +@item -7 @tab 16 MiB @tab 68 bytes +@item -8 @tab 24 MiB @tab 132 bytes +@item -9 @tab 32 MiB @tab 273 bytes +@end multitable + +@item --fast +@itemx --best +Aliases for GNU gzip compatibility. + +@item --loose-trailing +When decompressing or testing, allow trailing data whose first bytes are +so similar to the magic bytes of a lzip header that they can be confused +with a corrupt header. Use this option if a file triggers a "corrupt +header" error and the cause is not indeed a corrupt header. + +@item --check-lib +Compare the @uref{#Library-version,,version of lzlib} used to compile +minilzip with the version actually being used and exit. Report any +differences found. Exit with error status 1 if differences are found. A +mismatch may indicate that lzlib is not correctly installed or that a +different version of lzlib has been installed after compiling the shared +version of minilzip. @w{@samp{minilzip -v --check-lib}} shows the version of +lzlib being used and the value of @samp{LZ_API_VERSION} (if defined). +@ifnothtml +@xref{Library version}. +@end ifnothtml + +@end table + +Numbers given as arguments to options may be followed by a multiplier +and an optional @samp{B} for "byte". + +Table of SI and binary prefixes (unit multipliers): + +@multitable {Prefix} {kilobyte (10^3 = 1000)} {|} {Prefix} {kibibyte (2^10 = 1024)} +@item Prefix @tab Value @tab | @tab Prefix @tab Value +@item k @tab kilobyte (10^3 = 1000) @tab | @tab Ki @tab kibibyte (2^10 = 1024) +@item M @tab megabyte (10^6) @tab | @tab Mi @tab mebibyte (2^20) +@item G @tab gigabyte (10^9) @tab | @tab Gi @tab gibibyte (2^30) +@item T @tab terabyte (10^12) @tab | @tab Ti @tab tebibyte (2^40) +@item P @tab petabyte (10^15) @tab | @tab Pi @tab pebibyte (2^50) +@item E @tab exabyte (10^18) @tab | @tab Ei @tab exbibyte (2^60) +@item Z @tab zettabyte (10^21) @tab | @tab Zi @tab zebibyte (2^70) +@item Y @tab yottabyte (10^24) @tab | @tab Yi @tab yobibyte (2^80) +@end multitable + +@sp 1 +Exit status: 0 for a normal exit, 1 for environmental problems (file not +found, invalid flags, I/O errors, etc), 2 to indicate a corrupt or +invalid input file, 3 for an internal consistency error (eg, bug) which +caused minilzip to panic. + + +@node Data format +@chapter Data format +@cindex data format + +Perfection is reached, not when there is no longer anything to add, but +when there is no longer anything to take away.@* +--- Antoine de Saint-Exupery + +@sp 1 +In the diagram below, a box like this: + +@verbatim ++---+ +| | <-- the vertical bars might be missing ++---+ +@end verbatim + +represents one byte; a box like this: + +@verbatim ++==============+ +| | ++==============+ +@end verbatim + +represents a variable number of bytes. + +@sp 1 +A lzip data stream consists of a series of "members" (compressed data sets). +The members simply appear one after another in the data stream, with no +additional information before, between, or after them. + +Each member has the following structure: + +@verbatim ++--+--+--+--+----+----+=============+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| ID string | VN | DS | LZMA stream | CRC32 | Data size | Member size | ++--+--+--+--+----+----+=============+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +@end verbatim + +All multibyte values are stored in little endian order. + +@table @samp +@item ID string (the "magic" bytes) +A four byte string, identifying the lzip format, with the value "LZIP" +(0x4C, 0x5A, 0x49, 0x50). + +@item VN (version number, 1 byte) +Just in case something needs to be modified in the future. 1 for now. + +@anchor{coded-dict-size} +@item DS (coded dictionary size, 1 byte) +The dictionary size is calculated by taking a power of 2 (the base size) +and subtracting from it a fraction between 0/16 and 7/16 of the base size.@* +Bits 4-0 contain the base 2 logarithm of the base size (12 to 29).@* +Bits 7-5 contain the numerator of the fraction (0 to 7) to subtract +from the base size to obtain the dictionary size.@* +Example: 0xD3 = 2^19 - 6 * 2^15 = 512 KiB - 6 * 32 KiB = 320 KiB@* +Valid values for dictionary size range from 4 KiB to 512 MiB. + +@item LZMA stream +The LZMA stream, finished by an end of stream marker. Uses default values +for encoder properties. +@ifnothtml +@xref{Stream format,,,lzip}, +@end ifnothtml +@ifhtml +See +@uref{http://www.nongnu.org/lzip/manual/lzip_manual.html#Stream-format,,Stream format} +@end ifhtml +for a complete description.@* +Lzip only uses the LZMA marker @samp{2} ("End Of Stream" marker). Lzlib +also uses the LZMA marker @samp{3} ("Sync Flush" marker). @xref{sync_flush}. + +@item CRC32 (4 bytes) +Cyclic Redundancy Check (CRC) of the uncompressed original data. + +@item Data size (8 bytes) +Size of the uncompressed original data. + +@item Member size (8 bytes) +Total size of the member, including header and trailer. This field acts +as a distributed index, allows the verification of stream integrity, and +facilitates safe recovery of undamaged members from multimember files. + +@end table + + +@node Examples +@chapter A small tutorial with examples +@cindex examples + +This chapter provides real code examples for the most common uses of the +library. See these examples in context in the files @samp{bbexample.c} and +@samp{ffexample.c} from the source distribution of lzlib. + +Note that the interface of lzlib is symmetrical. That is, the code for +normal compression and decompression is identical except because one calls +LZ_compress* functions while the other calls LZ_decompress* functions. + +@menu +* Buffer compression:: Buffer-to-buffer single-member compression +* Buffer decompression:: Buffer-to-buffer decompression +* File compression:: File-to-file single-member compression +* File decompression:: File-to-file decompression +* File compression mm:: File-to-file multimember compression +* Skipping data errors:: Decompression with automatic resynchronization +@end menu + + +@node Buffer compression +@section Buffer compression +@cindex buffer compression + +Buffer-to-buffer single-member compression +@w{(@var{member_size} > total output)}. + +@verbatim +/* Compresses 'insize' bytes from 'inbuf' to 'outbuf'. + Returns the size of the compressed data in '*outlenp'. + In case of error, or if 'outsize' is too small, returns false and does + not modify '*outlenp'. +*/ +bool bbcompress( const uint8_t * const inbuf, const int insize, + const int dictionary_size, const int match_len_limit, + uint8_t * const outbuf, const int outsize, + int * const outlenp ) + { + int inpos = 0, outpos = 0; + bool error = false; + struct LZ_Encoder * const encoder = + LZ_compress_open( dictionary_size, match_len_limit, INT64_MAX ); + if( !encoder || LZ_compress_errno( encoder ) != LZ_ok ) + { LZ_compress_close( encoder ); return false; } + + while( true ) + { + int ret = LZ_compress_write( encoder, inbuf + inpos, insize - inpos ); + if( ret < 0 ) { error = true; break; } + inpos += ret; + if( inpos >= insize ) LZ_compress_finish( encoder ); + ret = LZ_compress_read( encoder, outbuf + outpos, outsize - outpos ); + if( ret < 0 ) { error = true; break; } + outpos += ret; + if( LZ_compress_finished( encoder ) == 1 ) break; + if( outpos >= outsize ) { error = true; break; } + } + + if( LZ_compress_close( encoder ) < 0 ) error = true; + if( error ) return false; + *outlenp = outpos; + return true; + } +@end verbatim + + +@node Buffer decompression +@section Buffer decompression +@cindex buffer decompression + +Buffer-to-buffer decompression. + +@verbatim +/* Decompresses 'insize' bytes from 'inbuf' to 'outbuf'. + Returns the size of the decompressed data in '*outlenp'. + In case of error, or if 'outsize' is too small, returns false and does + not modify '*outlenp'. +*/ +bool bbdecompress( const uint8_t * const inbuf, const int insize, + uint8_t * const outbuf, const int outsize, + int * const outlenp ) + { + int inpos = 0, outpos = 0; + bool error = false; + struct LZ_Decoder * const decoder = LZ_decompress_open(); + if( !decoder || LZ_decompress_errno( decoder ) != LZ_ok ) + { LZ_decompress_close( decoder ); return false; } + + while( true ) + { + int ret = LZ_decompress_write( decoder, inbuf + inpos, insize - inpos ); + if( ret < 0 ) { error = true; break; } + inpos += ret; + if( inpos >= insize ) LZ_decompress_finish( decoder ); + ret = LZ_decompress_read( decoder, outbuf + outpos, outsize - outpos ); + if( ret < 0 ) { error = true; break; } + outpos += ret; + if( LZ_decompress_finished( decoder ) == 1 ) break; + if( outpos >= outsize ) { error = true; break; } + } + + if( LZ_decompress_close( decoder ) < 0 ) error = true; + if( error ) return false; + *outlenp = outpos; + return true; + } +@end verbatim + + +@node File compression +@section File compression +@cindex file compression + +File-to-file compression using LZ_compress_write_size. + +@verbatim +int ffcompress( struct LZ_Encoder * const encoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_compress_write_size( encoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_compress_write( encoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_compress_finish( encoder ); + } + ret = LZ_compress_read( encoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_compress_finished( encoder ) == 1 ) return 0; + } + return 1; + } +@end verbatim + + +@node File decompression +@section File decompression +@cindex file decompression + +File-to-file decompression using LZ_decompress_write_size. + +@verbatim +int ffdecompress( struct LZ_Decoder * const decoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_decompress_write_size( decoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_decompress_write( decoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_decompress_finish( decoder ); + } + ret = LZ_decompress_read( decoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_decompress_finished( decoder ) == 1 ) return 0; + } + return 1; + } +@end verbatim + + +@node File compression mm +@section File-to-file multimember compression +@cindex multimember compression + +Example 1: Multimember compression with members of fixed size +@w{(@var{member_size} < total output)}. + +@verbatim +int ffmmcompress( FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384, member_size = 4096 }; + uint8_t buffer[buffer_size]; + bool done = false; + struct LZ_Encoder * const encoder = + LZ_compress_open( 65535, 16, member_size ); + if( !encoder || LZ_compress_errno( encoder ) != LZ_ok ) + { fputs( "ffexample: Not enough memory.\n", stderr ); + LZ_compress_close( encoder ); return 1; } + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_compress_write_size( encoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_compress_write( encoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_compress_finish( encoder ); + } + ret = LZ_compress_read( encoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_compress_member_finished( encoder ) == 1 ) + { + if( LZ_compress_finished( encoder ) == 1 ) { done = true; break; } + if( LZ_compress_restart_member( encoder, member_size ) < 0 ) break; + } + } + if( LZ_compress_close( encoder ) < 0 ) done = false; + return done; + } +@end verbatim + +@sp 1 +@noindent +Example 2: Multimember compression (user-restarted members). +(Call LZ_compress_open with @var{member_size} > largest member). + +@verbatim +/* Compresses 'infile' to 'outfile' as a multimember stream with one member + for each line of text terminated by a newline character or by EOF. + Returns 0 if success, 1 if error. +*/ +int fflfcompress( struct LZ_Encoder * const encoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_compress_write_size( encoder ) ); + if( size > 0 ) + { + for( len = 0; len < size; ) + { + int ch = getc( infile ); + if( ch == EOF || ( buffer[len++] = ch ) == '\n' ) break; + } + /* avoid writing an empty member to outfile */ + if( len == 0 && LZ_compress_data_position( encoder ) == 0 ) return 0; + ret = LZ_compress_write( encoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) || buffer[len-1] == '\n' ) + LZ_compress_finish( encoder ); + } + ret = LZ_compress_read( encoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_compress_member_finished( encoder ) == 1 ) + { + if( feof( infile ) && LZ_compress_finished( encoder ) == 1 ) return 0; + if( LZ_compress_restart_member( encoder, INT64_MAX ) < 0 ) break; + } + } + return 1; + } +@end verbatim + + +@node Skipping data errors +@section Skipping data errors +@cindex skipping data errors + +@verbatim +/* Decompresses 'infile' to 'outfile' with automatic resynchronization to + next member in case of data error, including the automatic removal of + leading garbage. +*/ +int ffrsdecompress( struct LZ_Decoder * const decoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_decompress_write_size( decoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_decompress_write( decoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_decompress_finish( decoder ); + } + ret = LZ_decompress_read( decoder, buffer, buffer_size ); + if( ret < 0 ) + { + if( LZ_decompress_errno( decoder ) == LZ_header_error || + LZ_decompress_errno( decoder ) == LZ_data_error ) + { LZ_decompress_sync_to_member( decoder ); continue; } + else break; + } + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_decompress_finished( decoder ) == 1 ) return 0; + } + return 1; + } +@end verbatim + + +@node Problems +@chapter Reporting bugs +@cindex bugs +@cindex getting help + +There are probably bugs in lzlib. There are certainly errors and +omissions in this manual. If you report them, they will get fixed. If +you don't, no one will ever know about them and they will remain unfixed +for all eternity, if not longer. + +If you find a bug in lzlib, please send electronic mail to +@email{lzip-bug@@nongnu.org}. Include the version number, which you can +find by running @w{@samp{minilzip --version}} or in +@samp{LZ_version_string} from @samp{lzlib.h}. + + +@node Concept index +@unnumbered Concept index + +@printindex cp + +@bye diff --git a/3rdparty/lzlib-1.12/doc/minilzip.1 b/3rdparty/lzlib-1.12/doc/minilzip.1 new file mode 100644 index 0000000..13a2d6d --- /dev/null +++ b/3rdparty/lzlib-1.12/doc/minilzip.1 @@ -0,0 +1,121 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16. +.TH MINILZIP "1" "January 2021" "minilzip 1.12" "User Commands" +.SH NAME +minilzip \- reduces the size of files +.SH SYNOPSIS +.B minilzip +[\fI\,options\/\fR] [\fI\,files\/\fR] +.SH DESCRIPTION +Minilzip is a test program for the compression library lzlib, fully +compatible with lzip 1.4 or newer. +.PP +Lzip is a lossless data compressor with a user interface similar to the one +of gzip or bzip2. Lzip uses a simplified form of the 'Lempel\-Ziv\-Markov +chain\-Algorithm' (LZMA) stream format, chosen to maximize safety and +interoperability. Lzip can compress about as fast as gzip (lzip \fB\-0\fR) or +compress most files more than bzip2 (lzip \fB\-9\fR). Decompression speed is +intermediate between gzip and bzip2. Lzip is better than gzip and bzip2 from +a data recovery perspective. Lzip has been designed, written, and tested +with great care to replace gzip and bzip2 as the standard general\-purpose +compressed format for unix\-like systems. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +display this help and exit +.TP +\fB\-V\fR, \fB\-\-version\fR +output version information and exit +.TP +\fB\-a\fR, \fB\-\-trailing\-error\fR +exit with error status if trailing data +.TP +\fB\-b\fR, \fB\-\-member\-size=\fR +set member size limit in bytes +.TP +\fB\-c\fR, \fB\-\-stdout\fR +write to standard output, keep input files +.TP +\fB\-d\fR, \fB\-\-decompress\fR +decompress +.TP +\fB\-f\fR, \fB\-\-force\fR +overwrite existing output files +.TP +\fB\-F\fR, \fB\-\-recompress\fR +force re\-compression of compressed files +.TP +\fB\-k\fR, \fB\-\-keep\fR +keep (don't delete) input files +.TP +\fB\-m\fR, \fB\-\-match\-length=\fR +set match length limit in bytes [36] +.TP +\fB\-o\fR, \fB\-\-output=\fR +write to , keep input files +.TP +\fB\-q\fR, \fB\-\-quiet\fR +suppress all messages +.TP +\fB\-s\fR, \fB\-\-dictionary\-size=\fR +set dictionary size limit in bytes [8 MiB] +.TP +\fB\-S\fR, \fB\-\-volume\-size=\fR +set volume size limit in bytes +.TP +\fB\-t\fR, \fB\-\-test\fR +test compressed file integrity +.TP +\fB\-v\fR, \fB\-\-verbose\fR +be verbose (a 2nd \fB\-v\fR gives more) +.TP +\fB\-0\fR .. \fB\-9\fR +set compression level [default 6] +.TP +\fB\-\-fast\fR +alias for \fB\-0\fR +.TP +\fB\-\-best\fR +alias for \fB\-9\fR +.TP +\fB\-\-loose\-trailing\fR +allow trailing data seeming corrupt header +.TP +\fB\-\-check\-lib\fR +compare version of lzlib.h with liblz.{a,so} +.PP +If no file names are given, or if a file is '\-', minilzip compresses or +decompresses from standard input to standard output. +Numbers may be followed by a multiplier: k = kB = 10^3 = 1000, +Ki = KiB = 2^10 = 1024, M = 10^6, Mi = 2^20, G = 10^9, Gi = 2^30, etc... +Dictionary sizes 12 to 29 are interpreted as powers of two, meaning 2^12 +to 2^29 bytes. +.PP +The bidimensional parameter space of LZMA can't be mapped to a linear +scale optimal for all files. If your files are large, very repetitive, +etc, you may need to use the options \fB\-\-dictionary\-size\fR and \fB\-\-match\-length\fR +directly to achieve optimal performance. +.PP +To extract all the files from archive 'foo.tar.lz', use the commands +\&'tar \fB\-xf\fR foo.tar.lz' or 'minilzip \fB\-cd\fR foo.tar.lz | tar \fB\-xf\fR \-'. +.PP +Exit status: 0 for a normal exit, 1 for environmental problems (file +not found, invalid flags, I/O errors, etc), 2 to indicate a corrupt or +invalid input file, 3 for an internal consistency error (eg, bug) which +caused minilzip to panic. +.PP +The ideas embodied in lzlib are due to (at least) the following people: +Abraham Lempel and Jacob Ziv (for the LZ algorithm), Andrey Markov (for the +definition of Markov chains), G.N.N. Martin (for the definition of range +encoding), Igor Pavlov (for putting all the above together in LZMA), and +Julian Seward (for bzip2's CLI). +.SH "REPORTING BUGS" +Report bugs to lzip\-bug@nongnu.org +.br +Lzlib home page: http://www.nongnu.org/lzip/lzlib.html +.SH COPYRIGHT +Copyright \(co 2021 Antonio Diaz Diaz. +Using lzlib 1.12 +License GPLv2+: GNU GPL version 2 or later +.br +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. diff --git a/3rdparty/lzlib-1.12/encoder.c b/3rdparty/lzlib-1.12/encoder.c new file mode 100644 index 0000000..600a444 --- /dev/null +++ b/3rdparty/lzlib-1.12/encoder.c @@ -0,0 +1,601 @@ +/* Lzlib - Compression library for the lzip format + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +static int LZe_get_match_pairs( struct LZ_encoder * const e, struct Pair * pairs ) + { + int32_t * ptr0 = e->eb.mb.pos_array + ( e->eb.mb.cyclic_pos << 1 ); + int32_t * ptr1 = ptr0 + 1; + int32_t * newptr; + int len = 0, len0 = 0, len1 = 0; + int maxlen = 3; /* only used if pairs != 0 */ + int num_pairs = 0; + const int pos1 = e->eb.mb.pos + 1; + const int min_pos = ( e->eb.mb.pos > e->eb.mb.dictionary_size ) ? + e->eb.mb.pos - e->eb.mb.dictionary_size : 0; + const uint8_t * const data = Mb_ptr_to_current_pos( &e->eb.mb ); + int count, key2, key3, key4, newpos1; + unsigned tmp; + int len_limit = e->match_len_limit; + + if( len_limit > Mb_available_bytes( &e->eb.mb ) ) + { + e->been_flushed = true; + len_limit = Mb_available_bytes( &e->eb.mb ); + if( len_limit < 4 ) { *ptr0 = *ptr1 = 0; return 0; } + } + + tmp = crc32[data[0]] ^ data[1]; + key2 = tmp & ( num_prev_positions2 - 1 ); + tmp ^= (unsigned)data[2] << 8; + key3 = num_prev_positions2 + ( tmp & ( num_prev_positions3 - 1 ) ); + key4 = num_prev_positions2 + num_prev_positions3 + + ( ( tmp ^ ( crc32[data[3]] << 5 ) ) & e->eb.mb.key4_mask ); + + if( pairs ) + { + const int np2 = e->eb.mb.prev_positions[key2]; + const int np3 = e->eb.mb.prev_positions[key3]; + if( np2 > min_pos && e->eb.mb.buffer[np2-1] == data[0] ) + { + pairs[0].dis = e->eb.mb.pos - np2; + pairs[0].len = maxlen = 2; + num_pairs = 1; + } + if( np2 != np3 && np3 > min_pos && e->eb.mb.buffer[np3-1] == data[0] ) + { + maxlen = 3; + pairs[num_pairs++].dis = e->eb.mb.pos - np3; + } + if( num_pairs > 0 ) + { + const int delta = pairs[num_pairs-1].dis + 1; + while( maxlen < len_limit && data[maxlen-delta] == data[maxlen] ) + ++maxlen; + pairs[num_pairs-1].len = maxlen; + if( maxlen < 3 ) maxlen = 3; + if( maxlen >= len_limit ) pairs = 0; /* done. now just skip */ + } + } + + e->eb.mb.prev_positions[key2] = pos1; + e->eb.mb.prev_positions[key3] = pos1; + newpos1 = e->eb.mb.prev_positions[key4]; + e->eb.mb.prev_positions[key4] = pos1; + + for( count = e->cycles; ; ) + { + int delta; + if( newpos1 <= min_pos || --count < 0 ) { *ptr0 = *ptr1 = 0; break; } + + if( e->been_flushed ) len = 0; + delta = pos1 - newpos1; + newptr = e->eb.mb.pos_array + + ( ( e->eb.mb.cyclic_pos - delta + + ( (e->eb.mb.cyclic_pos >= delta) ? 0 : e->eb.mb.dictionary_size + 1 ) ) << 1 ); + if( data[len-delta] == data[len] ) + { + while( ++len < len_limit && data[len-delta] == data[len] ) {} + if( pairs && maxlen < len ) + { + pairs[num_pairs].dis = delta - 1; + pairs[num_pairs].len = maxlen = len; + ++num_pairs; + } + if( len >= len_limit ) + { + *ptr0 = newptr[0]; + *ptr1 = newptr[1]; + break; + } + } + if( data[len-delta] < data[len] ) + { + *ptr0 = newpos1; + ptr0 = newptr + 1; + newpos1 = *ptr0; + len0 = len; if( len1 < len ) len = len1; + } + else + { + *ptr1 = newpos1; + ptr1 = newptr; + newpos1 = *ptr1; + len1 = len; if( len0 < len ) len = len0; + } + } + return num_pairs; + } + + +static void LZe_update_distance_prices( struct LZ_encoder * const e ) + { + int dis, len_state; + for( dis = start_dis_model; dis < modeled_distances; ++dis ) + { + const int dis_slot = dis_slots[dis]; + const int direct_bits = ( dis_slot >> 1 ) - 1; + const int base = ( 2 | ( dis_slot & 1 ) ) << direct_bits; + const int price = price_symbol_reversed( e->eb.bm_dis + ( base - dis_slot ), + dis - base, direct_bits ); + for( len_state = 0; len_state < len_states; ++len_state ) + e->dis_prices[len_state][dis] = price; + } + + for( len_state = 0; len_state < len_states; ++len_state ) + { + int * const dsp = e->dis_slot_prices[len_state]; + int * const dp = e->dis_prices[len_state]; + const Bit_model * const bmds = e->eb.bm_dis_slot[len_state]; + int slot = 0; + for( ; slot < end_dis_model; ++slot ) + dsp[slot] = price_symbol6( bmds, slot ); + for( ; slot < e->num_dis_slots; ++slot ) + dsp[slot] = price_symbol6( bmds, slot ) + + (((( slot >> 1 ) - 1 ) - dis_align_bits ) << price_shift_bits ); + + for( dis = 0; dis < start_dis_model; ++dis ) + dp[dis] = dsp[dis]; + for( ; dis < modeled_distances; ++dis ) + dp[dis] += dsp[dis_slots[dis]]; + } + } + + +/* Returns the number of bytes advanced (ahead). + trials[0]..trials[ahead-1] contain the steps to encode. + ( trials[0].dis4 == -1 ) means literal. + A match/rep longer or equal than match_len_limit finishes the sequence. +*/ +static int LZe_sequence_optimizer( struct LZ_encoder * const e, + const int reps[num_rep_distances], + const State state ) + { + int main_len, num_pairs, i, rep, num_trials, len; + int rep_index = 0, cur = 0; + int replens[num_rep_distances]; + + if( e->pending_num_pairs > 0 ) /* from previous call */ + { + num_pairs = e->pending_num_pairs; + e->pending_num_pairs = 0; + } + else + num_pairs = LZe_read_match_distances( e ); + main_len = ( num_pairs > 0 ) ? e->pairs[num_pairs-1].len : 0; + + for( i = 0; i < num_rep_distances; ++i ) + { + replens[i] = Mb_true_match_len( &e->eb.mb, 0, reps[i] + 1 ); + if( replens[i] > replens[rep_index] ) rep_index = i; + } + if( replens[rep_index] >= e->match_len_limit ) + { + e->trials[0].price = replens[rep_index]; + e->trials[0].dis4 = rep_index; + if( !LZe_move_and_update( e, replens[rep_index] ) ) return 0; + return replens[rep_index]; + } + + if( main_len >= e->match_len_limit ) + { + e->trials[0].price = main_len; + e->trials[0].dis4 = e->pairs[num_pairs-1].dis + num_rep_distances; + if( !LZe_move_and_update( e, main_len ) ) return 0; + return main_len; + } + + { + const int pos_state = Mb_data_position( &e->eb.mb ) & pos_state_mask; + const int match_price = price1( e->eb.bm_match[state][pos_state] ); + const int rep_match_price = match_price + price1( e->eb.bm_rep[state] ); + const uint8_t prev_byte = Mb_peek( &e->eb.mb, 1 ); + const uint8_t cur_byte = Mb_peek( &e->eb.mb, 0 ); + const uint8_t match_byte = Mb_peek( &e->eb.mb, reps[0] + 1 ); + + e->trials[1].price = price0( e->eb.bm_match[state][pos_state] ); + if( St_is_char( state ) ) + e->trials[1].price += LZeb_price_literal( &e->eb, prev_byte, cur_byte ); + else + e->trials[1].price += LZeb_price_matched( &e->eb, prev_byte, cur_byte, match_byte ); + e->trials[1].dis4 = -1; /* literal */ + + if( match_byte == cur_byte ) + Tr_update( &e->trials[1], rep_match_price + + LZeb_price_shortrep( &e->eb, state, pos_state ), 0, 0 ); + + num_trials = max( main_len, replens[rep_index] ); + + if( num_trials < min_match_len ) + { + e->trials[0].price = 1; + e->trials[0].dis4 = e->trials[1].dis4; + if( !Mb_move_pos( &e->eb.mb ) ) return 0; + return 1; + } + + e->trials[0].state = state; + for( i = 0; i < num_rep_distances; ++i ) + e->trials[0].reps[i] = reps[i]; + + for( len = min_match_len; len <= num_trials; ++len ) + e->trials[len].price = infinite_price; + + for( rep = 0; rep < num_rep_distances; ++rep ) + { + int price; + if( replens[rep] < min_match_len ) continue; + price = rep_match_price + LZeb_price_rep( &e->eb, rep, state, pos_state ); + for( len = min_match_len; len <= replens[rep]; ++len ) + Tr_update( &e->trials[len], price + + Lp_price( &e->rep_len_prices, len, pos_state ), rep, 0 ); + } + + if( main_len > replens[0] ) + { + const int normal_match_price = match_price + price0( e->eb.bm_rep[state] ); + int i = 0, len = max( replens[0] + 1, min_match_len ); + while( len > e->pairs[i].len ) ++i; + while( true ) + { + const int dis = e->pairs[i].dis; + Tr_update( &e->trials[len], normal_match_price + + LZe_price_pair( e, dis, len, pos_state ), + dis + num_rep_distances, 0 ); + if( ++len > e->pairs[i].len && ++i >= num_pairs ) break; + } + } + } + + while( true ) /* price optimization loop */ + { + struct Trial *cur_trial, *next_trial; + int newlen, pos_state, triable_bytes, len_limit; + int start_len = min_match_len; + int next_price, match_price, rep_match_price; + State cur_state; + uint8_t prev_byte, cur_byte, match_byte; + + if( !Mb_move_pos( &e->eb.mb ) ) return 0; + if( ++cur >= num_trials ) /* no more initialized trials */ + { + LZe_backward( e, cur ); + return cur; + } + + num_pairs = LZe_read_match_distances( e ); + newlen = ( num_pairs > 0 ) ? e->pairs[num_pairs-1].len : 0; + if( newlen >= e->match_len_limit ) + { + e->pending_num_pairs = num_pairs; + LZe_backward( e, cur ); + return cur; + } + + /* give final values to current trial */ + cur_trial = &e->trials[cur]; + { + const int dis4 = cur_trial->dis4; + int prev_index = cur_trial->prev_index; + const int prev_index2 = cur_trial->prev_index2; + + if( prev_index2 == single_step_trial ) + { + cur_state = e->trials[prev_index].state; + if( prev_index + 1 == cur ) /* len == 1 */ + { + if( dis4 == 0 ) cur_state = St_set_short_rep( cur_state ); + else cur_state = St_set_char( cur_state ); /* literal */ + } + else if( dis4 < num_rep_distances ) cur_state = St_set_rep( cur_state ); + else cur_state = St_set_match( cur_state ); + } + else + { + if( prev_index2 == dual_step_trial ) /* dis4 == 0 (rep0) */ + --prev_index; + else /* prev_index2 >= 0 */ + prev_index = prev_index2; + cur_state = St_set_char_rep(); + } + cur_trial->state = cur_state; + for( i = 0; i < num_rep_distances; ++i ) + cur_trial->reps[i] = e->trials[prev_index].reps[i]; + mtf_reps( dis4, cur_trial->reps ); /* literal is ignored */ + } + + pos_state = Mb_data_position( &e->eb.mb ) & pos_state_mask; + prev_byte = Mb_peek( &e->eb.mb, 1 ); + cur_byte = Mb_peek( &e->eb.mb, 0 ); + match_byte = Mb_peek( &e->eb.mb, cur_trial->reps[0] + 1 ); + + next_price = cur_trial->price + + price0( e->eb.bm_match[cur_state][pos_state] ); + if( St_is_char( cur_state ) ) + next_price += LZeb_price_literal( &e->eb, prev_byte, cur_byte ); + else + next_price += LZeb_price_matched( &e->eb, prev_byte, cur_byte, match_byte ); + + /* try last updates to next trial */ + next_trial = &e->trials[cur+1]; + + Tr_update( next_trial, next_price, -1, cur ); /* literal */ + + match_price = cur_trial->price + price1( e->eb.bm_match[cur_state][pos_state] ); + rep_match_price = match_price + price1( e->eb.bm_rep[cur_state] ); + + if( match_byte == cur_byte && next_trial->dis4 != 0 && + next_trial->prev_index2 == single_step_trial ) + { + const int price = rep_match_price + + LZeb_price_shortrep( &e->eb, cur_state, pos_state ); + if( price <= next_trial->price ) + { + next_trial->price = price; + next_trial->dis4 = 0; /* rep0 */ + next_trial->prev_index = cur; + } + } + + triable_bytes = + min( Mb_available_bytes( &e->eb.mb ), max_num_trials - 1 - cur ); + if( triable_bytes < min_match_len ) continue; + + len_limit = min( e->match_len_limit, triable_bytes ); + + /* try literal + rep0 */ + if( match_byte != cur_byte && next_trial->prev_index != cur ) + { + const uint8_t * const data = Mb_ptr_to_current_pos( &e->eb.mb ); + const int dis = cur_trial->reps[0] + 1; + const int limit = min( e->match_len_limit + 1, triable_bytes ); + int len = 1; + while( len < limit && data[len-dis] == data[len] ) ++len; + if( --len >= min_match_len ) + { + const int pos_state2 = ( pos_state + 1 ) & pos_state_mask; + const State state2 = St_set_char( cur_state ); + const int price = next_price + + price1( e->eb.bm_match[state2][pos_state2] ) + + price1( e->eb.bm_rep[state2] ) + + LZe_price_rep0_len( e, len, state2, pos_state2 ); + while( num_trials < cur + 1 + len ) + e->trials[++num_trials].price = infinite_price; + Tr_update2( &e->trials[cur+1+len], price, cur + 1 ); + } + } + + /* try rep distances */ + for( rep = 0; rep < num_rep_distances; ++rep ) + { + const uint8_t * const data = Mb_ptr_to_current_pos( &e->eb.mb ); + const int dis = cur_trial->reps[rep] + 1; + int price; + + if( data[0-dis] != data[0] || data[1-dis] != data[1] ) continue; + for( len = min_match_len; len < len_limit; ++len ) + if( data[len-dis] != data[len] ) break; + while( num_trials < cur + len ) + e->trials[++num_trials].price = infinite_price; + price = rep_match_price + LZeb_price_rep( &e->eb, rep, cur_state, pos_state ); + for( i = min_match_len; i <= len; ++i ) + Tr_update( &e->trials[cur+i], price + + Lp_price( &e->rep_len_prices, i, pos_state ), rep, cur ); + + if( rep == 0 ) start_len = len + 1; /* discard shorter matches */ + + /* try rep + literal + rep0 */ + { + int len2 = len + 1; + const int limit = min( e->match_len_limit + len2, triable_bytes ); + int pos_state2; + State state2; + while( len2 < limit && data[len2-dis] == data[len2] ) ++len2; + len2 -= len + 1; + if( len2 < min_match_len ) continue; + + pos_state2 = ( pos_state + len ) & pos_state_mask; + state2 = St_set_rep( cur_state ); + price += Lp_price( &e->rep_len_prices, len, pos_state ) + + price0( e->eb.bm_match[state2][pos_state2] ) + + LZeb_price_matched( &e->eb, data[len-1], data[len], data[len-dis] ); + pos_state2 = ( pos_state2 + 1 ) & pos_state_mask; + state2 = St_set_char( state2 ); + price += price1( e->eb.bm_match[state2][pos_state2] ) + + price1( e->eb.bm_rep[state2] ) + + LZe_price_rep0_len( e, len2, state2, pos_state2 ); + while( num_trials < cur + len + 1 + len2 ) + e->trials[++num_trials].price = infinite_price; + Tr_update3( &e->trials[cur+len+1+len2], price, rep, cur + len + 1, cur ); + } + } + + /* try matches */ + if( newlen >= start_len && newlen <= len_limit ) + { + int dis; + const int normal_match_price = match_price + + price0( e->eb.bm_rep[cur_state] ); + + while( num_trials < cur + newlen ) + e->trials[++num_trials].price = infinite_price; + + i = 0; + while( e->pairs[i].len < start_len ) ++i; + dis = e->pairs[i].dis; + for( len = start_len; ; ++len ) + { + int price = normal_match_price + LZe_price_pair( e, dis, len, pos_state ); + Tr_update( &e->trials[cur+len], price, dis + num_rep_distances, cur ); + + /* try match + literal + rep0 */ + if( len == e->pairs[i].len ) + { + const uint8_t * const data = Mb_ptr_to_current_pos( &e->eb.mb ); + const int dis2 = dis + 1; + int len2 = len + 1; + const int limit = min( e->match_len_limit + len2, triable_bytes ); + while( len2 < limit && data[len2-dis2] == data[len2] ) ++len2; + len2 -= len + 1; + if( len2 >= min_match_len ) + { + int pos_state2 = ( pos_state + len ) & pos_state_mask; + State state2 = St_set_match( cur_state ); + price += price0( e->eb.bm_match[state2][pos_state2] ) + + LZeb_price_matched( &e->eb, data[len-1], data[len], data[len-dis2] ); + pos_state2 = ( pos_state2 + 1 ) & pos_state_mask; + state2 = St_set_char( state2 ); + price += price1( e->eb.bm_match[state2][pos_state2] ) + + price1( e->eb.bm_rep[state2] ) + + LZe_price_rep0_len( e, len2, state2, pos_state2 ); + + while( num_trials < cur + len + 1 + len2 ) + e->trials[++num_trials].price = infinite_price; + Tr_update3( &e->trials[cur+len+1+len2], price, + dis + num_rep_distances, cur + len + 1, cur ); + } + if( ++i >= num_pairs ) break; + dis = e->pairs[i].dis; + } + } + } + } + } + + +static bool LZe_encode_member( struct LZ_encoder * const e ) + { + const bool best = ( e->match_len_limit > 12 ); + const int dis_price_count = best ? 1 : 512; + const int align_price_count = best ? 1 : dis_align_size; + const int price_count = ( e->match_len_limit > 36 ) ? 1013 : 4093; + int ahead, i; + State * const state = &e->eb.state; + + if( e->eb.member_finished ) return true; + if( Re_member_position( &e->eb.renc ) >= e->eb.member_size_limit ) + { LZeb_try_full_flush( &e->eb ); return true; } + + if( Mb_data_position( &e->eb.mb ) == 0 && + !Mb_data_finished( &e->eb.mb ) ) /* encode first byte */ + { + const uint8_t prev_byte = 0; + uint8_t cur_byte; + if( !Mb_enough_available_bytes( &e->eb.mb ) || + !Re_enough_free_bytes( &e->eb.renc ) ) return true; + cur_byte = Mb_peek( &e->eb.mb, 0 ); + Re_encode_bit( &e->eb.renc, &e->eb.bm_match[*state][0], 0 ); + LZeb_encode_literal( &e->eb, prev_byte, cur_byte ); + CRC32_update_byte( &e->eb.crc, cur_byte ); + LZe_get_match_pairs( e, 0 ); + if( !Mb_move_pos( &e->eb.mb ) ) return false; + } + + while( !Mb_data_finished( &e->eb.mb ) ) + { + if( !Mb_enough_available_bytes( &e->eb.mb ) || + !Re_enough_free_bytes( &e->eb.renc ) ) return true; + if( e->price_counter <= 0 && e->pending_num_pairs == 0 ) + { + e->price_counter = price_count; /* recalculate prices every these bytes */ + if( e->dis_price_counter <= 0 ) + { e->dis_price_counter = dis_price_count; LZe_update_distance_prices( e ); } + if( e->align_price_counter <= 0 ) + { + e->align_price_counter = align_price_count; + for( i = 0; i < dis_align_size; ++i ) + e->align_prices[i] = price_symbol_reversed( e->eb.bm_align, i, dis_align_bits ); + } + Lp_update_prices( &e->match_len_prices ); + Lp_update_prices( &e->rep_len_prices ); + } + + ahead = LZe_sequence_optimizer( e, e->eb.reps, *state ); + e->price_counter -= ahead; + + for( i = 0; ahead > 0; ) + { + const int pos_state = + ( Mb_data_position( &e->eb.mb ) - ahead ) & pos_state_mask; + const int len = e->trials[i].price; + int dis = e->trials[i].dis4; + + bool bit = ( dis < 0 ); + Re_encode_bit( &e->eb.renc, &e->eb.bm_match[*state][pos_state], !bit ); + if( bit ) /* literal byte */ + { + const uint8_t prev_byte = Mb_peek( &e->eb.mb, ahead + 1 ); + const uint8_t cur_byte = Mb_peek( &e->eb.mb, ahead ); + CRC32_update_byte( &e->eb.crc, cur_byte ); + if( St_is_char( *state ) ) + LZeb_encode_literal( &e->eb, prev_byte, cur_byte ); + else + { + const uint8_t match_byte = Mb_peek( &e->eb.mb, ahead + e->eb.reps[0] + 1 ); + LZeb_encode_matched( &e->eb, prev_byte, cur_byte, match_byte ); + } + *state = St_set_char( *state ); + } + else /* match or repeated match */ + { + CRC32_update_buf( &e->eb.crc, Mb_ptr_to_current_pos( &e->eb.mb ) - ahead, len ); + mtf_reps( dis, e->eb.reps ); + bit = ( dis < num_rep_distances ); + Re_encode_bit( &e->eb.renc, &e->eb.bm_rep[*state], bit ); + if( bit ) /* repeated match */ + { + bit = ( dis == 0 ); + Re_encode_bit( &e->eb.renc, &e->eb.bm_rep0[*state], !bit ); + if( bit ) + Re_encode_bit( &e->eb.renc, &e->eb.bm_len[*state][pos_state], len > 1 ); + else + { + Re_encode_bit( &e->eb.renc, &e->eb.bm_rep1[*state], dis > 1 ); + if( dis > 1 ) + Re_encode_bit( &e->eb.renc, &e->eb.bm_rep2[*state], dis > 2 ); + } + if( len == 1 ) *state = St_set_short_rep( *state ); + else + { + Re_encode_len( &e->eb.renc, &e->eb.rep_len_model, len, pos_state ); + Lp_decrement_counter( &e->rep_len_prices, pos_state ); + *state = St_set_rep( *state ); + } + } + else /* match */ + { + dis -= num_rep_distances; + LZeb_encode_pair( &e->eb, dis, len, pos_state ); + if( dis >= modeled_distances ) --e->align_price_counter; + --e->dis_price_counter; + Lp_decrement_counter( &e->match_len_prices, pos_state ); + *state = St_set_match( *state ); + } + } + ahead -= len; i += len; + if( Re_member_position( &e->eb.renc ) >= e->eb.member_size_limit ) + { + if( !Mb_dec_pos( &e->eb.mb, ahead ) ) return false; + LZeb_try_full_flush( &e->eb ); + return true; + } + } + } + LZeb_try_full_flush( &e->eb ); + return true; + } diff --git a/3rdparty/lzlib-1.12/encoder.h b/3rdparty/lzlib-1.12/encoder.h new file mode 100644 index 0000000..7a7ecaf --- /dev/null +++ b/3rdparty/lzlib-1.12/encoder.h @@ -0,0 +1,327 @@ +/* Lzlib - Compression library for the lzip format + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +struct Len_prices + { + const struct Len_model * lm; + int len_symbols; + int count; + int prices[pos_states][max_len_symbols]; + int counters[pos_states]; /* may decrement below 0 */ + }; + +static inline void Lp_update_low_mid_prices( struct Len_prices * const lp, + const int pos_state ) + { + int * const pps = lp->prices[pos_state]; + int tmp = price0( lp->lm->choice1 ); + int len = 0; + for( ; len < len_low_symbols && len < lp->len_symbols; ++len ) + pps[len] = tmp + price_symbol3( lp->lm->bm_low[pos_state], len ); + if( len >= lp->len_symbols ) return; + tmp = price1( lp->lm->choice1 ) + price0( lp->lm->choice2 ); + for( ; len < len_low_symbols + len_mid_symbols && len < lp->len_symbols; ++len ) + pps[len] = tmp + + price_symbol3( lp->lm->bm_mid[pos_state], len - len_low_symbols ); + } + +static inline void Lp_update_high_prices( struct Len_prices * const lp ) + { + const int tmp = price1( lp->lm->choice1 ) + price1( lp->lm->choice2 ); + int len; + for( len = len_low_symbols + len_mid_symbols; len < lp->len_symbols; ++len ) + /* using 4 slots per value makes "Lp_price" faster */ + lp->prices[3][len] = lp->prices[2][len] = + lp->prices[1][len] = lp->prices[0][len] = tmp + + price_symbol8( lp->lm->bm_high, len - len_low_symbols - len_mid_symbols ); + } + +static inline void Lp_reset( struct Len_prices * const lp ) + { int i; for( i = 0; i < pos_states; ++i ) lp->counters[i] = 0; } + +static inline void Lp_init( struct Len_prices * const lp, + const struct Len_model * const lm, + const int match_len_limit ) + { + lp->lm = lm; + lp->len_symbols = match_len_limit + 1 - min_match_len; + lp->count = ( match_len_limit > 12 ) ? 1 : lp->len_symbols; + Lp_reset( lp ); + } + +static inline void Lp_decrement_counter( struct Len_prices * const lp, + const int pos_state ) + { --lp->counters[pos_state]; } + +static inline void Lp_update_prices( struct Len_prices * const lp ) + { + int pos_state; + bool high_pending = false; + for( pos_state = 0; pos_state < pos_states; ++pos_state ) + if( lp->counters[pos_state] <= 0 ) + { lp->counters[pos_state] = lp->count; + Lp_update_low_mid_prices( lp, pos_state ); high_pending = true; } + if( high_pending && lp->len_symbols > len_low_symbols + len_mid_symbols ) + Lp_update_high_prices( lp ); + } + +static inline int Lp_price( const struct Len_prices * const lp, + const int len, const int pos_state ) + { return lp->prices[pos_state][len - min_match_len]; } + + +struct Pair /* distance-length pair */ + { + int dis; + int len; + }; + +enum { infinite_price = 0x0FFFFFFF, + max_num_trials = 1 << 13, + single_step_trial = -2, + dual_step_trial = -1 }; + +struct Trial + { + State state; + int price; /* dual use var; cumulative price, match length */ + int dis4; /* -1 for literal, or rep, or match distance + 4 */ + int prev_index; /* index of prev trial in trials[] */ + int prev_index2; /* -2 trial is single step */ + /* -1 literal + rep0 */ + /* >= 0 ( rep or match ) + literal + rep0 */ + int reps[num_rep_distances]; + }; + +static inline void Tr_update( struct Trial * const trial, const int pr, + const int distance4, const int p_i ) + { + if( pr < trial->price ) + { trial->price = pr; trial->dis4 = distance4; trial->prev_index = p_i; + trial->prev_index2 = single_step_trial; } + } + +static inline void Tr_update2( struct Trial * const trial, const int pr, + const int p_i ) + { + if( pr < trial->price ) + { trial->price = pr; trial->dis4 = 0; trial->prev_index = p_i; + trial->prev_index2 = dual_step_trial; } + } + +static inline void Tr_update3( struct Trial * const trial, const int pr, + const int distance4, const int p_i, + const int p_i2 ) + { + if( pr < trial->price ) + { trial->price = pr; trial->dis4 = distance4; trial->prev_index = p_i; + trial->prev_index2 = p_i2; } + } + + +struct LZ_encoder + { + struct LZ_encoder_base eb; + int cycles; + int match_len_limit; + struct Len_prices match_len_prices; + struct Len_prices rep_len_prices; + int pending_num_pairs; + struct Pair pairs[max_match_len+1]; + struct Trial trials[max_num_trials]; + + int dis_slot_prices[len_states][2*max_dictionary_bits]; + int dis_prices[len_states][modeled_distances]; + int align_prices[dis_align_size]; + int num_dis_slots; + int price_counter; /* counters may decrement below 0 */ + int dis_price_counter; + int align_price_counter; + bool been_flushed; + }; + +static inline bool Mb_dec_pos( struct Matchfinder_base * const mb, + const int ahead ) + { + if( ahead < 0 || mb->pos < ahead ) return false; + mb->pos -= ahead; + if( mb->cyclic_pos < ahead ) mb->cyclic_pos += mb->dictionary_size + 1; + mb->cyclic_pos -= ahead; + return true; + } + +static int LZe_get_match_pairs( struct LZ_encoder * const e, struct Pair * pairs ); + + /* move-to-front dis in/into reps; do nothing if( dis4 <= 0 ) */ +static inline void mtf_reps( const int dis4, int reps[num_rep_distances] ) + { + if( dis4 >= num_rep_distances ) /* match */ + { + reps[3] = reps[2]; reps[2] = reps[1]; reps[1] = reps[0]; + reps[0] = dis4 - num_rep_distances; + } + else if( dis4 > 0 ) /* repeated match */ + { + const int distance = reps[dis4]; + int i; for( i = dis4; i > 0; --i ) reps[i] = reps[i-1]; + reps[0] = distance; + } + } + +static inline int LZeb_price_shortrep( const struct LZ_encoder_base * const eb, + const State state, const int pos_state ) + { + return price0( eb->bm_rep0[state] ) + price0( eb->bm_len[state][pos_state] ); + } + +static inline int LZeb_price_rep( const struct LZ_encoder_base * const eb, + const int rep, const State state, + const int pos_state ) + { + int price; + if( rep == 0 ) return price0( eb->bm_rep0[state] ) + + price1( eb->bm_len[state][pos_state] ); + price = price1( eb->bm_rep0[state] ); + if( rep == 1 ) + price += price0( eb->bm_rep1[state] ); + else + { + price += price1( eb->bm_rep1[state] ); + price += price_bit( eb->bm_rep2[state], rep - 2 ); + } + return price; + } + +static inline int LZe_price_rep0_len( const struct LZ_encoder * const e, + const int len, const State state, + const int pos_state ) + { + return LZeb_price_rep( &e->eb, 0, state, pos_state ) + + Lp_price( &e->rep_len_prices, len, pos_state ); + } + +static inline int LZe_price_pair( const struct LZ_encoder * const e, + const int dis, const int len, + const int pos_state ) + { + const int price = Lp_price( &e->match_len_prices, len, pos_state ); + const int len_state = get_len_state( len ); + if( dis < modeled_distances ) + return price + e->dis_prices[len_state][dis]; + else + return price + e->dis_slot_prices[len_state][get_slot( dis )] + + e->align_prices[dis & (dis_align_size - 1)]; + } + +static inline int LZe_read_match_distances( struct LZ_encoder * const e ) + { + const int num_pairs = LZe_get_match_pairs( e, e->pairs ); + if( num_pairs > 0 ) + { + const int len = e->pairs[num_pairs-1].len; + if( len == e->match_len_limit && len < max_match_len ) + e->pairs[num_pairs-1].len = + Mb_true_match_len( &e->eb.mb, len, e->pairs[num_pairs-1].dis + 1 ); + } + return num_pairs; + } + +static inline bool LZe_move_and_update( struct LZ_encoder * const e, int n ) + { + while( true ) + { + if( !Mb_move_pos( &e->eb.mb ) ) return false; + if( --n <= 0 ) break; + LZe_get_match_pairs( e, 0 ); + } + return true; + } + +static inline void LZe_backward( struct LZ_encoder * const e, int cur ) + { + int dis4 = e->trials[cur].dis4; + while( cur > 0 ) + { + const int prev_index = e->trials[cur].prev_index; + struct Trial * const prev_trial = &e->trials[prev_index]; + + if( e->trials[cur].prev_index2 != single_step_trial ) + { + prev_trial->dis4 = -1; /* literal */ + prev_trial->prev_index = prev_index - 1; + prev_trial->prev_index2 = single_step_trial; + if( e->trials[cur].prev_index2 >= 0 ) + { + struct Trial * const prev_trial2 = &e->trials[prev_index-1]; + prev_trial2->dis4 = dis4; dis4 = 0; /* rep0 */ + prev_trial2->prev_index = e->trials[cur].prev_index2; + prev_trial2->prev_index2 = single_step_trial; + } + } + prev_trial->price = cur - prev_index; /* len */ + cur = dis4; dis4 = prev_trial->dis4; prev_trial->dis4 = cur; + cur = prev_index; + } + } + +enum { num_prev_positions3 = 1 << 16, + num_prev_positions2 = 1 << 10 }; + +static inline bool LZe_init( struct LZ_encoder * const e, + const int dict_size, const int len_limit, + const unsigned long long member_size ) + { + enum { before_size = max_num_trials, + /* bytes to keep in buffer after pos */ + after_size = max_num_trials + ( 2 * max_match_len ) + 1, + dict_factor = 2, + num_prev_positions23 = num_prev_positions2 + num_prev_positions3, + pos_array_factor = 2, + min_free_bytes = 2 * max_num_trials }; + + if( !LZeb_init( &e->eb, before_size, dict_size, after_size, dict_factor, + num_prev_positions23, pos_array_factor, min_free_bytes, + member_size ) ) return false; + e->cycles = ( len_limit < max_match_len ) ? 16 + ( len_limit / 2 ) : 256; + e->match_len_limit = len_limit; + Lp_init( &e->match_len_prices, &e->eb.match_len_model, e->match_len_limit ); + Lp_init( &e->rep_len_prices, &e->eb.rep_len_model, e->match_len_limit ); + e->pending_num_pairs = 0; + e->num_dis_slots = 2 * real_bits( e->eb.mb.dictionary_size - 1 ); + e->trials[1].prev_index = 0; + e->trials[1].prev_index2 = single_step_trial; + e->price_counter = 0; + e->dis_price_counter = 0; + e->align_price_counter = 0; + e->been_flushed = false; + return true; + } + +static inline void LZe_reset( struct LZ_encoder * const e, + const unsigned long long member_size ) + { + LZeb_reset( &e->eb, member_size ); + Lp_reset( &e->match_len_prices ); + Lp_reset( &e->rep_len_prices ); + e->pending_num_pairs = 0; + e->price_counter = 0; + e->dis_price_counter = 0; + e->align_price_counter = 0; + e->been_flushed = false; + } diff --git a/3rdparty/lzlib-1.12/encoder_base.c b/3rdparty/lzlib-1.12/encoder_base.c new file mode 100644 index 0000000..c1ef9ef --- /dev/null +++ b/3rdparty/lzlib-1.12/encoder_base.c @@ -0,0 +1,199 @@ +/* Lzlib - Compression library for the lzip format + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +static bool Mb_normalize_pos( struct Matchfinder_base * const mb ) + { + if( mb->pos > mb->stream_pos ) + { mb->pos = mb->stream_pos; return false; } + if( !mb->at_stream_end ) + { + int i; + /* offset is int32_t for the min below */ + const int32_t offset = mb->pos - mb->before_size - mb->dictionary_size; + const int size = mb->stream_pos - offset; + memmove( mb->buffer, mb->buffer + offset, size ); + mb->partial_data_pos += offset; + mb->pos -= offset; /* pos = before_size + dictionary_size */ + mb->stream_pos -= offset; + for( i = 0; i < mb->num_prev_positions; ++i ) + mb->prev_positions[i] -= min( mb->prev_positions[i], offset ); + for( i = 0; i < mb->pos_array_size; ++i ) + mb->pos_array[i] -= min( mb->pos_array[i], offset ); + } + return true; + } + + +static bool Mb_init( struct Matchfinder_base * const mb, const int before_size, + const int dict_size, const int after_size, + const int dict_factor, const int num_prev_positions23, + const int pos_array_factor ) + { + const int buffer_size_limit = + ( dict_factor * dict_size ) + before_size + after_size; + unsigned size; + int i; + + mb->partial_data_pos = 0; + mb->before_size = before_size; + mb->after_size = after_size; + mb->pos = 0; + mb->cyclic_pos = 0; + mb->stream_pos = 0; + mb->num_prev_positions23 = num_prev_positions23; + mb->at_stream_end = false; + mb->sync_flush_pending = false; + + mb->buffer_size = max( 65536, buffer_size_limit ); + mb->buffer = (uint8_t *)malloc( mb->buffer_size ); + if( !mb->buffer ) return false; + mb->saved_dictionary_size = dict_size; + mb->dictionary_size = dict_size; + mb->pos_limit = mb->buffer_size - after_size; + size = 1 << max( 16, real_bits( mb->dictionary_size - 1 ) - 2 ); + if( mb->dictionary_size > 1 << 26 ) /* 64 MiB */ + size >>= 1; + mb->key4_mask = size - 1; /* increases with dictionary size */ + size += num_prev_positions23; + mb->num_prev_positions = size; + + mb->pos_array_size = pos_array_factor * ( mb->dictionary_size + 1 ); + size += mb->pos_array_size; + if( size * sizeof mb->prev_positions[0] <= size ) mb->prev_positions = 0; + else mb->prev_positions = + (int32_t *)malloc( size * sizeof mb->prev_positions[0] ); + if( !mb->prev_positions ) { free( mb->buffer ); return false; } + mb->pos_array = mb->prev_positions + mb->num_prev_positions; + for( i = 0; i < mb->num_prev_positions; ++i ) mb->prev_positions[i] = 0; + return true; + } + + +static void Mb_adjust_array( struct Matchfinder_base * const mb ) + { + int size = 1 << max( 16, real_bits( mb->dictionary_size - 1 ) - 2 ); + if( mb->dictionary_size > 1 << 26 ) /* 64 MiB */ + size >>= 1; + mb->key4_mask = size - 1; + size += mb->num_prev_positions23; + mb->num_prev_positions = size; + mb->pos_array = mb->prev_positions + mb->num_prev_positions; + } + + +static void Mb_adjust_dictionary_size( struct Matchfinder_base * const mb ) + { + if( mb->stream_pos < mb->dictionary_size ) + { + mb->dictionary_size = max( min_dictionary_size, mb->stream_pos ); + Mb_adjust_array( mb ); + mb->pos_limit = mb->buffer_size; + } + } + + +static void Mb_reset( struct Matchfinder_base * const mb ) + { + int i; + if( mb->stream_pos > mb->pos ) + memmove( mb->buffer, mb->buffer + mb->pos, mb->stream_pos - mb->pos ); + mb->partial_data_pos = 0; + mb->stream_pos -= mb->pos; + mb->pos = 0; + mb->cyclic_pos = 0; + mb->at_stream_end = false; + mb->sync_flush_pending = false; + mb->dictionary_size = mb->saved_dictionary_size; + Mb_adjust_array( mb ); + mb->pos_limit = mb->buffer_size - mb->after_size; + for( i = 0; i < mb->num_prev_positions; ++i ) mb->prev_positions[i] = 0; + } + + +/* End Of Stream marker => (dis == 0xFFFFFFFFU, len == min_match_len) */ +static void LZeb_try_full_flush( struct LZ_encoder_base * const eb ) + { + int i; + const int pos_state = Mb_data_position( &eb->mb ) & pos_state_mask; + const State state = eb->state; + Lzip_trailer trailer; + if( eb->member_finished || + Cb_free_bytes( &eb->renc.cb ) < max_marker_size + eb->renc.ff_count + Lt_size ) + return; + eb->member_finished = true; + Re_encode_bit( &eb->renc, &eb->bm_match[state][pos_state], 1 ); + Re_encode_bit( &eb->renc, &eb->bm_rep[state], 0 ); + LZeb_encode_pair( eb, 0xFFFFFFFFU, min_match_len, pos_state ); + Re_flush( &eb->renc ); + Lt_set_data_crc( trailer, LZeb_crc( eb ) ); + Lt_set_data_size( trailer, Mb_data_position( &eb->mb ) ); + Lt_set_member_size( trailer, Re_member_position( &eb->renc ) + Lt_size ); + for( i = 0; i < Lt_size; ++i ) + Cb_put_byte( &eb->renc.cb, trailer[i] ); + } + + +/* Sync Flush marker => (dis == 0xFFFFFFFFU, len == min_match_len + 1) */ +static void LZeb_try_sync_flush( struct LZ_encoder_base * const eb ) + { + const int pos_state = Mb_data_position( &eb->mb ) & pos_state_mask; + const State state = eb->state; + const unsigned min_size = eb->renc.ff_count + max_marker_size; + if( eb->member_finished || + Cb_free_bytes( &eb->renc.cb ) < min_size + max_marker_size ) return; + eb->mb.sync_flush_pending = false; + const unsigned long long old_mpos = Re_member_position( &eb->renc ); + do { /* size of markers must be >= rd_min_available_bytes + 5 */ + Re_encode_bit( &eb->renc, &eb->bm_match[state][pos_state], 1 ); + Re_encode_bit( &eb->renc, &eb->bm_rep[state], 0 ); + LZeb_encode_pair( eb, 0xFFFFFFFFU, min_match_len + 1, pos_state ); + Re_flush( &eb->renc ); + } + while( Re_member_position( &eb->renc ) - old_mpos < min_size ); + } + + +static void LZeb_reset( struct LZ_encoder_base * const eb, + const unsigned long long member_size ) + { + const unsigned long long min_member_size = min_dictionary_size; + const unsigned long long max_member_size = 0x0008000000000000ULL; /* 2 PiB */ + int i; + Mb_reset( &eb->mb ); + eb->member_size_limit = + min( max( min_member_size, member_size ), max_member_size ) - + Lt_size - max_marker_size; + eb->crc = 0xFFFFFFFFU; + Bm_array_init( eb->bm_literal[0], (1 << literal_context_bits) * 0x300 ); + Bm_array_init( eb->bm_match[0], states * pos_states ); + Bm_array_init( eb->bm_rep, states ); + Bm_array_init( eb->bm_rep0, states ); + Bm_array_init( eb->bm_rep1, states ); + Bm_array_init( eb->bm_rep2, states ); + Bm_array_init( eb->bm_len[0], states * pos_states ); + Bm_array_init( eb->bm_dis_slot[0], len_states * (1 << dis_slot_bits) ); + Bm_array_init( eb->bm_dis, modeled_distances - end_dis_model + 1 ); + Bm_array_init( eb->bm_align, dis_align_size ); + Lm_init( &eb->match_len_model ); + Lm_init( &eb->rep_len_model ); + Re_reset( &eb->renc, eb->mb.dictionary_size ); + for( i = 0; i < num_rep_distances; ++i ) eb->reps[i] = 0; + eb->state = 0; + eb->member_finished = false; + } diff --git a/3rdparty/lzlib-1.12/encoder_base.h b/3rdparty/lzlib-1.12/encoder_base.h new file mode 100644 index 0000000..e727a7d --- /dev/null +++ b/3rdparty/lzlib-1.12/encoder_base.h @@ -0,0 +1,618 @@ +/* Lzlib - Compression library for the lzip format + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +enum { price_shift_bits = 6, + price_step_bits = 2 }; + +static const uint8_t dis_slots[1<<10] = + { + 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, + 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19 }; + +static inline uint8_t get_slot( const unsigned dis ) + { + if( dis < (1 << 10) ) return dis_slots[dis]; + if( dis < (1 << 19) ) return dis_slots[dis>> 9] + 18; + if( dis < (1 << 28) ) return dis_slots[dis>>18] + 36; + return dis_slots[dis>>27] + 54; + } + + +static const short prob_prices[bit_model_total >> price_step_bits] = +{ +640, 539, 492, 461, 438, 419, 404, 390, 379, 369, 359, 351, 343, 336, 330, 323, +318, 312, 307, 302, 298, 293, 289, 285, 281, 277, 274, 270, 267, 264, 261, 258, +255, 252, 250, 247, 244, 242, 239, 237, 235, 232, 230, 228, 226, 224, 222, 220, +218, 216, 214, 213, 211, 209, 207, 206, 204, 202, 201, 199, 198, 196, 195, 193, +192, 190, 189, 188, 186, 185, 184, 182, 181, 180, 178, 177, 176, 175, 174, 172, +171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 159, 158, 157, 157, 156, +155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 145, 144, 143, 142, 141, +140, 140, 139, 138, 137, 136, 136, 135, 134, 133, 133, 132, 131, 130, 130, 129, +128, 127, 127, 126, 125, 125, 124, 123, 123, 122, 121, 121, 120, 119, 119, 118, +117, 117, 116, 115, 115, 114, 114, 113, 112, 112, 111, 111, 110, 109, 109, 108, +108, 107, 106, 106, 105, 105, 104, 104, 103, 103, 102, 101, 101, 100, 100, 99, + 99, 98, 98, 97, 97, 96, 96, 95, 95, 94, 94, 93, 93, 92, 92, 91, + 91, 90, 90, 89, 89, 88, 88, 88, 87, 87, 86, 86, 85, 85, 84, 84, + 83, 83, 83, 82, 82, 81, 81, 80, 80, 80, 79, 79, 78, 78, 77, 77, + 77, 76, 76, 75, 75, 75, 74, 74, 73, 73, 73, 72, 72, 71, 71, 71, + 70, 70, 70, 69, 69, 68, 68, 68, 67, 67, 67, 66, 66, 65, 65, 65, + 64, 64, 64, 63, 63, 63, 62, 62, 61, 61, 61, 60, 60, 60, 59, 59, + 59, 58, 58, 58, 57, 57, 57, 56, 56, 56, 55, 55, 55, 54, 54, 54, + 53, 53, 53, 53, 52, 52, 52, 51, 51, 51, 50, 50, 50, 49, 49, 49, + 48, 48, 48, 48, 47, 47, 47, 46, 46, 46, 45, 45, 45, 45, 44, 44, + 44, 43, 43, 43, 43, 42, 42, 42, 41, 41, 41, 41, 40, 40, 40, 40, + 39, 39, 39, 38, 38, 38, 38, 37, 37, 37, 37, 36, 36, 36, 35, 35, + 35, 35, 34, 34, 34, 34, 33, 33, 33, 33, 32, 32, 32, 32, 31, 31, + 31, 31, 30, 30, 30, 30, 29, 29, 29, 29, 28, 28, 28, 28, 27, 27, + 27, 27, 26, 26, 26, 26, 26, 25, 25, 25, 25, 24, 24, 24, 24, 23, + 23, 23, 23, 22, 22, 22, 22, 22, 21, 21, 21, 21, 20, 20, 20, 20, + 20, 19, 19, 19, 19, 18, 18, 18, 18, 18, 17, 17, 17, 17, 17, 16, + 16, 16, 16, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 13, 13, 13, + 13, 13, 12, 12, 12, 12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 10, + 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, + 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, + 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1 }; + +static inline int get_price( const int probability ) + { return prob_prices[probability >> price_step_bits]; } + + +static inline int price0( const Bit_model probability ) + { return get_price( probability ); } + +static inline int price1( const Bit_model probability ) + { return get_price( bit_model_total - probability ); } + +static inline int price_bit( const Bit_model bm, const bool bit ) + { return ( bit ? price1( bm ) : price0( bm ) ); } + + +static inline int price_symbol3( const Bit_model bm[], int symbol ) + { + int price; + bool bit = symbol & 1; + symbol |= 8; symbol >>= 1; + price = price_bit( bm[symbol], bit ); + bit = symbol & 1; symbol >>= 1; price += price_bit( bm[symbol], bit ); + return price + price_bit( bm[1], symbol & 1 ); + } + + +static inline int price_symbol6( const Bit_model bm[], unsigned symbol ) + { + int price; + bool bit = symbol & 1; + symbol |= 64; symbol >>= 1; + price = price_bit( bm[symbol], bit ); + bit = symbol & 1; symbol >>= 1; price += price_bit( bm[symbol], bit ); + bit = symbol & 1; symbol >>= 1; price += price_bit( bm[symbol], bit ); + bit = symbol & 1; symbol >>= 1; price += price_bit( bm[symbol], bit ); + bit = symbol & 1; symbol >>= 1; price += price_bit( bm[symbol], bit ); + return price + price_bit( bm[1], symbol & 1 ); + } + + +static inline int price_symbol8( const Bit_model bm[], int symbol ) + { + int price; + bool bit = symbol & 1; + symbol |= 0x100; symbol >>= 1; + price = price_bit( bm[symbol], bit ); + bit = symbol & 1; symbol >>= 1; price += price_bit( bm[symbol], bit ); + bit = symbol & 1; symbol >>= 1; price += price_bit( bm[symbol], bit ); + bit = symbol & 1; symbol >>= 1; price += price_bit( bm[symbol], bit ); + bit = symbol & 1; symbol >>= 1; price += price_bit( bm[symbol], bit ); + bit = symbol & 1; symbol >>= 1; price += price_bit( bm[symbol], bit ); + bit = symbol & 1; symbol >>= 1; price += price_bit( bm[symbol], bit ); + return price + price_bit( bm[1], symbol & 1 ); + } + + +static inline int price_symbol_reversed( const Bit_model bm[], int symbol, + const int num_bits ) + { + int price = 0; + int model = 1; + int i; + for( i = num_bits; i > 0; --i ) + { + const bool bit = symbol & 1; + symbol >>= 1; + price += price_bit( bm[model], bit ); + model <<= 1; model |= bit; + } + return price; + } + + +static inline int price_matched( const Bit_model bm[], unsigned symbol, + unsigned match_byte ) + { + int price = 0; + unsigned mask = 0x100; + symbol |= mask; + while( true ) + { + const unsigned match_bit = ( match_byte <<= 1 ) & mask; + const bool bit = ( symbol <<= 1 ) & 0x100; + price += price_bit( bm[(symbol>>9)+match_bit+mask], bit ); + if( symbol >= 0x10000 ) return price; + mask &= ~(match_bit ^ symbol); /* if( match_bit != bit ) mask = 0; */ + } + } + + +struct Matchfinder_base + { + unsigned long long partial_data_pos; + uint8_t * buffer; /* input buffer */ + int32_t * prev_positions; /* 1 + last seen position of key. else 0 */ + int32_t * pos_array; /* may be tree or chain */ + int before_size; /* bytes to keep in buffer before dictionary */ + int after_size; /* bytes to keep in buffer after pos */ + int buffer_size; + int dictionary_size; /* bytes to keep in buffer before pos */ + int pos; /* current pos in buffer */ + int cyclic_pos; /* cycles through [0, dictionary_size] */ + int stream_pos; /* first byte not yet read from file */ + int pos_limit; /* when reached, a new block must be read */ + int key4_mask; + int num_prev_positions23; + int num_prev_positions; /* size of prev_positions */ + int pos_array_size; + int saved_dictionary_size; /* dictionary_size restored by Mb_reset */ + bool at_stream_end; /* stream_pos shows real end of file */ + bool sync_flush_pending; + }; + +static bool Mb_normalize_pos( struct Matchfinder_base * const mb ); + +static bool Mb_init( struct Matchfinder_base * const mb, const int before_size, + const int dict_size, const int after_size, + const int dict_factor, const int num_prev_positions23, + const int pos_array_factor ); + +static inline void Mb_free( struct Matchfinder_base * const mb ) + { free( mb->prev_positions ); free( mb->buffer ); } + +static inline uint8_t Mb_peek( const struct Matchfinder_base * const mb, + const int distance ) + { return mb->buffer[mb->pos-distance]; } + +static inline int Mb_available_bytes( const struct Matchfinder_base * const mb ) + { return mb->stream_pos - mb->pos; } + +static inline unsigned long long +Mb_data_position( const struct Matchfinder_base * const mb ) + { return mb->partial_data_pos + mb->pos; } + +static inline void Mb_finish( struct Matchfinder_base * const mb ) + { mb->at_stream_end = true; mb->sync_flush_pending = false; } + +static inline bool Mb_data_finished( const struct Matchfinder_base * const mb ) + { return mb->at_stream_end && mb->pos >= mb->stream_pos; } + +static inline bool Mb_flushing_or_end( const struct Matchfinder_base * const mb ) + { return mb->at_stream_end || mb->sync_flush_pending; } + +static inline int Mb_free_bytes( const struct Matchfinder_base * const mb ) + { if( Mb_flushing_or_end( mb ) ) return 0; + return mb->buffer_size - mb->stream_pos; } + +static inline bool +Mb_enough_available_bytes( const struct Matchfinder_base * const mb ) + { return ( mb->pos + mb->after_size <= mb->stream_pos || + ( Mb_flushing_or_end( mb ) && mb->pos < mb->stream_pos ) ); } + +static inline const uint8_t * +Mb_ptr_to_current_pos( const struct Matchfinder_base * const mb ) + { return mb->buffer + mb->pos; } + +static int Mb_write_data( struct Matchfinder_base * const mb, + const uint8_t * const inbuf, const int size ) + { + const int sz = min( mb->buffer_size - mb->stream_pos, size ); + if( Mb_flushing_or_end( mb ) || sz <= 0 ) return 0; + memcpy( mb->buffer + mb->stream_pos, inbuf, sz ); + mb->stream_pos += sz; + return sz; + } + +static inline int Mb_true_match_len( const struct Matchfinder_base * const mb, + const int index, const int distance ) + { + const uint8_t * const data = mb->buffer + mb->pos; + int i = index; + const int len_limit = min( Mb_available_bytes( mb ), max_match_len ); + while( i < len_limit && data[i-distance] == data[i] ) ++i; + return i; + } + +static inline bool Mb_move_pos( struct Matchfinder_base * const mb ) + { + if( ++mb->cyclic_pos > mb->dictionary_size ) mb->cyclic_pos = 0; + if( ++mb->pos >= mb->pos_limit ) return Mb_normalize_pos( mb ); + return true; + } + + +struct Range_encoder + { + struct Circular_buffer cb; + unsigned min_free_bytes; + uint64_t low; + unsigned long long partial_member_pos; + uint32_t range; + unsigned ff_count; + uint8_t cache; + Lzip_header header; + }; + +static inline void Re_shift_low( struct Range_encoder * const renc ) + { + if( renc->low >> 24 != 0xFF ) + { + const bool carry = ( renc->low > 0xFFFFFFFFU ); + Cb_put_byte( &renc->cb, renc->cache + carry ); + for( ; renc->ff_count > 0; --renc->ff_count ) + Cb_put_byte( &renc->cb, 0xFF + carry ); + renc->cache = renc->low >> 24; + } + else ++renc->ff_count; + renc->low = ( renc->low & 0x00FFFFFFU ) << 8; + } + +static inline void Re_reset( struct Range_encoder * const renc, + const unsigned dictionary_size ) + { + int i; + Cb_reset( &renc->cb ); + renc->low = 0; + renc->partial_member_pos = 0; + renc->range = 0xFFFFFFFFU; + renc->ff_count = 0; + renc->cache = 0; + Lh_set_dictionary_size( renc->header, dictionary_size ); + for( i = 0; i < Lh_size; ++i ) + Cb_put_byte( &renc->cb, renc->header[i] ); + } + +static inline bool Re_init( struct Range_encoder * const renc, + const unsigned dictionary_size, + const unsigned min_free_bytes ) + { + if( !Cb_init( &renc->cb, 65536 + min_free_bytes ) ) return false; + renc->min_free_bytes = min_free_bytes; + Lh_set_magic( renc->header ); + Re_reset( renc, dictionary_size ); + return true; + } + +static inline void Re_free( struct Range_encoder * const renc ) + { Cb_free( &renc->cb ); } + +static inline unsigned long long +Re_member_position( const struct Range_encoder * const renc ) + { return renc->partial_member_pos + Cb_used_bytes( &renc->cb ) + renc->ff_count; } + +static inline bool Re_enough_free_bytes( const struct Range_encoder * const renc ) + { return Cb_free_bytes( &renc->cb ) >= renc->min_free_bytes + renc->ff_count; } + +static inline int Re_read_data( struct Range_encoder * const renc, + uint8_t * const out_buffer, const int out_size ) + { + const int size = Cb_read_data( &renc->cb, out_buffer, out_size ); + if( size > 0 ) renc->partial_member_pos += size; + return size; + } + +static inline void Re_flush( struct Range_encoder * const renc ) + { + int i; for( i = 0; i < 5; ++i ) Re_shift_low( renc ); + renc->low = 0; + renc->range = 0xFFFFFFFFU; + renc->ff_count = 0; + renc->cache = 0; + } + +static inline void Re_encode( struct Range_encoder * const renc, + const int symbol, const int num_bits ) + { + unsigned mask; + for( mask = 1 << ( num_bits - 1 ); mask > 0; mask >>= 1 ) + { + renc->range >>= 1; + if( symbol & mask ) renc->low += renc->range; + if( renc->range <= 0x00FFFFFFU ) + { renc->range <<= 8; Re_shift_low( renc ); } + } + } + +static inline void Re_encode_bit( struct Range_encoder * const renc, + Bit_model * const probability, const bool bit ) + { + const uint32_t bound = ( renc->range >> bit_model_total_bits ) * *probability; + if( !bit ) + { + renc->range = bound; + *probability += (bit_model_total - *probability) >> bit_model_move_bits; + } + else + { + renc->low += bound; + renc->range -= bound; + *probability -= *probability >> bit_model_move_bits; + } + if( renc->range <= 0x00FFFFFFU ) { renc->range <<= 8; Re_shift_low( renc ); } + } + +static inline void Re_encode_tree3( struct Range_encoder * const renc, + Bit_model bm[], const int symbol ) + { + int model; + bool bit = ( symbol >> 2 ) & 1; + Re_encode_bit( renc, &bm[1], bit ); + model = 2 | bit; + bit = ( symbol >> 1 ) & 1; + Re_encode_bit( renc, &bm[model], bit ); model <<= 1; model |= bit; + Re_encode_bit( renc, &bm[model], symbol & 1 ); + } + +static inline void Re_encode_tree6( struct Range_encoder * const renc, + Bit_model bm[], const unsigned symbol ) + { + int model; + bool bit = ( symbol >> 5 ) & 1; + Re_encode_bit( renc, &bm[1], bit ); + model = 2 | bit; + bit = ( symbol >> 4 ) & 1; + Re_encode_bit( renc, &bm[model], bit ); model <<= 1; model |= bit; + bit = ( symbol >> 3 ) & 1; + Re_encode_bit( renc, &bm[model], bit ); model <<= 1; model |= bit; + bit = ( symbol >> 2 ) & 1; + Re_encode_bit( renc, &bm[model], bit ); model <<= 1; model |= bit; + bit = ( symbol >> 1 ) & 1; + Re_encode_bit( renc, &bm[model], bit ); model <<= 1; model |= bit; + Re_encode_bit( renc, &bm[model], symbol & 1 ); + } + +static inline void Re_encode_tree8( struct Range_encoder * const renc, + Bit_model bm[], const int symbol ) + { + int model = 1; + int i; + for( i = 7; i >= 0; --i ) + { + const bool bit = ( symbol >> i ) & 1; + Re_encode_bit( renc, &bm[model], bit ); + model <<= 1; model |= bit; + } + } + +static inline void Re_encode_tree_reversed( struct Range_encoder * const renc, + Bit_model bm[], int symbol, const int num_bits ) + { + int model = 1; + int i; + for( i = num_bits; i > 0; --i ) + { + const bool bit = symbol & 1; + symbol >>= 1; + Re_encode_bit( renc, &bm[model], bit ); + model <<= 1; model |= bit; + } + } + +static inline void Re_encode_matched( struct Range_encoder * const renc, + Bit_model bm[], unsigned symbol, + unsigned match_byte ) + { + unsigned mask = 0x100; + symbol |= mask; + while( true ) + { + const unsigned match_bit = ( match_byte <<= 1 ) & mask; + const bool bit = ( symbol <<= 1 ) & 0x100; + Re_encode_bit( renc, &bm[(symbol>>9)+match_bit+mask], bit ); + if( symbol >= 0x10000 ) break; + mask &= ~(match_bit ^ symbol); /* if( match_bit != bit ) mask = 0; */ + } + } + +static inline void Re_encode_len( struct Range_encoder * const renc, + struct Len_model * const lm, + int symbol, const int pos_state ) + { + bool bit = ( ( symbol -= min_match_len ) >= len_low_symbols ); + Re_encode_bit( renc, &lm->choice1, bit ); + if( !bit ) + Re_encode_tree3( renc, lm->bm_low[pos_state], symbol ); + else + { + bit = ( ( symbol -= len_low_symbols ) >= len_mid_symbols ); + Re_encode_bit( renc, &lm->choice2, bit ); + if( !bit ) + Re_encode_tree3( renc, lm->bm_mid[pos_state], symbol ); + else + Re_encode_tree8( renc, lm->bm_high, symbol - len_mid_symbols ); + } + } + + +enum { max_marker_size = 16, + num_rep_distances = 4 }; /* must be 4 */ + +struct LZ_encoder_base + { + struct Matchfinder_base mb; + unsigned long long member_size_limit; + uint32_t crc; + + Bit_model bm_literal[1<mb, before_size, dict_size, after_size, dict_factor, + num_prev_positions23, pos_array_factor ) ) return false; + if( !Re_init( &eb->renc, eb->mb.dictionary_size, min_free_bytes ) ) + return false; + LZeb_reset( eb, member_size ); + return true; + } + +static inline bool LZeb_member_finished( const struct LZ_encoder_base * const eb ) + { return ( eb->member_finished && Cb_empty( &eb->renc.cb ) ); } + +static inline void LZeb_free( struct LZ_encoder_base * const eb ) + { Re_free( &eb->renc ); Mb_free( &eb->mb ); } + +static inline unsigned LZeb_crc( const struct LZ_encoder_base * const eb ) + { return eb->crc ^ 0xFFFFFFFFU; } + +static inline int LZeb_price_literal( const struct LZ_encoder_base * const eb, + const uint8_t prev_byte, const uint8_t symbol ) + { return price_symbol8( eb->bm_literal[get_lit_state(prev_byte)], symbol ); } + +static inline int LZeb_price_matched( const struct LZ_encoder_base * const eb, + const uint8_t prev_byte, const uint8_t symbol, const uint8_t match_byte ) + { return price_matched( eb->bm_literal[get_lit_state(prev_byte)], symbol, + match_byte ); } + +static inline void LZeb_encode_literal( struct LZ_encoder_base * const eb, + const uint8_t prev_byte, const uint8_t symbol ) + { Re_encode_tree8( &eb->renc, eb->bm_literal[get_lit_state(prev_byte)], + symbol ); } + +static inline void LZeb_encode_matched( struct LZ_encoder_base * const eb, + const uint8_t prev_byte, const uint8_t symbol, const uint8_t match_byte ) + { Re_encode_matched( &eb->renc, eb->bm_literal[get_lit_state(prev_byte)], + symbol, match_byte ); } + +static inline void LZeb_encode_pair( struct LZ_encoder_base * const eb, + const unsigned dis, const int len, + const int pos_state ) + { + const unsigned dis_slot = get_slot( dis ); + Re_encode_len( &eb->renc, &eb->match_len_model, len, pos_state ); + Re_encode_tree6( &eb->renc, eb->bm_dis_slot[get_len_state(len)], dis_slot ); + + if( dis_slot >= start_dis_model ) + { + const int direct_bits = ( dis_slot >> 1 ) - 1; + const unsigned base = ( 2 | ( dis_slot & 1 ) ) << direct_bits; + const unsigned direct_dis = dis - base; + + if( dis_slot < end_dis_model ) + Re_encode_tree_reversed( &eb->renc, eb->bm_dis + ( base - dis_slot ), + direct_dis, direct_bits ); + else + { + Re_encode( &eb->renc, direct_dis >> dis_align_bits, + direct_bits - dis_align_bits ); + Re_encode_tree_reversed( &eb->renc, eb->bm_align, direct_dis, dis_align_bits ); + } + } + } diff --git a/3rdparty/lzlib-1.12/fast_encoder.c b/3rdparty/lzlib-1.12/fast_encoder.c new file mode 100644 index 0000000..bdcbb97 --- /dev/null +++ b/3rdparty/lzlib-1.12/fast_encoder.c @@ -0,0 +1,182 @@ +/* Lzlib - Compression library for the lzip format + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +static int FLZe_longest_match_len( struct FLZ_encoder * const fe, int * const distance ) + { + enum { len_limit = 16 }; + const uint8_t * const data = Mb_ptr_to_current_pos( &fe->eb.mb ); + int32_t * ptr0 = fe->eb.mb.pos_array + fe->eb.mb.cyclic_pos; + const int pos1 = fe->eb.mb.pos + 1; + int maxlen = 0, newpos1, count; + const int available = min( Mb_available_bytes( &fe->eb.mb ), max_match_len ); + if( available < len_limit ) { *ptr0 = 0; return 0; } + + fe->key4 = ( ( fe->key4 << 4 ) ^ data[3] ) & fe->eb.mb.key4_mask; + newpos1 = fe->eb.mb.prev_positions[fe->key4]; + fe->eb.mb.prev_positions[fe->key4] = pos1; + + for( count = 4; ; ) + { + int32_t * newptr; + int delta; + if( newpos1 <= 0 || --count < 0 || + ( delta = pos1 - newpos1 ) > fe->eb.mb.dictionary_size ) + { *ptr0 = 0; break; } + newptr = fe->eb.mb.pos_array + + ( fe->eb.mb.cyclic_pos - delta + + ( ( fe->eb.mb.cyclic_pos >= delta ) ? 0 : fe->eb.mb.dictionary_size + 1 ) ); + + if( data[maxlen-delta] == data[maxlen] ) + { + int len = 0; + while( len < available && data[len-delta] == data[len] ) ++len; + if( maxlen < len ) + { maxlen = len; *distance = delta - 1; + if( maxlen >= len_limit ) { *ptr0 = *newptr; break; } } + } + + *ptr0 = newpos1; + ptr0 = newptr; + newpos1 = *ptr0; + } + return maxlen; + } + + +static bool FLZe_encode_member( struct FLZ_encoder * const fe ) + { + int rep = 0, i; + State * const state = &fe->eb.state; + + if( fe->eb.member_finished ) return true; + if( Re_member_position( &fe->eb.renc ) >= fe->eb.member_size_limit ) + { LZeb_try_full_flush( &fe->eb ); return true; } + + if( Mb_data_position( &fe->eb.mb ) == 0 && + !Mb_data_finished( &fe->eb.mb ) ) /* encode first byte */ + { + const uint8_t prev_byte = 0; + uint8_t cur_byte; + if( !Mb_enough_available_bytes( &fe->eb.mb ) || + !Re_enough_free_bytes( &fe->eb.renc ) ) return true; + cur_byte = Mb_peek( &fe->eb.mb, 0 ); + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_match[*state][0], 0 ); + LZeb_encode_literal( &fe->eb, prev_byte, cur_byte ); + CRC32_update_byte( &fe->eb.crc, cur_byte ); + FLZe_reset_key4( fe ); + if( !FLZe_update_and_move( fe, 1 ) ) return false; + } + + while( !Mb_data_finished( &fe->eb.mb ) && + Re_member_position( &fe->eb.renc ) < fe->eb.member_size_limit ) + { + int match_distance = 0; /* avoid warning from gcc 6.1.0 */ + int main_len, pos_state; + int len = 0; + if( !Mb_enough_available_bytes( &fe->eb.mb ) || + !Re_enough_free_bytes( &fe->eb.renc ) ) return true; + main_len = FLZe_longest_match_len( fe, &match_distance ); + pos_state = Mb_data_position( &fe->eb.mb ) & pos_state_mask; + + for( i = 0; i < num_rep_distances; ++i ) + { + const int tlen = Mb_true_match_len( &fe->eb.mb, 0, fe->eb.reps[i] + 1 ); + if( tlen > len ) { len = tlen; rep = i; } + } + if( len > min_match_len && len + 3 > main_len ) + { + CRC32_update_buf( &fe->eb.crc, Mb_ptr_to_current_pos( &fe->eb.mb ), len ); + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_match[*state][pos_state], 1 ); + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_rep[*state], 1 ); + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_rep0[*state], rep != 0 ); + if( rep == 0 ) + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_len[*state][pos_state], 1 ); + else + { + int distance; + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_rep1[*state], rep > 1 ); + if( rep > 1 ) + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_rep2[*state], rep > 2 ); + distance = fe->eb.reps[rep]; + for( i = rep; i > 0; --i ) fe->eb.reps[i] = fe->eb.reps[i-1]; + fe->eb.reps[0] = distance; + } + *state = St_set_rep( *state ); + Re_encode_len( &fe->eb.renc, &fe->eb.rep_len_model, len, pos_state ); + if( !Mb_move_pos( &fe->eb.mb ) ) return false; + if( !FLZe_update_and_move( fe, len - 1 ) ) return false; + continue; + } + + if( main_len > min_match_len ) + { + CRC32_update_buf( &fe->eb.crc, Mb_ptr_to_current_pos( &fe->eb.mb ), main_len ); + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_match[*state][pos_state], 1 ); + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_rep[*state], 0 ); + *state = St_set_match( *state ); + for( i = num_rep_distances - 1; i > 0; --i ) fe->eb.reps[i] = fe->eb.reps[i-1]; + fe->eb.reps[0] = match_distance; + LZeb_encode_pair( &fe->eb, match_distance, main_len, pos_state ); + if( !Mb_move_pos( &fe->eb.mb ) ) return false; + if( !FLZe_update_and_move( fe, main_len - 1 ) ) return false; + continue; + } + + { + const uint8_t prev_byte = Mb_peek( &fe->eb.mb, 1 ); + const uint8_t cur_byte = Mb_peek( &fe->eb.mb, 0 ); + const uint8_t match_byte = Mb_peek( &fe->eb.mb, fe->eb.reps[0] + 1 ); + if( !Mb_move_pos( &fe->eb.mb ) ) return false; + CRC32_update_byte( &fe->eb.crc, cur_byte ); + + if( match_byte == cur_byte ) + { + const int short_rep_price = price1( fe->eb.bm_match[*state][pos_state] ) + + price1( fe->eb.bm_rep[*state] ) + + price0( fe->eb.bm_rep0[*state] ) + + price0( fe->eb.bm_len[*state][pos_state] ); + int price = price0( fe->eb.bm_match[*state][pos_state] ); + if( St_is_char( *state ) ) + price += LZeb_price_literal( &fe->eb, prev_byte, cur_byte ); + else + price += LZeb_price_matched( &fe->eb, prev_byte, cur_byte, match_byte ); + if( short_rep_price < price ) + { + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_match[*state][pos_state], 1 ); + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_rep[*state], 1 ); + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_rep0[*state], 0 ); + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_len[*state][pos_state], 0 ); + *state = St_set_short_rep( *state ); + continue; + } + } + + /* literal byte */ + Re_encode_bit( &fe->eb.renc, &fe->eb.bm_match[*state][pos_state], 0 ); + if( St_is_char( *state ) ) + LZeb_encode_literal( &fe->eb, prev_byte, cur_byte ); + else + LZeb_encode_matched( &fe->eb, prev_byte, cur_byte, match_byte ); + *state = St_set_char( *state ); + } + } + + LZeb_try_full_flush( &fe->eb ); + return true; + } diff --git a/3rdparty/lzlib-1.12/fast_encoder.h b/3rdparty/lzlib-1.12/fast_encoder.h new file mode 100644 index 0000000..1c3a6ff --- /dev/null +++ b/3rdparty/lzlib-1.12/fast_encoder.h @@ -0,0 +1,70 @@ +/* Lzlib - Compression library for the lzip format + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +struct FLZ_encoder + { + struct LZ_encoder_base eb; + unsigned key4; /* key made from latest 4 bytes */ + }; + +static inline void FLZe_reset_key4( struct FLZ_encoder * const fe ) + { + int i; + fe->key4 = 0; + for( i = 0; i < 3 && i < Mb_available_bytes( &fe->eb.mb ); ++i ) + fe->key4 = ( fe->key4 << 4 ) ^ fe->eb.mb.buffer[i]; + } + +static inline bool FLZe_update_and_move( struct FLZ_encoder * const fe, int n ) + { + struct Matchfinder_base * const mb = &fe->eb.mb; + while( --n >= 0 ) + { + if( Mb_available_bytes( mb ) >= 4 ) + { + fe->key4 = ( ( fe->key4 << 4 ) ^ mb->buffer[mb->pos+3] ) & mb->key4_mask; + mb->pos_array[mb->cyclic_pos] = mb->prev_positions[fe->key4]; + mb->prev_positions[fe->key4] = mb->pos + 1; + } + else mb->pos_array[mb->cyclic_pos] = 0; + if( !Mb_move_pos( mb ) ) return false; + } + return true; + } + +static inline bool FLZe_init( struct FLZ_encoder * const fe, + const unsigned long long member_size ) + { + enum { before_size = 0, + dict_size = 65536, + /* bytes to keep in buffer after pos */ + after_size = max_match_len, + dict_factor = 16, + min_free_bytes = max_marker_size, + num_prev_positions23 = 0, + pos_array_factor = 1 }; + + return LZeb_init( &fe->eb, before_size, dict_size, after_size, dict_factor, + num_prev_positions23, pos_array_factor, min_free_bytes, + member_size ); + } + +static inline void FLZe_reset( struct FLZ_encoder * const fe, + const unsigned long long member_size ) + { LZeb_reset( &fe->eb, member_size ); } diff --git a/3rdparty/lzlib-1.12/ffexample.c b/3rdparty/lzlib-1.12/ffexample.c new file mode 100644 index 0000000..2891f02 --- /dev/null +++ b/3rdparty/lzlib-1.12/ffexample.c @@ -0,0 +1,300 @@ +/* File to file example - Test program for the library lzlib + Copyright (C) 2010-2021 Antonio Diaz Diaz. + + This program is free software: you have unlimited permission + to copy, distribute, and modify it. + + Try 'ffexample -h' for usage information. + + This program is an example of how file-to-file + compression/decompression can be implemented using lzlib. +*/ + +#define _FILE_OFFSET_BITS 64 + +#include +#include +#include +#include +#include +#include +#include +#include +#if defined(__MSVCRT__) || defined(__OS2__) || defined(__DJGPP__) +#include +#include +#endif + +#include "lzlib.h" + +#ifndef min + #define min(x,y) ((x) <= (y) ? (x) : (y)) +#endif + + +static void show_help( void ) + { + printf( "ffexample is an example program showing how file-to-file (de)compression can\n" + "be implemented using lzlib. The content of infile is compressed,\n" + "decompressed, or both, and then written to outfile.\n" + "\nUsage: ffexample operation [infile [outfile]]\n" ); + printf( "\nOperation:\n" + " -h display this help and exit\n" + " -c compress infile to outfile\n" + " -d decompress infile to outfile\n" + " -b both (compress then decompress) infile to outfile\n" + " -m compress (multimember) infile to outfile\n" + " -l compress (1 member per line) infile to outfile\n" + " -r decompress with resync if data error or leading garbage\n" + "\nIf infile or outfile are omitted, or are specified as '-', standard input or\n" + "standard output are used in their place respectively.\n" + "\nReport bugs to lzip-bug@nongnu.org\n" + "Lzlib home page: http://www.nongnu.org/lzip/lzlib.html\n" ); + } + + +int ffcompress( struct LZ_Encoder * const encoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_compress_write_size( encoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_compress_write( encoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_compress_finish( encoder ); + } + ret = LZ_compress_read( encoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_compress_finished( encoder ) == 1 ) return 0; + } + return 1; + } + + +int ffdecompress( struct LZ_Decoder * const decoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_decompress_write_size( decoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_decompress_write( decoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_decompress_finish( decoder ); + } + ret = LZ_decompress_read( decoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_decompress_finished( decoder ) == 1 ) return 0; + } + return 1; + } + + +int ffboth( struct LZ_Encoder * const encoder, + struct LZ_Decoder * const decoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_compress_write_size( encoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_compress_write( encoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_compress_finish( encoder ); + } + size = min( buffer_size, LZ_decompress_write_size( decoder ) ); + if( size > 0 ) + { + ret = LZ_compress_read( encoder, buffer, size ); + if( ret < 0 ) break; + ret = LZ_decompress_write( decoder, buffer, ret ); + if( ret < 0 ) break; + if( LZ_compress_finished( encoder ) == 1 ) + LZ_decompress_finish( decoder ); + } + ret = LZ_decompress_read( decoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_decompress_finished( decoder ) == 1 ) return 0; + } + return 1; + } + + +int ffmmcompress( FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384, member_size = 4096 }; + uint8_t buffer[buffer_size]; + bool done = false; + struct LZ_Encoder * const encoder = + LZ_compress_open( 65535, 16, member_size ); + if( !encoder || LZ_compress_errno( encoder ) != LZ_ok ) + { fputs( "ffexample: Not enough memory.\n", stderr ); + LZ_compress_close( encoder ); return 1; } + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_compress_write_size( encoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_compress_write( encoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_compress_finish( encoder ); + } + ret = LZ_compress_read( encoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_compress_member_finished( encoder ) == 1 ) + { + if( LZ_compress_finished( encoder ) == 1 ) { done = true; break; } + if( LZ_compress_restart_member( encoder, member_size ) < 0 ) break; + } + } + if( LZ_compress_close( encoder ) < 0 ) done = false; + return done; + } + + +/* Compresses 'infile' to 'outfile' as a multimember stream with one member + for each line of text terminated by a newline character or by EOF. + Returns 0 if success, 1 if error. +*/ +int fflfcompress( struct LZ_Encoder * const encoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_compress_write_size( encoder ) ); + if( size > 0 ) + { + for( len = 0; len < size; ) + { + int ch = getc( infile ); + if( ch == EOF || ( buffer[len++] = ch ) == '\n' ) break; + } + /* avoid writing an empty member to outfile */ + if( len == 0 && LZ_compress_data_position( encoder ) == 0 ) return 0; + ret = LZ_compress_write( encoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) || buffer[len-1] == '\n' ) + LZ_compress_finish( encoder ); + } + ret = LZ_compress_read( encoder, buffer, buffer_size ); + if( ret < 0 ) break; + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_compress_member_finished( encoder ) == 1 ) + { + if( feof( infile ) && LZ_compress_finished( encoder ) == 1 ) return 0; + if( LZ_compress_restart_member( encoder, INT64_MAX ) < 0 ) break; + } + } + return 1; + } + + +/* Decompresses 'infile' to 'outfile' with automatic resynchronization to + next member in case of data error, including the automatic removal of + leading garbage. +*/ +int ffrsdecompress( struct LZ_Decoder * const decoder, + FILE * const infile, FILE * const outfile ) + { + enum { buffer_size = 16384 }; + uint8_t buffer[buffer_size]; + while( true ) + { + int len, ret; + int size = min( buffer_size, LZ_decompress_write_size( decoder ) ); + if( size > 0 ) + { + len = fread( buffer, 1, size, infile ); + ret = LZ_decompress_write( decoder, buffer, len ); + if( ret < 0 || ferror( infile ) ) break; + if( feof( infile ) ) LZ_decompress_finish( decoder ); + } + ret = LZ_decompress_read( decoder, buffer, buffer_size ); + if( ret < 0 ) + { + if( LZ_decompress_errno( decoder ) == LZ_header_error || + LZ_decompress_errno( decoder ) == LZ_data_error ) + { LZ_decompress_sync_to_member( decoder ); continue; } + else break; + } + len = fwrite( buffer, 1, ret, outfile ); + if( len < ret ) break; + if( LZ_decompress_finished( decoder ) == 1 ) return 0; + } + return 1; + } + + +int main( const int argc, const char * const argv[] ) + { +#if defined(__MSVCRT__) || defined(__OS2__) || defined(__DJGPP__) + setmode( STDIN_FILENO, O_BINARY ); + setmode( STDOUT_FILENO, O_BINARY ); +#endif + + struct LZ_Encoder * const encoder = LZ_compress_open( 65535, 16, INT64_MAX ); + struct LZ_Decoder * const decoder = LZ_decompress_open(); + FILE * const infile = ( argc >= 3 && strcmp( argv[2], "-" ) != 0 ) ? + fopen( argv[2], "rb" ) : stdin; + FILE * const outfile = ( argc >= 4 && strcmp( argv[3], "-" ) != 0 ) ? + fopen( argv[3], "wb" ) : stdout; + int retval; + + if( argc < 2 || argc > 4 || strlen( argv[1] ) != 2 || argv[1][0] != '-' ) + { show_help(); return 1; } + if( !encoder || LZ_compress_errno( encoder ) != LZ_ok || + !decoder || LZ_decompress_errno( decoder ) != LZ_ok ) + { fputs( "ffexample: Not enough memory.\n", stderr ); + LZ_compress_close( encoder ); LZ_decompress_close( decoder ); return 1; } + if( !infile ) + { fprintf( stderr, "ffexample: Can't open input file '%s': %s\n", + argv[2], strerror( errno ) ); return 1; } + if( !outfile ) + { fprintf( stderr, "ffexample: Can't open output file '%s': %s\n", + argv[3], strerror( errno ) ); return 1; } + + switch( argv[1][1] ) + { + case 'c': retval = ffcompress( encoder, infile, outfile ); break; + case 'd': retval = ffdecompress( decoder, infile, outfile ); break; + case 'b': retval = ffboth( encoder, decoder, infile, outfile ); break; + case 'm': retval = ffmmcompress( infile, outfile ); break; + case 'l': retval = fflfcompress( encoder, infile, outfile ); break; + case 'r': retval = ffrsdecompress( decoder, infile, outfile ); break; + default: show_help(); return ( argv[1][1] != 'h' ); + } + + if( LZ_decompress_close( decoder ) < 0 || LZ_compress_close( encoder ) < 0 || + fclose( outfile ) != 0 || fclose( infile ) != 0 ) retval = 1; + return retval; + } diff --git a/3rdparty/lzlib-1.12/lzcheck.c b/3rdparty/lzlib-1.12/lzcheck.c new file mode 100644 index 0000000..7e00e6c --- /dev/null +++ b/3rdparty/lzlib-1.12/lzcheck.c @@ -0,0 +1,366 @@ +/* Lzcheck - Test program for the library lzlib + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This program is free software: you have unlimited permission + to copy, distribute, and modify it. + + Usage: lzcheck [-m|-s] filename.txt... + + This program reads each text file specified and then compresses it, + line by line, to test the flushing mechanism and the member + restart/reset/sync functions. +*/ + +#define _FILE_OFFSET_BITS 64 + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "lzlib.h" + + +const unsigned long long member_size = INT64_MAX; +enum { buffer_size = 32768 }; +uint8_t in_buffer[buffer_size]; +uint8_t mid_buffer[buffer_size]; +uint8_t out_buffer[buffer_size]; + + +static void show_line( const uint8_t * const buffer, const int size ) + { + int i; + for( i = 0; i < size; ++i ) + fputc( isprint( buffer[i] ) ? buffer[i] : '.', stderr ); + fputc( '\n', stderr ); + } + + +static struct LZ_Encoder * xopen_encoder( const int dictionary_size ) + { + const int match_len_limit = 16; + struct LZ_Encoder * const encoder = + LZ_compress_open( dictionary_size, match_len_limit, member_size ); + if( !encoder || LZ_compress_errno( encoder ) != LZ_ok ) + { + const bool bad_arg = + encoder && ( LZ_compress_errno( encoder ) == LZ_bad_argument ); + LZ_compress_close( encoder ); + if( bad_arg ) + { + fputs( "lzcheck: internal error: Invalid argument to encoder.\n", stderr ); + exit( 3 ); + } + fputs( "lzcheck: Not enough memory.\n", stderr ); + exit( 1 ); + } + return encoder; + } + +static struct LZ_Decoder * xopen_decoder( void ) + { + struct LZ_Decoder * const decoder = LZ_decompress_open(); + if( !decoder || LZ_decompress_errno( decoder ) != LZ_ok ) + { + LZ_decompress_close( decoder ); + fputs( "lzcheck: Not enough memory.\n", stderr ); + exit( 1 ); + } + return decoder; + } + + +static void xclose_encoder( struct LZ_Encoder * const encoder, + const bool finish ) + { + if( finish ) + { + unsigned long long size = 0; + LZ_compress_finish( encoder ); + while( true ) + { + const int rd = LZ_compress_read( encoder, mid_buffer, buffer_size ); + if( rd < 0 ) + { + fprintf( stderr, "lzcheck: xclose: LZ_compress_read error: %s\n", + LZ_strerror( LZ_compress_errno( encoder ) ) ); + exit( 3 ); + } + size += rd; + if( LZ_compress_finished( encoder ) == 1 ) break; + } + if( size > 0 ) + { + fprintf( stderr, "lzcheck: %lld bytes remain in encoder.\n", size ); + exit( 3 ); + } + } + if( LZ_compress_close( encoder ) < 0 ) exit( 1 ); + } + + +static void xclose_decoder( struct LZ_Decoder * const decoder, + const bool finish ) + { + if( finish ) + { + unsigned long long size = 0; + LZ_decompress_finish( decoder ); + while( true ) + { + const int rd = LZ_decompress_read( decoder, out_buffer, buffer_size ); + if( rd < 0 ) + { + fprintf( stderr, "lzcheck: xclose: LZ_decompress_read error: %s\n", + LZ_strerror( LZ_decompress_errno( decoder ) ) ); + exit( 3 ); + } + size += rd; + if( LZ_decompress_finished( decoder ) == 1 ) break; + } + if( size > 0 ) + { + fprintf( stderr, "lzcheck: %lld bytes remain in decoder.\n", size ); + exit( 3 ); + } + } + if( LZ_decompress_close( decoder ) < 0 ) exit( 1 ); + } + + +/* Returns the next (usually newline-terminated) chunk of data from file. + The size returned in *sizep is always <= buffer_size. + If sizep is a null pointer, rewinds the file, resets state, and returns. + If file is at EOF, returns an empty line. */ +static const uint8_t * next_line( FILE * const file, int * const sizep ) + { + static int l = 0; + static int read_size = 0; + int r; + + if( !sizep ) { rewind( file ); l = read_size = 0; return in_buffer; } + if( l >= read_size ) + { + l = 0; read_size = fread( in_buffer, 1, buffer_size, file ); + if( l >= read_size ) { *sizep = 0; return in_buffer; } /* end of file */ + } + + for( r = l + 1; r < read_size && in_buffer[r-1] != '\n'; ++r ); + *sizep = r - l; l = r; + return in_buffer + l - *sizep; + } + + +static int check_sync_flush( FILE * const file, const int dictionary_size ) + { + struct LZ_Encoder * const encoder = xopen_encoder( dictionary_size ); + struct LZ_Decoder * const decoder = xopen_decoder(); + int retval = 0; + + while( retval <= 1 ) /* test LZ_compress_sync_flush */ + { + int in_size, mid_size, out_size; + int line_size; + const uint8_t * const line_buf = next_line( file, &line_size ); + if( line_size <= 0 ) break; /* end of file */ + + in_size = LZ_compress_write( encoder, line_buf, line_size ); + if( in_size < line_size ) + fprintf( stderr, "lzcheck: sync: LZ_compress_write only accepted %d of %d bytes\n", + in_size, line_size ); + LZ_compress_sync_flush( encoder ); + if( line_buf[0] & 1 ) /* read all data at once or byte by byte */ + mid_size = LZ_compress_read( encoder, mid_buffer, buffer_size ); + else for( mid_size = 0; mid_size < buffer_size; ) + { + const int rd = LZ_compress_read( encoder, mid_buffer + mid_size, 1 ); + if( rd > 0 ) mid_size += rd; + else { if( rd < 0 ) { mid_size = -1; } break; } + } + if( mid_size < 0 ) + { + fprintf( stderr, "lzcheck: LZ_compress_read error: %s\n", + LZ_strerror( LZ_compress_errno( encoder ) ) ); + retval = 3; break; + } + LZ_decompress_write( decoder, mid_buffer, mid_size ); + out_size = LZ_decompress_read( decoder, out_buffer, buffer_size ); + if( out_size < 0 ) + { + fprintf( stderr, "lzcheck: LZ_decompress_read error: %s\n", + LZ_strerror( LZ_decompress_errno( decoder ) ) ); + retval = 3; break; + } + + if( out_size != in_size || memcmp( line_buf, out_buffer, out_size ) ) + { + fprintf( stderr, "lzcheck: LZ_compress_sync_flush error: " + "in_size = %d, out_size = %d\n", in_size, out_size ); + show_line( line_buf, in_size ); + show_line( out_buffer, out_size ); + retval = 1; + } + } + + if( retval <= 1 ) + { + int rd = 0; + if( LZ_compress_finish( encoder ) < 0 || + ( rd = LZ_compress_read( encoder, mid_buffer, buffer_size ) ) < 0 ) + { + fprintf( stderr, "lzcheck: Can't drain encoder: %s\n", + LZ_strerror( LZ_compress_errno( encoder ) ) ); + retval = 3; + } + LZ_decompress_write( decoder, mid_buffer, rd ); + } + + xclose_decoder( decoder, retval == 0 ); + xclose_encoder( encoder, retval == 0 ); + return retval; + } + + +/* Test member by member decompression without calling LZ_decompress_finish, + inserting leading garbage before some members, and resetting the + decompressor sometimes. Test that the increase in total_in_size when + syncing to member is equal to the size of the leading garbage skipped. +*/ +static int check_members( FILE * const file, const int dictionary_size ) + { + struct LZ_Encoder * const encoder = xopen_encoder( dictionary_size ); + struct LZ_Decoder * const decoder = xopen_decoder(); + int retval = 0; + + while( retval <= 1 ) /* test LZ_compress_restart_member */ + { + unsigned long long garbage_begin = 0; /* avoid warning from gcc 3.3.6 */ + int leading_garbage, in_size, mid_size, out_size; + int line_size; + const uint8_t * const line_buf = next_line( file, &line_size ); + if( line_size <= 0 && /* end of file, write at least 1 member */ + LZ_decompress_total_in_size( decoder ) != 0 ) break; + + if( LZ_compress_finished( encoder ) == 1 ) + { + if( LZ_compress_restart_member( encoder, member_size ) < 0 ) + { + fprintf( stderr, "lzcheck: Can't restart member: %s\n", + LZ_strerror( LZ_compress_errno( encoder ) ) ); + retval = 3; break; + } + if( line_size >= 2 && line_buf[1] == 'h' ) + LZ_decompress_reset( decoder ); + } + in_size = LZ_compress_write( encoder, line_buf, line_size ); + if( in_size < line_size ) + fprintf( stderr, "lzcheck: member: LZ_compress_write only accepted %d of %d bytes\n", + in_size, line_size ); + LZ_compress_finish( encoder ); + if( line_size * 3 < buffer_size && line_buf[0] == 't' ) + { leading_garbage = line_size; + memset( mid_buffer, in_buffer[0], leading_garbage ); + garbage_begin = LZ_decompress_total_in_size( decoder ); } + else leading_garbage = 0; + mid_size = LZ_compress_read( encoder, mid_buffer + leading_garbage, + buffer_size - leading_garbage ); + if( mid_size < 0 ) + { + fprintf( stderr, "lzcheck: member: LZ_compress_read error: %s\n", + LZ_strerror( LZ_compress_errno( encoder ) ) ); + retval = 3; break; + } + LZ_decompress_write( decoder, mid_buffer, leading_garbage + mid_size ); + out_size = LZ_decompress_read( decoder, out_buffer, buffer_size ); + if( out_size < 0 ) + { + if( leading_garbage && + ( LZ_decompress_errno( decoder ) == LZ_header_error || + LZ_decompress_errno( decoder ) == LZ_data_error ) ) + { + LZ_decompress_sync_to_member( decoder ); /* skip leading garbage */ + const unsigned long long garbage_end = + LZ_decompress_total_in_size( decoder ); + if( garbage_end - garbage_begin != (unsigned)leading_garbage ) + { + fprintf( stderr, "lzcheck: member: LZ_decompress_sync_to_member error:\n" + " garbage_begin = %llu garbage_end = %llu " + "difference = %llu expected = %d\n", garbage_begin, + garbage_end, garbage_end - garbage_begin, leading_garbage ); + retval = 3; break; + } + out_size = LZ_decompress_read( decoder, out_buffer, buffer_size ); + } + if( out_size < 0 ) + { + fprintf( stderr, "lzcheck: member: LZ_decompress_read error: %s\n", + LZ_strerror( LZ_decompress_errno( decoder ) ) ); + retval = 3; break; + } + } + + if( out_size != in_size || memcmp( line_buf, out_buffer, out_size ) ) + { + fprintf( stderr, "lzcheck: LZ_compress_restart_member error: " + "in_size = %d, out_size = %d\n", in_size, out_size ); + show_line( line_buf, in_size ); + show_line( out_buffer, out_size ); + retval = 1; + } + } + + xclose_decoder( decoder, retval == 0 ); + xclose_encoder( encoder, retval == 0 ); + return retval; + } + + +int main( const int argc, const char * const argv[] ) + { + int retval = 0, i; + int open_failures = 0; + const char opt = ( argc > 2 && + ( strcmp( argv[1], "-m" ) == 0 || strcmp( argv[1], "-s" ) == 0 ) ) ? + argv[1][1] : 0; + const int first = opt ? 2 : 1; + const bool verbose = ( opt != 0 || argc > first + 1 ); + + if( argc < 2 ) + { + fputs( "Usage: lzcheck filename.txt...\n", stderr ); + return 1; + } + + for( i = first; i < argc && retval == 0; ++i ) + { + struct stat st; + if( stat( argv[i], &st ) != 0 || !S_ISREG( st.st_mode ) ) continue; + FILE * file = fopen( argv[i], "rb" ); + if( !file ) + { + fprintf( stderr, "lzcheck: Can't open file '%s' for reading.\n", argv[i] ); + ++open_failures; continue; + } + if( verbose ) fprintf( stderr, " Testing file '%s'\n", argv[i] ); + + /* 65535,16 chooses fast encoder */ + if( opt != 'm' ) retval = check_sync_flush( file, 65535 ); + if( retval == 0 && opt != 'm' ) + { next_line( file, 0 ); retval = check_sync_flush( file, 1 << 20 ); } + if( retval == 0 && opt != 's' ) + { next_line( file, 0 ); retval = check_members( file, 65535 ); } + if( retval == 0 && opt != 's' ) + { next_line( file, 0 ); retval = check_members( file, 1 << 20 ); } + fclose( file ); + } + if( open_failures > 0 && verbose ) + fprintf( stderr, "lzcheck: warning: %d %s failed to open.\n", + open_failures, ( open_failures == 1 ) ? "file" : "files" ); + if( retval == 0 && open_failures ) retval = 1; + return retval; + } diff --git a/3rdparty/lzlib-1.12/lzip.h b/3rdparty/lzlib-1.12/lzip.h new file mode 100644 index 0000000..3e3df2c --- /dev/null +++ b/3rdparty/lzlib-1.12/lzip.h @@ -0,0 +1,297 @@ +/* Lzlib - Compression library for the lzip format + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifndef max + #define max(x,y) ((x) >= (y) ? (x) : (y)) +#endif +#ifndef min + #define min(x,y) ((x) <= (y) ? (x) : (y)) +#endif + +typedef int State; + +enum { states = 12 }; + +static inline bool St_is_char( const State st ) { return st < 7; } + +static inline State St_set_char( const State st ) + { + static const State next[states] = { 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 4, 5 }; + return next[st]; + } + +static inline State St_set_char_rep() { return 8; } + +static inline State St_set_match( const State st ) + { return ( ( st < 7 ) ? 7 : 10 ); } + +static inline State St_set_rep( const State st ) + { return ( ( st < 7 ) ? 8 : 11 ); } + +static inline State St_set_short_rep( const State st ) + { return ( ( st < 7 ) ? 9 : 11 ); } + + +enum { + min_dictionary_bits = 12, + min_dictionary_size = 1 << min_dictionary_bits, /* >= modeled_distances */ + max_dictionary_bits = 29, + max_dictionary_size = 1 << max_dictionary_bits, + literal_context_bits = 3, + literal_pos_state_bits = 0, /* not used */ + pos_state_bits = 2, + pos_states = 1 << pos_state_bits, + pos_state_mask = pos_states - 1, + + len_states = 4, + dis_slot_bits = 6, + start_dis_model = 4, + end_dis_model = 14, + modeled_distances = 1 << (end_dis_model / 2), /* 128 */ + dis_align_bits = 4, + dis_align_size = 1 << dis_align_bits, + + len_low_bits = 3, + len_mid_bits = 3, + len_high_bits = 8, + len_low_symbols = 1 << len_low_bits, + len_mid_symbols = 1 << len_mid_bits, + len_high_symbols = 1 << len_high_bits, + max_len_symbols = len_low_symbols + len_mid_symbols + len_high_symbols, + + min_match_len = 2, /* must be 2 */ + max_match_len = min_match_len + max_len_symbols - 1, /* 273 */ + min_match_len_limit = 5 }; + +static inline int get_len_state( const int len ) + { return min( len - min_match_len, len_states - 1 ); } + +static inline int get_lit_state( const uint8_t prev_byte ) + { return prev_byte >> ( 8 - literal_context_bits ); } + + +enum { bit_model_move_bits = 5, + bit_model_total_bits = 11, + bit_model_total = 1 << bit_model_total_bits }; + +typedef int Bit_model; + +static inline void Bm_init( Bit_model * const probability ) + { *probability = bit_model_total / 2; } + +static inline void Bm_array_init( Bit_model bm[], const int size ) + { int i; for( i = 0; i < size; ++i ) Bm_init( &bm[i] ); } + +struct Len_model + { + Bit_model choice1; + Bit_model choice2; + Bit_model bm_low[pos_states][len_low_symbols]; + Bit_model bm_mid[pos_states][len_mid_symbols]; + Bit_model bm_high[len_high_symbols]; + }; + +static inline void Lm_init( struct Len_model * const lm ) + { + Bm_init( &lm->choice1 ); + Bm_init( &lm->choice2 ); + Bm_array_init( lm->bm_low[0], pos_states * len_low_symbols ); + Bm_array_init( lm->bm_mid[0], pos_states * len_mid_symbols ); + Bm_array_init( lm->bm_high, len_high_symbols ); + } + + +/* Table of CRCs of all 8-bit messages. */ +static const uint32_t crc32[256] = + { + 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, + 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, + 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, + 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, + 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, + 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, + 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, + 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, + 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, + 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, + 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106, + 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, + 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, + 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, + 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, + 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, + 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, + 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, + 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, + 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, + 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, + 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, + 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, + 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, + 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, + 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, + 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E, + 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, + 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, + 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, + 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, + 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, + 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, + 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, + 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, + 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, + 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, + 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, + 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, + 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, + 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, + 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, + 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D }; + + +static inline void CRC32_update_byte( uint32_t * const crc, const uint8_t byte ) + { *crc = crc32[(*crc^byte)&0xFF] ^ ( *crc >> 8 ); } + +static inline void CRC32_update_buf( uint32_t * const crc, + const uint8_t * const buffer, + const int size ) + { + int i; + uint32_t c = *crc; + for( i = 0; i < size; ++i ) + c = crc32[(c^buffer[i])&0xFF] ^ ( c >> 8 ); + *crc = c; + } + + +static inline bool isvalid_ds( const unsigned dictionary_size ) + { return ( dictionary_size >= min_dictionary_size && + dictionary_size <= max_dictionary_size ); } + + +static inline int real_bits( unsigned value ) + { + int bits = 0; + while( value > 0 ) { value >>= 1; ++bits; } + return bits; + } + + +static const uint8_t lzip_magic[4] = { 0x4C, 0x5A, 0x49, 0x50 }; /* "LZIP" */ + +typedef uint8_t Lzip_header[6]; /* 0-3 magic bytes */ + /* 4 version */ + /* 5 coded dictionary size */ +enum { Lh_size = 6 }; + +static inline void Lh_set_magic( Lzip_header data ) + { memcpy( data, lzip_magic, 4 ); data[4] = 1; } + +static inline bool Lh_verify_magic( const Lzip_header data ) + { return ( memcmp( data, lzip_magic, 4 ) == 0 ); } + +/* detect (truncated) header */ +static inline bool Lh_verify_prefix( const Lzip_header data, const int sz ) + { + int i; for( i = 0; i < sz && i < 4; ++i ) + if( data[i] != lzip_magic[i] ) return false; + return ( sz > 0 ); + } + +/* detect corrupt header */ +static inline bool Lh_verify_corrupt( const Lzip_header data ) + { + int matches = 0; + int i; for( i = 0; i < 4; ++i ) + if( data[i] == lzip_magic[i] ) ++matches; + return ( matches > 1 && matches < 4 ); + } + +static inline uint8_t Lh_version( const Lzip_header data ) + { return data[4]; } + +static inline bool Lh_verify_version( const Lzip_header data ) + { return ( data[4] == 1 ); } + +static inline unsigned Lh_get_dictionary_size( const Lzip_header data ) + { + unsigned sz = ( 1 << ( data[5] & 0x1F ) ); + if( sz > min_dictionary_size ) + sz -= ( sz / 16 ) * ( ( data[5] >> 5 ) & 7 ); + return sz; + } + +static inline bool Lh_set_dictionary_size( Lzip_header data, const unsigned sz ) + { + if( !isvalid_ds( sz ) ) return false; + data[5] = real_bits( sz - 1 ); + if( sz > min_dictionary_size ) + { + const unsigned base_size = 1 << data[5]; + const unsigned fraction = base_size / 16; + unsigned i; + for( i = 7; i >= 1; --i ) + if( base_size - ( i * fraction ) >= sz ) + { data[5] |= ( i << 5 ); break; } + } + return true; + } + +static inline bool Lh_verify( const Lzip_header data ) + { + return Lh_verify_magic( data ) && Lh_verify_version( data ) && + isvalid_ds( Lh_get_dictionary_size( data ) ); + } + + +typedef uint8_t Lzip_trailer[20]; + /* 0-3 CRC32 of the uncompressed data */ + /* 4-11 size of the uncompressed data */ + /* 12-19 member size including header and trailer */ +enum { Lt_size = 20 }; + +static inline unsigned Lt_get_data_crc( const Lzip_trailer data ) + { + unsigned tmp = 0; + int i; for( i = 3; i >= 0; --i ) { tmp <<= 8; tmp += data[i]; } + return tmp; + } + +static inline void Lt_set_data_crc( Lzip_trailer data, unsigned crc ) + { int i; for( i = 0; i <= 3; ++i ) { data[i] = (uint8_t)crc; crc >>= 8; } } + +static inline unsigned long long Lt_get_data_size( const Lzip_trailer data ) + { + unsigned long long tmp = 0; + int i; for( i = 11; i >= 4; --i ) { tmp <<= 8; tmp += data[i]; } + return tmp; + } + +static inline void Lt_set_data_size( Lzip_trailer data, unsigned long long sz ) + { int i; for( i = 4; i <= 11; ++i ) { data[i] = (uint8_t)sz; sz >>= 8; } } + +static inline unsigned long long Lt_get_member_size( const Lzip_trailer data ) + { + unsigned long long tmp = 0; + int i; for( i = 19; i >= 12; --i ) { tmp <<= 8; tmp += data[i]; } + return tmp; + } + +static inline void Lt_set_member_size( Lzip_trailer data, unsigned long long sz ) + { int i; for( i = 12; i <= 19; ++i ) { data[i] = (uint8_t)sz; sz >>= 8; } } diff --git a/3rdparty/lzlib-1.12/lzlib.c b/3rdparty/lzlib-1.12/lzlib.c new file mode 100644 index 0000000..b7969f2 --- /dev/null +++ b/3rdparty/lzlib-1.12/lzlib.c @@ -0,0 +1,601 @@ +/* Lzlib - Compression library for the lzip format + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#include +#include +#include +#include + +#include "lzlib.h" +#include "lzip.h" +#include "cbuffer.c" +#include "decoder.h" +#include "decoder.c" +#include "encoder_base.h" +#include "encoder_base.c" +#include "encoder.h" +#include "encoder.c" +#include "fast_encoder.h" +#include "fast_encoder.c" + + +struct LZ_Encoder + { + unsigned long long partial_in_size; + unsigned long long partial_out_size; + struct LZ_encoder_base * lz_encoder_base; /* these 3 pointers make a */ + struct LZ_encoder * lz_encoder; /* polymorphic encoder */ + struct FLZ_encoder * flz_encoder; + enum LZ_Errno lz_errno; + bool fatal; + }; + +static void LZ_Encoder_init( struct LZ_Encoder * const e ) + { + e->partial_in_size = 0; + e->partial_out_size = 0; + e->lz_encoder_base = 0; + e->lz_encoder = 0; + e->flz_encoder = 0; + e->lz_errno = LZ_ok; + e->fatal = false; + } + + +struct LZ_Decoder + { + unsigned long long partial_in_size; + unsigned long long partial_out_size; + struct Range_decoder * rdec; + struct LZ_decoder * lz_decoder; + enum LZ_Errno lz_errno; + Lzip_header member_header; /* header of current member */ + bool fatal; + bool first_header; /* true until first header is read */ + bool seeking; + }; + +static void LZ_Decoder_init( struct LZ_Decoder * const d ) + { + int i; + d->partial_in_size = 0; + d->partial_out_size = 0; + d->rdec = 0; + d->lz_decoder = 0; + d->lz_errno = LZ_ok; + for( i = 0; i < Lh_size; ++i ) d->member_header[i] = 0; + d->fatal = false; + d->first_header = true; + d->seeking = false; + } + + +static bool verify_encoder( struct LZ_Encoder * const e ) + { + if( !e ) return false; + if( !e->lz_encoder_base || ( !e->lz_encoder && !e->flz_encoder ) || + ( e->lz_encoder && e->flz_encoder ) ) + { e->lz_errno = LZ_bad_argument; return false; } + return true; + } + + +static bool verify_decoder( struct LZ_Decoder * const d ) + { + if( !d ) return false; + if( !d->rdec ) + { d->lz_errno = LZ_bad_argument; return false; } + return true; + } + + +/* ------------------------- Misc Functions ------------------------- */ + +int LZ_api_version( void ) { return LZ_API_VERSION; } + +const char * LZ_version( void ) { return LZ_version_string; } + +const char * LZ_strerror( const enum LZ_Errno lz_errno ) + { + switch( lz_errno ) + { + case LZ_ok : return "ok"; + case LZ_bad_argument : return "Bad argument"; + case LZ_mem_error : return "Not enough memory"; + case LZ_sequence_error: return "Sequence error"; + case LZ_header_error : return "Header error"; + case LZ_unexpected_eof: return "Unexpected EOF"; + case LZ_data_error : return "Data error"; + case LZ_library_error : return "Library error"; + } + return "Invalid error code"; + } + + +int LZ_min_dictionary_bits( void ) { return min_dictionary_bits; } +int LZ_min_dictionary_size( void ) { return min_dictionary_size; } +int LZ_max_dictionary_bits( void ) { return max_dictionary_bits; } +int LZ_max_dictionary_size( void ) { return max_dictionary_size; } +int LZ_min_match_len_limit( void ) { return min_match_len_limit; } +int LZ_max_match_len_limit( void ) { return max_match_len; } + + +/* --------------------- Compression Functions --------------------- */ + +struct LZ_Encoder * LZ_compress_open( const int dictionary_size, + const int match_len_limit, + const unsigned long long member_size ) + { + Lzip_header header; + struct LZ_Encoder * const e = + (struct LZ_Encoder *)malloc( sizeof (struct LZ_Encoder) ); + if( !e ) return 0; + LZ_Encoder_init( e ); + if( !Lh_set_dictionary_size( header, dictionary_size ) || + match_len_limit < min_match_len_limit || + match_len_limit > max_match_len || + member_size < min_dictionary_size ) + e->lz_errno = LZ_bad_argument; + else + { + if( dictionary_size == 65535 && match_len_limit == 16 ) + { + e->flz_encoder = (struct FLZ_encoder *)malloc( sizeof (struct FLZ_encoder) ); + if( e->flz_encoder && FLZe_init( e->flz_encoder, member_size ) ) + { e->lz_encoder_base = &e->flz_encoder->eb; return e; } + free( e->flz_encoder ); e->flz_encoder = 0; + } + else + { + e->lz_encoder = (struct LZ_encoder *)malloc( sizeof (struct LZ_encoder) ); + if( e->lz_encoder && LZe_init( e->lz_encoder, Lh_get_dictionary_size( header ), + match_len_limit, member_size ) ) + { e->lz_encoder_base = &e->lz_encoder->eb; return e; } + free( e->lz_encoder ); e->lz_encoder = 0; + } + e->lz_errno = LZ_mem_error; + } + e->fatal = true; + return e; + } + + +int LZ_compress_close( struct LZ_Encoder * const e ) + { + if( !e ) return -1; + if( e->lz_encoder_base ) + { LZeb_free( e->lz_encoder_base ); + free( e->lz_encoder ); free( e->flz_encoder ); } + free( e ); + return 0; + } + + +int LZ_compress_finish( struct LZ_Encoder * const e ) + { + if( !verify_encoder( e ) || e->fatal ) return -1; + Mb_finish( &e->lz_encoder_base->mb ); + /* if (open --> write --> finish) use same dictionary size as lzip. */ + /* this does not save any memory. */ + if( Mb_data_position( &e->lz_encoder_base->mb ) == 0 && + Re_member_position( &e->lz_encoder_base->renc ) == Lh_size ) + { + Mb_adjust_dictionary_size( &e->lz_encoder_base->mb ); + Lh_set_dictionary_size( e->lz_encoder_base->renc.header, + e->lz_encoder_base->mb.dictionary_size ); + e->lz_encoder_base->renc.cb.buffer[5] = e->lz_encoder_base->renc.header[5]; + } + return 0; + } + + +int LZ_compress_restart_member( struct LZ_Encoder * const e, + const unsigned long long member_size ) + { + if( !verify_encoder( e ) || e->fatal ) return -1; + if( !LZeb_member_finished( e->lz_encoder_base ) ) + { e->lz_errno = LZ_sequence_error; return -1; } + if( member_size < min_dictionary_size ) + { e->lz_errno = LZ_bad_argument; return -1; } + + e->partial_in_size += Mb_data_position( &e->lz_encoder_base->mb ); + e->partial_out_size += Re_member_position( &e->lz_encoder_base->renc ); + + if( e->lz_encoder ) LZe_reset( e->lz_encoder, member_size ); + else FLZe_reset( e->flz_encoder, member_size ); + e->lz_errno = LZ_ok; + return 0; + } + + +int LZ_compress_sync_flush( struct LZ_Encoder * const e ) + { + if( !verify_encoder( e ) || e->fatal ) return -1; + if( !e->lz_encoder_base->mb.at_stream_end ) + e->lz_encoder_base->mb.sync_flush_pending = true; + return 0; + } + + +int LZ_compress_read( struct LZ_Encoder * const e, + uint8_t * const buffer, const int size ) + { + if( !verify_encoder( e ) || e->fatal ) return -1; + if( size < 0 ) return 0; + + { struct LZ_encoder_base * const eb = e->lz_encoder_base; + int out_size = Re_read_data( &eb->renc, buffer, size ); + /* minimize number of calls to encode_member */ + if( out_size < size || size == 0 ) + { + if( ( e->flz_encoder && !FLZe_encode_member( e->flz_encoder ) ) || + ( e->lz_encoder && !LZe_encode_member( e->lz_encoder ) ) ) + { e->lz_errno = LZ_library_error; e->fatal = true; return -1; } + if( eb->mb.sync_flush_pending && Mb_available_bytes( &eb->mb ) <= 0 ) + LZeb_try_sync_flush( eb ); + out_size += Re_read_data( &eb->renc, buffer + out_size, size - out_size ); + } + return out_size; } + } + + +int LZ_compress_write( struct LZ_Encoder * const e, + const uint8_t * const buffer, const int size ) + { + if( !verify_encoder( e ) || e->fatal ) return -1; + return Mb_write_data( &e->lz_encoder_base->mb, buffer, size ); + } + + +int LZ_compress_write_size( struct LZ_Encoder * const e ) + { + if( !verify_encoder( e ) || e->fatal ) return -1; + return Mb_free_bytes( &e->lz_encoder_base->mb ); + } + + +enum LZ_Errno LZ_compress_errno( struct LZ_Encoder * const e ) + { + if( !e ) return LZ_bad_argument; + return e->lz_errno; + } + + +int LZ_compress_finished( struct LZ_Encoder * const e ) + { + if( !verify_encoder( e ) ) return -1; + return ( Mb_data_finished( &e->lz_encoder_base->mb ) && + LZeb_member_finished( e->lz_encoder_base ) ); + } + + +int LZ_compress_member_finished( struct LZ_Encoder * const e ) + { + if( !verify_encoder( e ) ) return -1; + return LZeb_member_finished( e->lz_encoder_base ); + } + + +unsigned long long LZ_compress_data_position( struct LZ_Encoder * const e ) + { + if( !verify_encoder( e ) ) return 0; + return Mb_data_position( &e->lz_encoder_base->mb ); + } + + +unsigned long long LZ_compress_member_position( struct LZ_Encoder * const e ) + { + if( !verify_encoder( e ) ) return 0; + return Re_member_position( &e->lz_encoder_base->renc ); + } + + +unsigned long long LZ_compress_total_in_size( struct LZ_Encoder * const e ) + { + if( !verify_encoder( e ) ) return 0; + return e->partial_in_size + Mb_data_position( &e->lz_encoder_base->mb ); + } + + +unsigned long long LZ_compress_total_out_size( struct LZ_Encoder * const e ) + { + if( !verify_encoder( e ) ) return 0; + return e->partial_out_size + Re_member_position( &e->lz_encoder_base->renc ); + } + + +/* -------------------- Decompression Functions -------------------- */ + +struct LZ_Decoder * LZ_decompress_open( void ) + { + struct LZ_Decoder * const d = + (struct LZ_Decoder *)malloc( sizeof (struct LZ_Decoder) ); + if( !d ) return 0; + LZ_Decoder_init( d ); + + d->rdec = (struct Range_decoder *)malloc( sizeof (struct Range_decoder) ); + if( !d->rdec || !Rd_init( d->rdec ) ) + { + if( d->rdec ) { Rd_free( d->rdec ); free( d->rdec ); d->rdec = 0; } + d->lz_errno = LZ_mem_error; d->fatal = true; + } + return d; + } + + +int LZ_decompress_close( struct LZ_Decoder * const d ) + { + if( !d ) return -1; + if( d->lz_decoder ) + { LZd_free( d->lz_decoder ); free( d->lz_decoder ); } + if( d->rdec ) { Rd_free( d->rdec ); free( d->rdec ); } + free( d ); + return 0; + } + + +int LZ_decompress_finish( struct LZ_Decoder * const d ) + { + if( !verify_decoder( d ) || d->fatal ) return -1; + if( d->seeking ) + { d->seeking = false; d->partial_in_size += Rd_purge( d->rdec ); } + else Rd_finish( d->rdec ); + return 0; + } + + +int LZ_decompress_reset( struct LZ_Decoder * const d ) + { + if( !verify_decoder( d ) ) return -1; + if( d->lz_decoder ) + { LZd_free( d->lz_decoder ); free( d->lz_decoder ); d->lz_decoder = 0; } + d->partial_in_size = 0; + d->partial_out_size = 0; + Rd_reset( d->rdec ); + d->lz_errno = LZ_ok; + d->fatal = false; + d->first_header = true; + d->seeking = false; + return 0; + } + + +int LZ_decompress_sync_to_member( struct LZ_Decoder * const d ) + { + unsigned skipped = 0; + if( !verify_decoder( d ) ) return -1; + if( d->lz_decoder ) + { LZd_free( d->lz_decoder ); free( d->lz_decoder ); d->lz_decoder = 0; } + if( Rd_find_header( d->rdec, &skipped ) ) d->seeking = false; + else + { + if( !d->rdec->at_stream_end ) d->seeking = true; + else { d->seeking = false; d->partial_in_size += Rd_purge( d->rdec ); } + } + d->partial_in_size += skipped; + d->lz_errno = LZ_ok; + d->fatal = false; + return 0; + } + + +int LZ_decompress_read( struct LZ_Decoder * const d, + uint8_t * const buffer, const int size ) + { + int result; + if( !verify_decoder( d ) ) return -1; + if( size < 0 ) return 0; + if( d->fatal ) /* don't return error until pending bytes are read */ + { if( d->lz_decoder && !Cb_empty( &d->lz_decoder->cb ) ) goto get_data; + return -1; } + if( d->seeking ) return 0; + + if( d->lz_decoder && LZd_member_finished( d->lz_decoder ) ) + { + d->partial_out_size += LZd_data_position( d->lz_decoder ); + LZd_free( d->lz_decoder ); free( d->lz_decoder ); d->lz_decoder = 0; + } + if( !d->lz_decoder ) + { + int rd; + d->partial_in_size += d->rdec->member_position; + d->rdec->member_position = 0; + if( Rd_available_bytes( d->rdec ) < Lh_size + 5 && + !d->rdec->at_stream_end ) return 0; + if( Rd_finished( d->rdec ) && !d->first_header ) return 0; + rd = Rd_read_data( d->rdec, d->member_header, Lh_size ); + if( rd < Lh_size || Rd_finished( d->rdec ) ) /* End Of File */ + { + if( rd <= 0 || Lh_verify_prefix( d->member_header, rd ) ) + d->lz_errno = LZ_unexpected_eof; + else + d->lz_errno = LZ_header_error; + d->fatal = true; + return -1; + } + if( !Lh_verify_magic( d->member_header ) ) + { + /* unreading the header prevents sync_to_member from skipping a member + if leading garbage is shorter than a full header; "lgLZIP\x01\x0C" */ + if( Rd_unread_data( d->rdec, rd ) ) + { + if( d->first_header || !Lh_verify_corrupt( d->member_header ) ) + d->lz_errno = LZ_header_error; + else + d->lz_errno = LZ_data_error; /* corrupt header */ + } + else + d->lz_errno = LZ_library_error; + d->fatal = true; + return -1; + } + if( !Lh_verify_version( d->member_header ) || + !isvalid_ds( Lh_get_dictionary_size( d->member_header ) ) ) + { + /* Skip a possible "LZIP" leading garbage; "LZIPLZIP\x01\x0C". + Leave member_pos pointing to the first error. */ + if( Rd_unread_data( d->rdec, 1 + !Lh_verify_version( d->member_header ) ) ) + d->lz_errno = LZ_data_error; /* bad version or bad dict size */ + else + d->lz_errno = LZ_library_error; + d->fatal = true; + return -1; + } + d->first_header = false; + if( Rd_available_bytes( d->rdec ) < 5 ) + { + /* set position at EOF */ + d->rdec->member_position += Cb_used_bytes( &d->rdec->cb ); + Cb_reset( &d->rdec->cb ); + d->lz_errno = LZ_unexpected_eof; + d->fatal = true; + return -1; + } + d->lz_decoder = (struct LZ_decoder *)malloc( sizeof (struct LZ_decoder) ); + if( !d->lz_decoder || !LZd_init( d->lz_decoder, d->rdec, + Lh_get_dictionary_size( d->member_header ) ) ) + { /* not enough free memory */ + if( d->lz_decoder ) + { LZd_free( d->lz_decoder ); free( d->lz_decoder ); d->lz_decoder = 0; } + d->lz_errno = LZ_mem_error; + d->fatal = true; + return -1; + } + d->rdec->reload_pending = true; + } + result = LZd_decode_member( d->lz_decoder ); + if( result != 0 ) + { + if( result == 2 ) /* set input position at EOF */ + { d->rdec->member_position += Cb_used_bytes( &d->rdec->cb ); + Cb_reset( &d->rdec->cb ); + d->lz_errno = LZ_unexpected_eof; } + else if( result == 5 ) d->lz_errno = LZ_library_error; + else d->lz_errno = LZ_data_error; + d->fatal = true; + if( Cb_empty( &d->lz_decoder->cb ) ) return -1; + } +get_data: + return Cb_read_data( &d->lz_decoder->cb, buffer, size ); + } + + +int LZ_decompress_write( struct LZ_Decoder * const d, + const uint8_t * const buffer, const int size ) + { + int result; + if( !verify_decoder( d ) || d->fatal ) return -1; + if( size < 0 ) return 0; + + result = Rd_write_data( d->rdec, buffer, size ); + while( d->seeking ) + { + int size2; + unsigned skipped = 0; + if( Rd_find_header( d->rdec, &skipped ) ) d->seeking = false; + d->partial_in_size += skipped; + if( result >= size ) break; + size2 = Rd_write_data( d->rdec, buffer + result, size - result ); + if( size2 > 0 ) result += size2; + else break; + } + return result; + } + + +int LZ_decompress_write_size( struct LZ_Decoder * const d ) + { + if( !verify_decoder( d ) || d->fatal ) return -1; + return Rd_free_bytes( d->rdec ); + } + + +enum LZ_Errno LZ_decompress_errno( struct LZ_Decoder * const d ) + { + if( !d ) return LZ_bad_argument; + return d->lz_errno; + } + + +int LZ_decompress_finished( struct LZ_Decoder * const d ) + { + if( !verify_decoder( d ) || d->fatal ) return -1; + return ( Rd_finished( d->rdec ) && + ( !d->lz_decoder || LZd_member_finished( d->lz_decoder ) ) ); + } + + +int LZ_decompress_member_finished( struct LZ_Decoder * const d ) + { + if( !verify_decoder( d ) || d->fatal ) return -1; + return ( d->lz_decoder && LZd_member_finished( d->lz_decoder ) ); + } + + +int LZ_decompress_member_version( struct LZ_Decoder * const d ) + { + if( !verify_decoder( d ) ) return -1; + return Lh_version( d->member_header ); + } + + +int LZ_decompress_dictionary_size( struct LZ_Decoder * const d ) + { + if( !verify_decoder( d ) ) return -1; + return Lh_get_dictionary_size( d->member_header ); + } + + +unsigned LZ_decompress_data_crc( struct LZ_Decoder * const d ) + { + if( verify_decoder( d ) && d->lz_decoder ) + return LZd_crc( d->lz_decoder ); + return 0; + } + + +unsigned long long LZ_decompress_data_position( struct LZ_Decoder * const d ) + { + if( verify_decoder( d ) && d->lz_decoder ) + return LZd_data_position( d->lz_decoder ); + return 0; + } + + +unsigned long long LZ_decompress_member_position( struct LZ_Decoder * const d ) + { + if( !verify_decoder( d ) ) return 0; + return d->rdec->member_position; + } + + +unsigned long long LZ_decompress_total_in_size( struct LZ_Decoder * const d ) + { + if( !verify_decoder( d ) ) return 0; + return d->partial_in_size + d->rdec->member_position; + } + + +unsigned long long LZ_decompress_total_out_size( struct LZ_Decoder * const d ) + { + if( !verify_decoder( d ) ) return 0; + if( d->lz_decoder ) + return d->partial_out_size + LZd_data_position( d->lz_decoder ); + return d->partial_out_size; + } diff --git a/3rdparty/lzlib-1.12/lzlib.h b/3rdparty/lzlib-1.12/lzlib.h new file mode 100644 index 0000000..b6374d8 --- /dev/null +++ b/3rdparty/lzlib-1.12/lzlib.h @@ -0,0 +1,110 @@ +/* Lzlib - Compression library for the lzip format + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This library is free software. Redistribution and use in source and + binary forms, with or without modification, are permitted provided + that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +/* LZ_API_VERSION was first defined in lzlib 1.8 to 1. + Since lzlib 1.12, LZ_API_VERSION is defined as (major * 1000 + minor). */ + +#define LZ_API_VERSION 1012 + +static const char * const LZ_version_string = "1.12"; + +enum LZ_Errno { LZ_ok = 0, LZ_bad_argument, LZ_mem_error, + LZ_sequence_error, LZ_header_error, LZ_unexpected_eof, + LZ_data_error, LZ_library_error }; + + +int LZ_api_version( void ); /* new in 1.12 */ +const char * LZ_version( void ); +const char * LZ_strerror( const enum LZ_Errno lz_errno ); + +int LZ_min_dictionary_bits( void ); +int LZ_min_dictionary_size( void ); +int LZ_max_dictionary_bits( void ); +int LZ_max_dictionary_size( void ); +int LZ_min_match_len_limit( void ); +int LZ_max_match_len_limit( void ); + + +/* --------------------- Compression Functions --------------------- */ + +struct LZ_Encoder; + +struct LZ_Encoder * LZ_compress_open( const int dictionary_size, + const int match_len_limit, + const unsigned long long member_size ); +int LZ_compress_close( struct LZ_Encoder * const encoder ); + +int LZ_compress_finish( struct LZ_Encoder * const encoder ); +int LZ_compress_restart_member( struct LZ_Encoder * const encoder, + const unsigned long long member_size ); +int LZ_compress_sync_flush( struct LZ_Encoder * const encoder ); + +int LZ_compress_read( struct LZ_Encoder * const encoder, + uint8_t * const buffer, const int size ); +int LZ_compress_write( struct LZ_Encoder * const encoder, + const uint8_t * const buffer, const int size ); +int LZ_compress_write_size( struct LZ_Encoder * const encoder ); + +enum LZ_Errno LZ_compress_errno( struct LZ_Encoder * const encoder ); +int LZ_compress_finished( struct LZ_Encoder * const encoder ); +int LZ_compress_member_finished( struct LZ_Encoder * const encoder ); + +unsigned long long LZ_compress_data_position( struct LZ_Encoder * const encoder ); +unsigned long long LZ_compress_member_position( struct LZ_Encoder * const encoder ); +unsigned long long LZ_compress_total_in_size( struct LZ_Encoder * const encoder ); +unsigned long long LZ_compress_total_out_size( struct LZ_Encoder * const encoder ); + + +/* -------------------- Decompression Functions -------------------- */ + +struct LZ_Decoder; + +struct LZ_Decoder * LZ_decompress_open( void ); +int LZ_decompress_close( struct LZ_Decoder * const decoder ); + +int LZ_decompress_finish( struct LZ_Decoder * const decoder ); +int LZ_decompress_reset( struct LZ_Decoder * const decoder ); +int LZ_decompress_sync_to_member( struct LZ_Decoder * const decoder ); + +int LZ_decompress_read( struct LZ_Decoder * const decoder, + uint8_t * const buffer, const int size ); +int LZ_decompress_write( struct LZ_Decoder * const decoder, + const uint8_t * const buffer, const int size ); +int LZ_decompress_write_size( struct LZ_Decoder * const decoder ); + +enum LZ_Errno LZ_decompress_errno( struct LZ_Decoder * const decoder ); +int LZ_decompress_finished( struct LZ_Decoder * const decoder ); +int LZ_decompress_member_finished( struct LZ_Decoder * const decoder ); + +int LZ_decompress_member_version( struct LZ_Decoder * const decoder ); +int LZ_decompress_dictionary_size( struct LZ_Decoder * const decoder ); +unsigned LZ_decompress_data_crc( struct LZ_Decoder * const decoder ); + +unsigned long long LZ_decompress_data_position( struct LZ_Decoder * const decoder ); +unsigned long long LZ_decompress_member_position( struct LZ_Decoder * const decoder ); +unsigned long long LZ_decompress_total_in_size( struct LZ_Decoder * const decoder ); +unsigned long long LZ_decompress_total_out_size( struct LZ_Decoder * const decoder ); + +#ifdef __cplusplus +} +#endif diff --git a/3rdparty/lzlib-1.12/main.c b/3rdparty/lzlib-1.12/main.c new file mode 100644 index 0000000..c623d9b --- /dev/null +++ b/3rdparty/lzlib-1.12/main.c @@ -0,0 +1,1222 @@ +/* Minilzip - Test program for the library lzlib + Copyright (C) 2009-2021 Antonio Diaz Diaz. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +/* + Exit status: 0 for a normal exit, 1 for environmental problems + (file not found, invalid flags, I/O errors, etc), 2 to indicate a + corrupt or invalid input file, 3 for an internal consistency error + (eg, bug) which caused minilzip to panic. +*/ + +#define _FILE_OFFSET_BITS 64 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if defined(__MSVCRT__) || defined(__OS2__) || defined(__DJGPP__) +#include +#if defined(__MSVCRT__) +#define fchmod(x,y) 0 +#define fchown(x,y,z) 0 +#define strtoull strtoul +#define SIGHUP SIGTERM +#define S_ISSOCK(x) 0 +#ifndef S_IRGRP +#define S_IRGRP 0 +#define S_IWGRP 0 +#define S_IROTH 0 +#define S_IWOTH 0 +#endif +#endif +#if defined(__DJGPP__) +#define S_ISSOCK(x) 0 +#define S_ISVTX 0 +#endif +#endif + +#include "carg_parser.h" +#include "lzlib.h" + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +#if CHAR_BIT != 8 +#error "Environments where CHAR_BIT != 8 are not supported." +#endif + +#ifndef max + #define max(x,y) ((x) >= (y) ? (x) : (y)) +#endif +#ifndef min + #define min(x,y) ((x) <= (y) ? (x) : (y)) +#endif + +static void cleanup_and_fail( const int retval ); +static void show_error( const char * const msg, const int errcode, + const bool help ); +static void show_file_error( const char * const filename, + const char * const msg, const int errcode ); +static void internal_error( const char * const msg ); +static const char * const mem_msg = "Not enough memory."; + +int verbosity = 0; + +static const char * const program_name = "minilzip"; +static const char * const program_year = "2021"; +static const char * invocation_name = "minilzip"; /* default value */ + +static const struct { const char * from; const char * to; } known_extensions[] = { + { ".lz", "" }, + { ".tlz", ".tar" }, + { 0, 0 } }; + +struct Lzma_options + { + int dictionary_size; /* 4 KiB .. 512 MiB */ + int match_len_limit; /* 5 .. 273 */ + }; + +enum Mode { m_compress, m_decompress, m_test }; + +/* Variables used in signal handler context. + They are not declared volatile because the handler never returns. */ +static char * output_filename = 0; +static int outfd = -1; +static bool delete_output_on_interrupt = false; + + +static void show_help( void ) + { + printf( "Minilzip is a test program for the compression library lzlib, fully\n" + "compatible with lzip 1.4 or newer.\n" + "\nLzip is a lossless data compressor with a user interface similar to the one\n" + "of gzip or bzip2. Lzip uses a simplified form of the 'Lempel-Ziv-Markov\n" + "chain-Algorithm' (LZMA) stream format, chosen to maximize safety and\n" + "interoperability. Lzip can compress about as fast as gzip (lzip -0) or\n" + "compress most files more than bzip2 (lzip -9). Decompression speed is\n" + "intermediate between gzip and bzip2. Lzip is better than gzip and bzip2 from\n" + "a data recovery perspective. Lzip has been designed, written, and tested\n" + "with great care to replace gzip and bzip2 as the standard general-purpose\n" + "compressed format for unix-like systems.\n" + "\nUsage: %s [options] [files]\n", invocation_name ); + printf( "\nOptions:\n" + " -h, --help display this help and exit\n" + " -V, --version output version information and exit\n" + " -a, --trailing-error exit with error status if trailing data\n" + " -b, --member-size= set member size limit in bytes\n" + " -c, --stdout write to standard output, keep input files\n" + " -d, --decompress decompress\n" + " -f, --force overwrite existing output files\n" + " -F, --recompress force re-compression of compressed files\n" + " -k, --keep keep (don't delete) input files\n" + " -m, --match-length= set match length limit in bytes [36]\n" + " -o, --output= write to , keep input files\n" + " -q, --quiet suppress all messages\n" + " -s, --dictionary-size= set dictionary size limit in bytes [8 MiB]\n" + " -S, --volume-size= set volume size limit in bytes\n" + " -t, --test test compressed file integrity\n" + " -v, --verbose be verbose (a 2nd -v gives more)\n" + " -0 .. -9 set compression level [default 6]\n" + " --fast alias for -0\n" + " --best alias for -9\n" + " --loose-trailing allow trailing data seeming corrupt header\n" + " --check-lib compare version of lzlib.h with liblz.{a,so}\n" + "\nIf no file names are given, or if a file is '-', minilzip compresses or\n" + "decompresses from standard input to standard output.\n" + "Numbers may be followed by a multiplier: k = kB = 10^3 = 1000,\n" + "Ki = KiB = 2^10 = 1024, M = 10^6, Mi = 2^20, G = 10^9, Gi = 2^30, etc...\n" + "Dictionary sizes 12 to 29 are interpreted as powers of two, meaning 2^12\n" + "to 2^29 bytes.\n" + "\nThe bidimensional parameter space of LZMA can't be mapped to a linear\n" + "scale optimal for all files. If your files are large, very repetitive,\n" + "etc, you may need to use the options --dictionary-size and --match-length\n" + "directly to achieve optimal performance.\n" + "\nTo extract all the files from archive 'foo.tar.lz', use the commands\n" + "'tar -xf foo.tar.lz' or 'minilzip -cd foo.tar.lz | tar -xf -'.\n" + "\nExit status: 0 for a normal exit, 1 for environmental problems (file\n" + "not found, invalid flags, I/O errors, etc), 2 to indicate a corrupt or\n" + "invalid input file, 3 for an internal consistency error (eg, bug) which\n" + "caused minilzip to panic.\n" + "\nThe ideas embodied in lzlib are due to (at least) the following people:\n" + "Abraham Lempel and Jacob Ziv (for the LZ algorithm), Andrey Markov (for the\n" + "definition of Markov chains), G.N.N. Martin (for the definition of range\n" + "encoding), Igor Pavlov (for putting all the above together in LZMA), and\n" + "Julian Seward (for bzip2's CLI).\n" + "\nReport bugs to lzip-bug@nongnu.org\n" + "Lzlib home page: http://www.nongnu.org/lzip/lzlib.html\n" ); + } + + +static void show_version( void ) + { + printf( "%s %s\n", program_name, PROGVERSION ); + printf( "Copyright (C) %s Antonio Diaz Diaz.\n", program_year ); + printf( "Using lzlib %s\n", LZ_version() ); + printf( "License GPLv2+: GNU GPL version 2 or later \n" + "This is free software: you are free to change and redistribute it.\n" + "There is NO WARRANTY, to the extent permitted by law.\n" ); + } + + +int check_lib() + { + bool warning = false; + if( strcmp( LZ_version_string, LZ_version() ) != 0 ) + { warning = true; + if( verbosity >= 0 ) + printf( "warning: LZ_version_string != LZ_version() (%s vs %s)\n", + LZ_version_string, LZ_version() ); } +#if defined LZ_API_VERSION && LZ_API_VERSION >= 1012 + if( LZ_API_VERSION != LZ_api_version() ) + { warning = true; + if( verbosity >= 0 ) + printf( "warning: LZ_API_VERSION != LZ_api_version() (%u vs %u)\n", + LZ_API_VERSION, LZ_api_version() ); } +#endif + if( verbosity >= 1 ) + { + printf( "Using lzlib %s\n", LZ_version() ); +#if !defined LZ_API_VERSION + fputs( "LZ_API_VERSION is not defined.\n", stdout ); +#elif LZ_API_VERSION >= 1012 + printf( "Using LZ_API_VERSION = %u\n", LZ_api_version() ); +#else + printf( "Compiled with LZ_API_VERSION = %u. " + "Using an unknown LZ_API_VERSION\n", LZ_API_VERSION ); +#endif + } + return warning; + } + + +/* assure at least a minimum size for buffer 'buf' */ +static void * resize_buffer( void * buf, const unsigned min_size ) + { + if( buf ) buf = realloc( buf, min_size ); + else buf = malloc( min_size ); + if( !buf ) { show_error( mem_msg, 0, false ); cleanup_and_fail( 1 ); } + return buf; + } + + +struct Pretty_print + { + const char * name; + char * padded_name; + const char * stdin_name; + unsigned longest_name; + bool first_post; + }; + +static void Pp_init( struct Pretty_print * const pp, + const char * const filenames[], const int num_filenames ) + { + unsigned stdin_name_len; + int i; + pp->name = 0; + pp->padded_name = 0; + pp->stdin_name = "(stdin)"; + pp->longest_name = 0; + pp->first_post = false; + + if( verbosity <= 0 ) return; + stdin_name_len = strlen( pp->stdin_name ); + for( i = 0; i < num_filenames; ++i ) + { + const char * const s = filenames[i]; + const unsigned len = (strcmp( s, "-" ) == 0) ? stdin_name_len : strlen( s ); + if( pp->longest_name < len ) pp->longest_name = len; + } + if( pp->longest_name == 0 ) pp->longest_name = stdin_name_len; + } + +static void Pp_set_name( struct Pretty_print * const pp, + const char * const filename ) + { + unsigned name_len, padded_name_len, i = 0; + + if( filename && filename[0] && strcmp( filename, "-" ) != 0 ) + pp->name = filename; + else pp->name = pp->stdin_name; + name_len = strlen( pp->name ); + padded_name_len = max( name_len, pp->longest_name ) + 4; + pp->padded_name = resize_buffer( pp->padded_name, padded_name_len + 1 ); + while( i < 2 ) pp->padded_name[i++] = ' '; + while( i < name_len + 2 ) { pp->padded_name[i] = pp->name[i-2]; ++i; } + pp->padded_name[i++] = ':'; + while( i < padded_name_len ) pp->padded_name[i++] = ' '; + pp->padded_name[i] = 0; + pp->first_post = true; + } + +static void Pp_reset( struct Pretty_print * const pp ) + { if( pp->name && pp->name[0] ) pp->first_post = true; } + +static void Pp_show_msg( struct Pretty_print * const pp, const char * const msg ) + { + if( verbosity >= 0 ) + { + if( pp->first_post ) + { + pp->first_post = false; + fputs( pp->padded_name, stderr ); + if( !msg ) fflush( stderr ); + } + if( msg ) fprintf( stderr, "%s\n", msg ); + } + } + + +static void show_header( const unsigned dictionary_size ) + { + enum { factor = 1024 }; + const char * const prefix[8] = + { "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi", "Yi" }; + const char * p = ""; + const char * np = " "; + unsigned num = dictionary_size; + bool exact = ( num % factor == 0 ); + + int i; for( i = 0; i < 8 && ( num > 9999 || ( exact && num >= factor ) ); ++i ) + { num /= factor; if( num % factor != 0 ) exact = false; + p = prefix[i]; np = ""; } + fprintf( stderr, "dict %s%4u %sB, ", np, num, p ); + } + + +static unsigned long long getnum( const char * const ptr, + const unsigned long long llimit, + const unsigned long long ulimit ) + { + unsigned long long result; + char * tail; + errno = 0; + result = strtoull( ptr, &tail, 0 ); + if( tail == ptr ) + { + show_error( "Bad or missing numerical argument.", 0, true ); + exit( 1 ); + } + + if( !errno && tail[0] ) + { + const unsigned factor = ( tail[1] == 'i' ) ? 1024 : 1000; + int exponent = 0; /* 0 = bad multiplier */ + int i; + switch( tail[0] ) + { + case 'Y': exponent = 8; break; + case 'Z': exponent = 7; break; + case 'E': exponent = 6; break; + case 'P': exponent = 5; break; + case 'T': exponent = 4; break; + case 'G': exponent = 3; break; + case 'M': exponent = 2; break; + case 'K': if( factor == 1024 ) exponent = 1; break; + case 'k': if( factor == 1000 ) exponent = 1; break; + } + if( exponent <= 0 ) + { + show_error( "Bad multiplier in numerical argument.", 0, true ); + exit( 1 ); + } + for( i = 0; i < exponent; ++i ) + { + if( ulimit / factor >= result ) result *= factor; + else { errno = ERANGE; break; } + } + } + if( !errno && ( result < llimit || result > ulimit ) ) errno = ERANGE; + if( errno ) + { + show_error( "Numerical argument out of limits.", 0, false ); + exit( 1 ); + } + return result; + } + + +static int get_dict_size( const char * const arg ) + { + char * tail; + int dictionary_size; + const long bits = strtol( arg, &tail, 0 ); + if( bits >= LZ_min_dictionary_bits() && + bits <= LZ_max_dictionary_bits() && *tail == 0 ) + return 1 << bits; + dictionary_size = getnum( arg, LZ_min_dictionary_size(), + LZ_max_dictionary_size() ); + if( dictionary_size == 65535 ) ++dictionary_size; /* no fast encoder */ + return dictionary_size; + } + + +static void set_mode( enum Mode * const program_modep, const enum Mode new_mode ) + { + if( *program_modep != m_compress && *program_modep != new_mode ) + { + show_error( "Only one operation can be specified.", 0, true ); + exit( 1 ); + } + *program_modep = new_mode; + } + + +static int extension_index( const char * const name ) + { + int eindex; + for( eindex = 0; known_extensions[eindex].from; ++eindex ) + { + const char * const ext = known_extensions[eindex].from; + const unsigned name_len = strlen( name ); + const unsigned ext_len = strlen( ext ); + if( name_len > ext_len && + strncmp( name + name_len - ext_len, ext, ext_len ) == 0 ) + return eindex; + } + return -1; + } + + +static void set_c_outname( const char * const name, const bool force_ext, + const bool multifile ) + { + output_filename = resize_buffer( output_filename, strlen( name ) + 5 + + strlen( known_extensions[0].from ) + 1 ); + strcpy( output_filename, name ); + if( multifile ) strcat( output_filename, "00001" ); + if( force_ext || multifile ) + strcat( output_filename, known_extensions[0].from ); + } + + +static void set_d_outname( const char * const name, const int eindex ) + { + const unsigned name_len = strlen( name ); + if( eindex >= 0 ) + { + const char * const from = known_extensions[eindex].from; + const unsigned from_len = strlen( from ); + if( name_len > from_len ) + { + output_filename = resize_buffer( output_filename, name_len + + strlen( known_extensions[eindex].to ) + 1 ); + strcpy( output_filename, name ); + strcpy( output_filename + name_len - from_len, known_extensions[eindex].to ); + return; + } + } + output_filename = resize_buffer( output_filename, name_len + 4 + 1 ); + strcpy( output_filename, name ); + strcat( output_filename, ".out" ); + if( verbosity >= 1 ) + fprintf( stderr, "%s: Can't guess original name for '%s' -- using '%s'\n", + program_name, name, output_filename ); + } + + +static int open_instream( const char * const name, struct stat * const in_statsp, + const enum Mode program_mode, const int eindex, + const bool one_to_one, const bool recompress ) + { + int infd = -1; + if( program_mode == m_compress && !recompress && eindex >= 0 ) + { + if( verbosity >= 0 ) + fprintf( stderr, "%s: Input file '%s' already has '%s' suffix.\n", + program_name, name, known_extensions[eindex].from ); + } + else + { + infd = open( name, O_RDONLY | O_BINARY ); + if( infd < 0 ) + show_file_error( name, "Can't open input file", errno ); + else + { + const int i = fstat( infd, in_statsp ); + const mode_t mode = in_statsp->st_mode; + const bool can_read = ( i == 0 && + ( S_ISBLK( mode ) || S_ISCHR( mode ) || + S_ISFIFO( mode ) || S_ISSOCK( mode ) ) ); + if( i != 0 || ( !S_ISREG( mode ) && ( !can_read || one_to_one ) ) ) + { + if( verbosity >= 0 ) + fprintf( stderr, "%s: Input file '%s' is not a regular file%s.\n", + program_name, name, ( can_read && one_to_one ) ? + ",\n and neither '-c' nor '-o' were specified" : "" ); + close( infd ); + infd = -1; + } + } + } + return infd; + } + + +static bool open_outstream( const bool force, const bool protect ) + { + const mode_t usr_rw = S_IRUSR | S_IWUSR; + const mode_t all_rw = usr_rw | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; + const mode_t outfd_mode = protect ? usr_rw : all_rw; + int flags = O_CREAT | O_WRONLY | O_BINARY; + if( force ) flags |= O_TRUNC; else flags |= O_EXCL; + + outfd = open( output_filename, flags, outfd_mode ); + if( outfd >= 0 ) delete_output_on_interrupt = true; + else if( verbosity >= 0 ) + { + if( errno == EEXIST ) + fprintf( stderr, "%s: Output file '%s' already exists, skipping.\n", + program_name, output_filename ); + else + fprintf( stderr, "%s: Can't create output file '%s': %s\n", + program_name, output_filename, strerror( errno ) ); + } + return ( outfd >= 0 ); + } + + +static void set_signals( void (*action)(int) ) + { + signal( SIGHUP, action ); + signal( SIGINT, action ); + signal( SIGTERM, action ); + } + + +static void cleanup_and_fail( const int retval ) + { + set_signals( SIG_IGN ); /* ignore signals */ + if( delete_output_on_interrupt ) + { + delete_output_on_interrupt = false; + if( verbosity >= 0 ) + fprintf( stderr, "%s: Deleting output file '%s', if it exists.\n", + program_name, output_filename ); + if( outfd >= 0 ) { close( outfd ); outfd = -1; } + if( remove( output_filename ) != 0 && errno != ENOENT ) + show_error( "WARNING: deletion of output file (apparently) failed.", 0, false ); + } + exit( retval ); + } + + +static void signal_handler( int sig ) + { + if( sig ) {} /* keep compiler happy */ + show_error( "Control-C or similar caught, quitting.", 0, false ); + cleanup_and_fail( 1 ); + } + + +static inline void set_retval( int * retval, const int new_val ) + { if( *retval < new_val ) *retval = new_val; } + + +static bool check_tty_in( const char * const input_filename, const int infd, + const enum Mode program_mode, int * const retval ) + { + if( ( program_mode == m_decompress || program_mode == m_test ) && + isatty( infd ) ) /* for example /dev/tty */ + { show_file_error( input_filename, + "I won't read compressed data from a terminal.", 0 ); + close( infd ); set_retval( retval, 1 ); + if( program_mode != m_test ) cleanup_and_fail( *retval ); + return false; } + return true; + } + +static bool check_tty_out( const enum Mode program_mode ) + { + if( program_mode == m_compress && isatty( outfd ) ) + { show_file_error( output_filename[0] ? + output_filename : "(stdout)", + "I won't write compressed data to a terminal.", 0 ); + return false; } + return true; + } + + +/* Set permissions, owner, and times. */ +static void close_and_set_permissions( const struct stat * const in_statsp ) + { + bool warning = false; + if( in_statsp ) + { + const mode_t mode = in_statsp->st_mode; + /* fchown will in many cases return with EPERM, which can be safely ignored. */ + if( fchown( outfd, in_statsp->st_uid, in_statsp->st_gid ) == 0 ) + { if( fchmod( outfd, mode ) != 0 ) warning = true; } + else + if( errno != EPERM || + fchmod( outfd, mode & ~( S_ISUID | S_ISGID | S_ISVTX ) ) != 0 ) + warning = true; + } + if( close( outfd ) != 0 ) + { + show_error( "Error closing output file", errno, false ); + cleanup_and_fail( 1 ); + } + outfd = -1; + delete_output_on_interrupt = false; + if( in_statsp ) + { + struct utimbuf t; + t.actime = in_statsp->st_atime; + t.modtime = in_statsp->st_mtime; + if( utime( output_filename, &t ) != 0 ) warning = true; + } + if( warning && verbosity >= 1 ) + show_error( "Can't change output file attributes.", 0, false ); + } + + +/* Returns the number of bytes really read. + If (returned value < size) and (errno == 0), means EOF was reached. +*/ +static int readblock( const int fd, uint8_t * const buf, const int size ) + { + int sz = 0; + errno = 0; + while( sz < size ) + { + const int n = read( fd, buf + sz, size - sz ); + if( n > 0 ) sz += n; + else if( n == 0 ) break; /* EOF */ + else if( errno != EINTR ) break; + errno = 0; + } + return sz; + } + + +/* Returns the number of bytes really written. + If (returned value < size), it is always an error. +*/ +static int writeblock( const int fd, const uint8_t * const buf, const int size ) + { + int sz = 0; + errno = 0; + while( sz < size ) + { + const int n = write( fd, buf + sz, size - sz ); + if( n > 0 ) sz += n; + else if( n < 0 && errno != EINTR ) break; + errno = 0; + } + return sz; + } + + +static bool next_filename( void ) + { + const unsigned name_len = strlen( output_filename ); + const unsigned ext_len = strlen( known_extensions[0].from ); + int i, j; + if( name_len >= ext_len + 5 ) /* "*00001.lz" */ + for( i = name_len - ext_len - 1, j = 0; j < 5; --i, ++j ) + { + if( output_filename[i] < '9' ) { ++output_filename[i]; return true; } + else output_filename[i] = '0'; + } + return false; + } + + +static int do_compress( struct LZ_Encoder * const encoder, + const unsigned long long member_size, + const unsigned long long volume_size, const int infd, + struct Pretty_print * const pp, + const struct stat * const in_statsp ) + { + unsigned long long partial_volume_size = 0; + enum { buffer_size = 65536 }; + uint8_t buffer[buffer_size]; /* read/write buffer */ + if( verbosity >= 1 ) Pp_show_msg( pp, 0 ); + + while( true ) + { + int in_size = 0, out_size; + while( LZ_compress_write_size( encoder ) > 0 ) + { + const int size = min( LZ_compress_write_size( encoder ), buffer_size ); + const int rd = readblock( infd, buffer, size ); + if( rd != size && errno ) + { + Pp_show_msg( pp, 0 ); show_error( "Read error", errno, false ); + return 1; + } + if( rd > 0 && rd != LZ_compress_write( encoder, buffer, rd ) ) + internal_error( "library error (LZ_compress_write)." ); + if( rd < size ) LZ_compress_finish( encoder ); +/* else LZ_compress_sync_flush( encoder ); */ + in_size += rd; + } + out_size = LZ_compress_read( encoder, buffer, buffer_size ); + if( out_size < 0 ) + { + Pp_show_msg( pp, 0 ); + if( verbosity >= 0 ) + fprintf( stderr, "%s: LZ_compress_read error: %s\n", + program_name, LZ_strerror( LZ_compress_errno( encoder ) ) ); + return 1; + } + else if( out_size > 0 ) + { + const int wr = writeblock( outfd, buffer, out_size ); + if( wr != out_size ) + { + Pp_show_msg( pp, 0 ); show_error( "Write error", errno, false ); + return 1; + } + } + else if( in_size == 0 ) + internal_error( "library error (LZ_compress_read)." ); + if( LZ_compress_member_finished( encoder ) ) + { + unsigned long long size; + if( LZ_compress_finished( encoder ) == 1 ) break; + if( volume_size > 0 ) + { + partial_volume_size += LZ_compress_member_position( encoder ); + if( partial_volume_size >= volume_size - LZ_min_dictionary_size() ) + { + partial_volume_size = 0; + if( delete_output_on_interrupt ) + { + close_and_set_permissions( in_statsp ); + if( !next_filename() ) + { Pp_show_msg( pp, "Too many volume files." ); return 1; } + if( !open_outstream( true, in_statsp ) ) return 1; + } + } + size = min( member_size, volume_size - partial_volume_size ); + } + else + size = member_size; + if( LZ_compress_restart_member( encoder, size ) < 0 ) + { + Pp_show_msg( pp, 0 ); + if( verbosity >= 0 ) + fprintf( stderr, "%s: LZ_compress_restart_member error: %s\n", + program_name, LZ_strerror( LZ_compress_errno( encoder ) ) ); + return 1; + } + } + } + + if( verbosity >= 1 ) + { + const unsigned long long in_size = LZ_compress_total_in_size( encoder ); + const unsigned long long out_size = LZ_compress_total_out_size( encoder ); + if( in_size == 0 || out_size == 0 ) + fputs( " no data compressed.\n", stderr ); + else + fprintf( stderr, "%6.3f:1, %5.2f%% ratio, %5.2f%% saved, " + "%llu in, %llu out.\n", + (double)in_size / out_size, + ( 100.0 * out_size ) / in_size, + 100.0 - ( ( 100.0 * out_size ) / in_size ), + in_size, out_size ); + } + return 0; + } + + +static int compress( const unsigned long long member_size, + const unsigned long long volume_size, const int infd, + const struct Lzma_options * const encoder_options, + struct Pretty_print * const pp, + const struct stat * const in_statsp ) + { + struct LZ_Encoder * const encoder = + LZ_compress_open( encoder_options->dictionary_size, + encoder_options->match_len_limit, ( volume_size > 0 ) ? + min( member_size, volume_size ) : member_size ); + int retval; + + if( !encoder || LZ_compress_errno( encoder ) != LZ_ok ) + { + if( !encoder || LZ_compress_errno( encoder ) == LZ_mem_error ) + Pp_show_msg( pp, "Not enough memory. Try a smaller dictionary size." ); + else + internal_error( "invalid argument to encoder." ); + retval = 1; + } + else retval = do_compress( encoder, member_size, volume_size, + infd, pp, in_statsp ); + LZ_compress_close( encoder ); + return retval; + } + + +static int do_decompress( struct LZ_Decoder * const decoder, const int infd, + struct Pretty_print * const pp, const bool ignore_trailing, + const bool loose_trailing, const bool testing ) + { + enum { buffer_size = 65536 }; + uint8_t buffer[buffer_size]; /* read/write buffer */ + unsigned long long total_in = 0; /* to detect library stall */ + bool first_member; + + for( first_member = true; ; ) + { + const int max_in_size = + min( LZ_decompress_write_size( decoder ), buffer_size ); + int in_size = 0, out_size = 0; + if( max_in_size > 0 ) + { + in_size = readblock( infd, buffer, max_in_size ); + if( in_size != max_in_size && errno ) + { + Pp_show_msg( pp, 0 ); show_error( "Read error", errno, false ); + return 1; + } + if( in_size > 0 && in_size != LZ_decompress_write( decoder, buffer, in_size ) ) + internal_error( "library error (LZ_decompress_write)." ); + if( in_size < max_in_size ) LZ_decompress_finish( decoder ); + } + while( true ) + { + const int rd = + LZ_decompress_read( decoder, (outfd >= 0) ? buffer : 0, buffer_size ); + if( rd > 0 ) + { + out_size += rd; + if( outfd >= 0 ) + { + const int wr = writeblock( outfd, buffer, rd ); + if( wr != rd ) + { + Pp_show_msg( pp, 0 ); show_error( "Write error", errno, false ); + return 1; + } + } + } + else if( rd < 0 ) { out_size = rd; break; } + if( LZ_decompress_member_finished( decoder ) == 1 ) + { + if( verbosity >= 1 ) + { + const unsigned long long data_size = LZ_decompress_data_position( decoder ); + const unsigned long long member_size = LZ_decompress_member_position( decoder ); + if( verbosity >= 2 || ( verbosity == 1 && first_member ) ) + Pp_show_msg( pp, 0 ); + if( verbosity >= 2 ) + { + if( verbosity >= 4 ) + show_header( LZ_decompress_dictionary_size( decoder ) ); + if( data_size == 0 || member_size == 0 ) + fputs( "no data compressed. ", stderr ); + else + fprintf( stderr, "%6.3f:1, %5.2f%% ratio, %5.2f%% saved. ", + (double)data_size / member_size, + ( 100.0 * member_size ) / data_size, + 100.0 - ( ( 100.0 * member_size ) / data_size ) ); + if( verbosity >= 4 ) + fprintf( stderr, "CRC %08X, ", LZ_decompress_data_crc( decoder ) ); + if( verbosity >= 3 ) + fprintf( stderr, "%9llu out, %8llu in. ", data_size, member_size ); + fputs( testing ? "ok\n" : "done\n", stderr ); Pp_reset( pp ); + } + } + first_member = false; + } + if( rd <= 0 ) break; + } + if( out_size < 0 || ( first_member && out_size == 0 ) ) + { + const unsigned long long member_pos = LZ_decompress_member_position( decoder ); + const enum LZ_Errno lz_errno = LZ_decompress_errno( decoder ); + if( lz_errno == LZ_library_error ) + internal_error( "library error (LZ_decompress_read)." ); + if( member_pos <= 6 ) + { + if( lz_errno == LZ_unexpected_eof ) + { + if( first_member ) + show_file_error( pp->name, "File ends unexpectedly at member header.", 0 ); + else + Pp_show_msg( pp, "Truncated header in multimember file." ); + return 2; + } + else if( lz_errno == LZ_data_error ) + { + if( member_pos == 4 ) + { if( verbosity >= 0 ) + { Pp_show_msg( pp, 0 ); + fprintf( stderr, "Version %d member format not supported.\n", + LZ_decompress_member_version( decoder ) ); } } + else if( member_pos == 5 ) + Pp_show_msg( pp, "Invalid dictionary size in member header." ); + else if( first_member ) /* for lzlib older than 1.10 */ + Pp_show_msg( pp, "Bad version or dictionary size in member header." ); + else if( !loose_trailing ) + Pp_show_msg( pp, "Corrupt header in multimember file." ); + else if( !ignore_trailing ) + Pp_show_msg( pp, "Trailing data not allowed." ); + else break; /* trailing data */ + return 2; + } + } + if( lz_errno == LZ_header_error ) + { + if( first_member ) + show_file_error( pp->name, + "Bad magic number (file not in lzip format).", 0 ); + else if( !ignore_trailing ) + Pp_show_msg( pp, "Trailing data not allowed." ); + else break; /* trailing data */ + return 2; + } + if( lz_errno == LZ_mem_error ) { Pp_show_msg( pp, mem_msg ); return 1; } + if( verbosity >= 0 ) + { + Pp_show_msg( pp, 0 ); + fprintf( stderr, "%s at pos %llu\n", ( lz_errno == LZ_unexpected_eof ) ? + "File ends unexpectedly" : "Decoder error", + LZ_decompress_total_in_size( decoder ) ); + } + return 2; + } + if( LZ_decompress_finished( decoder ) == 1 ) break; + if( in_size == 0 && out_size == 0 ) + { + const unsigned long long size = LZ_decompress_total_in_size( decoder ); + if( total_in == size ) internal_error( "library error (stalled)." ); + total_in = size; + } + } + if( verbosity == 1 ) fputs( testing ? "ok\n" : "done\n", stderr ); + return 0; + } + + +static int decompress( const int infd, struct Pretty_print * const pp, + const bool ignore_trailing, + const bool loose_trailing, const bool testing ) + { + struct LZ_Decoder * const decoder = LZ_decompress_open(); + int retval; + + if( !decoder || LZ_decompress_errno( decoder ) != LZ_ok ) + { Pp_show_msg( pp, mem_msg ); retval = 1; } + else retval = do_decompress( decoder, infd, pp, ignore_trailing, + loose_trailing, testing ); + LZ_decompress_close( decoder ); + return retval; + } + + +static void show_error( const char * const msg, const int errcode, + const bool help ) + { + if( verbosity < 0 ) return; + if( msg && msg[0] ) + fprintf( stderr, "%s: %s%s%s\n", program_name, msg, + ( errcode > 0 ) ? ": " : "", + ( errcode > 0 ) ? strerror( errcode ) : "" ); + if( help ) + fprintf( stderr, "Try '%s --help' for more information.\n", + invocation_name ); + } + + +static void show_file_error( const char * const filename, + const char * const msg, const int errcode ) + { + if( verbosity >= 0 ) + fprintf( stderr, "%s: %s: %s%s%s\n", program_name, filename, msg, + ( errcode > 0 ) ? ": " : "", + ( errcode > 0 ) ? strerror( errcode ) : "" ); + } + + +static void internal_error( const char * const msg ) + { + if( verbosity >= 0 ) + fprintf( stderr, "%s: internal error: %s\n", program_name, msg ); + exit( 3 ); + } + + +int main( const int argc, const char * const argv[] ) + { + /* Mapping from gzip/bzip2 style 1..9 compression modes + to the corresponding LZMA compression modes. */ + const struct Lzma_options option_mapping[] = + { + { 65535, 16 }, /* -0 (65535,16 chooses fast encoder) */ + { 1 << 20, 5 }, /* -1 */ + { 3 << 19, 6 }, /* -2 */ + { 1 << 21, 8 }, /* -3 */ + { 3 << 20, 12 }, /* -4 */ + { 1 << 22, 20 }, /* -5 */ + { 1 << 23, 36 }, /* -6 */ + { 1 << 24, 68 }, /* -7 */ + { 3 << 23, 132 }, /* -8 */ + { 1 << 25, 273 } }; /* -9 */ + struct Lzma_options encoder_options = option_mapping[6]; /* default = "-6" */ + const unsigned long long max_member_size = 0x0008000000000000ULL; /* 2 PiB */ + const unsigned long long max_volume_size = 0x4000000000000000ULL; /* 4 EiB */ + unsigned long long member_size = max_member_size; + unsigned long long volume_size = 0; + const char * default_output_filename = ""; + static struct Arg_parser parser; /* static because valgrind complains */ + static struct Pretty_print pp; /* and memory management in C sucks */ + static const char ** filenames = 0; + int num_filenames = 0; + enum Mode program_mode = m_compress; + int argind = 0; + int failed_tests = 0; + int retval = 0; + int i; + bool filenames_given = false; + bool force = false; + bool ignore_trailing = true; + bool keep_input_files = false; + bool loose_trailing = false; + bool recompress = false; + bool stdin_used = false; + bool to_stdout = false; + + enum { opt_chk = 256, opt_lt }; + const struct ap_Option options[] = + { + { '0', "fast", ap_no }, + { '1', 0, ap_no }, + { '2', 0, ap_no }, + { '3', 0, ap_no }, + { '4', 0, ap_no }, + { '5', 0, ap_no }, + { '6', 0, ap_no }, + { '7', 0, ap_no }, + { '8', 0, ap_no }, + { '9', "best", ap_no }, + { 'a', "trailing-error", ap_no }, + { 'b', "member-size", ap_yes }, + { 'c', "stdout", ap_no }, + { 'd', "decompress", ap_no }, + { 'f', "force", ap_no }, + { 'F', "recompress", ap_no }, + { 'h', "help", ap_no }, + { 'k', "keep", ap_no }, + { 'm', "match-length", ap_yes }, + { 'n', "threads", ap_yes }, + { 'o', "output", ap_yes }, + { 'q', "quiet", ap_no }, + { 's', "dictionary-size", ap_yes }, + { 'S', "volume-size", ap_yes }, + { 't', "test", ap_no }, + { 'v', "verbose", ap_no }, + { 'V', "version", ap_no }, + { opt_chk, "check-lib", ap_no }, + { opt_lt, "loose-trailing", ap_no }, + { 0, 0, ap_no } }; + + if( argc > 0 ) invocation_name = argv[0]; + + if( !ap_init( &parser, argc, argv, options, 0 ) ) + { show_error( mem_msg, 0, false ); return 1; } + if( ap_error( &parser ) ) /* bad option */ + { show_error( ap_error( &parser ), 0, true ); return 1; } + + for( ; argind < ap_arguments( &parser ); ++argind ) + { + const int code = ap_code( &parser, argind ); + const char * const arg = ap_argument( &parser, argind ); + if( !code ) break; /* no more options */ + switch( code ) + { + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + encoder_options = option_mapping[code-'0']; break; + case 'a': ignore_trailing = false; break; + case 'b': member_size = getnum( arg, 100000, max_member_size ); break; + case 'c': to_stdout = true; break; + case 'd': set_mode( &program_mode, m_decompress ); break; + case 'f': force = true; break; + case 'F': recompress = true; break; + case 'h': show_help(); return 0; + case 'k': keep_input_files = true; break; + case 'm': encoder_options.match_len_limit = + getnum( arg, LZ_min_match_len_limit(), + LZ_max_match_len_limit() ); break; + case 'n': break; + case 'o': if( strcmp( arg, "-" ) == 0 ) to_stdout = true; + else { default_output_filename = arg; } break; + case 'q': verbosity = -1; break; + case 's': encoder_options.dictionary_size = get_dict_size( arg ); + break; + case 'S': volume_size = getnum( arg, 100000, max_volume_size ); break; + case 't': set_mode( &program_mode, m_test ); break; + case 'v': if( verbosity < 4 ) ++verbosity; break; + case 'V': show_version(); return 0; + case opt_chk: return check_lib(); + case opt_lt: loose_trailing = true; break; + default : internal_error( "uncaught option." ); + } + } /* end process options */ + + if( strcmp( PROGVERSION, LZ_version_string ) != 0 ) + internal_error( "wrong PROGVERSION." ); +#if !defined LZ_API_VERSION || LZ_API_VERSION < 1012 +#error "lzlib 1.12 or newer needed." +#else + if( LZ_api_version() < 1012 ) /* minilzip passes null to LZ_decompress_read */ + { show_error( "lzlib 1.12 or newer needed. Try --check-lib.", 0, false ); + return 1; } + if( LZ_api_version() != LZ_API_VERSION ) show_error( + "warning: wrong library API version. Try --check-lib.", 0, false ); + else +#endif + if( strcmp( LZ_version_string, LZ_version() ) != 0 ) show_error( + "warning: wrong library version_string. Try --check-lib.", 0, false ); + +#if defined(__MSVCRT__) || defined(__OS2__) || defined(__DJGPP__) + setmode( STDIN_FILENO, O_BINARY ); + setmode( STDOUT_FILENO, O_BINARY ); +#endif + + num_filenames = max( 1, ap_arguments( &parser ) - argind ); + filenames = resize_buffer( filenames, num_filenames * sizeof filenames[0] ); + filenames[0] = "-"; + + for( i = 0; argind + i < ap_arguments( &parser ); ++i ) + { + filenames[i] = ap_argument( &parser, argind + i ); + if( strcmp( filenames[i], "-" ) != 0 ) filenames_given = true; + } + + if( program_mode == m_compress ) + { + if( volume_size > 0 && !to_stdout && default_output_filename[0] && + num_filenames > 1 ) + { show_error( "Only can compress one file when using '-o' and '-S'.", + 0, true ); return 1; } + } + else volume_size = 0; + if( program_mode == m_test ) to_stdout = false; /* apply overrides */ + if( program_mode == m_test || to_stdout ) default_output_filename = ""; + + output_filename = resize_buffer( output_filename, 1 ); + output_filename[0] = 0; + if( to_stdout && program_mode != m_test ) /* check tty only once */ + { outfd = STDOUT_FILENO; if( !check_tty_out( program_mode ) ) return 1; } + else outfd = -1; + + const bool to_file = !to_stdout && program_mode != m_test && + default_output_filename[0]; + if( !to_stdout && program_mode != m_test && ( filenames_given || to_file ) ) + set_signals( signal_handler ); + + Pp_init( &pp, filenames, num_filenames ); + + const bool one_to_one = !to_stdout && program_mode != m_test && !to_file; + for( i = 0; i < num_filenames; ++i ) + { + const char * input_filename = ""; + int infd; + int tmp; + struct stat in_stats; + const struct stat * in_statsp; + + Pp_set_name( &pp, filenames[i] ); + if( strcmp( filenames[i], "-" ) == 0 ) + { + if( stdin_used ) continue; else stdin_used = true; + infd = STDIN_FILENO; + if( !check_tty_in( pp.name, infd, program_mode, &retval ) ) continue; + if( one_to_one ) { outfd = STDOUT_FILENO; output_filename[0] = 0; } + } + else + { + const int eindex = extension_index( input_filename = filenames[i] ); + infd = open_instream( input_filename, &in_stats, program_mode, + eindex, one_to_one, recompress ); + if( infd < 0 ) { set_retval( &retval, 1 ); continue; } + if( !check_tty_in( pp.name, infd, program_mode, &retval ) ) continue; + if( one_to_one ) /* open outfd after verifying infd */ + { + if( program_mode == m_compress ) + set_c_outname( input_filename, true, volume_size > 0 ); + else set_d_outname( input_filename, eindex ); + if( !open_outstream( force, true ) ) + { close( infd ); set_retval( &retval, 1 ); continue; } + } + } + + if( one_to_one && !check_tty_out( program_mode ) ) + { set_retval( &retval, 1 ); return retval; } /* don't delete a tty */ + + if( to_file && outfd < 0 ) /* open outfd after verifying infd */ + { + if( program_mode == m_compress ) set_c_outname( default_output_filename, + false, volume_size > 0 ); + else + { output_filename = resize_buffer( output_filename, + strlen( default_output_filename ) + 1 ); + strcpy( output_filename, default_output_filename ); } + if( !open_outstream( force, false ) || !check_tty_out( program_mode ) ) + return 1; /* check tty only once and don't try to delete a tty */ + } + + in_statsp = ( input_filename[0] && one_to_one ) ? &in_stats : 0; + if( program_mode == m_compress ) + tmp = compress( member_size, volume_size, infd, &encoder_options, &pp, + in_statsp ); + else + tmp = decompress( infd, &pp, ignore_trailing, + loose_trailing, program_mode == m_test ); + if( close( infd ) != 0 ) + { show_file_error( pp.name, "Error closing input file", errno ); + set_retval( &tmp, 1 ); } + set_retval( &retval, tmp ); + if( tmp ) + { if( program_mode != m_test ) cleanup_and_fail( retval ); + else ++failed_tests; } + + if( delete_output_on_interrupt && one_to_one ) + close_and_set_permissions( in_statsp ); + if( input_filename[0] && !keep_input_files && one_to_one && + ( program_mode != m_compress || volume_size == 0 ) ) + remove( input_filename ); + } + if( delete_output_on_interrupt ) close_and_set_permissions( 0 ); /* -o */ + else if( outfd >= 0 && close( outfd ) != 0 ) /* -c */ + { + show_error( "Error closing stdout", errno, false ); + set_retval( &retval, 1 ); + } + if( failed_tests > 0 && verbosity >= 1 && num_filenames > 1 ) + fprintf( stderr, "%s: warning: %d %s failed the test.\n", + program_name, failed_tests, + ( failed_tests == 1 ) ? "file" : "files" ); + free( output_filename ); + free( filenames ); + ap_free( &parser ); + return retval; + } diff --git a/3rdparty/lzlib-1.12/testsuite/check.sh b/3rdparty/lzlib-1.12/testsuite/check.sh new file mode 100755 index 0000000..44e2428 --- /dev/null +++ b/3rdparty/lzlib-1.12/testsuite/check.sh @@ -0,0 +1,440 @@ +#! /bin/sh +# check script for Lzlib - Compression library for the lzip format +# Copyright (C) 2009-2021 Antonio Diaz Diaz. +# +# This script is free software: you have unlimited permission +# to copy, distribute, and modify it. + +LC_ALL=C +export LC_ALL +objdir=`pwd` +testdir=`cd "$1" ; pwd` +LZIP="${objdir}"/minilzip +BBEXAMPLE="${objdir}"/bbexample +FFEXAMPLE="${objdir}"/ffexample +LZCHECK="${objdir}"/lzcheck +framework_failure() { echo "failure in testing framework" ; exit 1 ; } + +if [ ! -f "${LZIP}" ] || [ ! -x "${LZIP}" ] ; then + echo "${LZIP}: cannot execute" + exit 1 +fi + +[ -e "${LZIP}" ] 2> /dev/null || + { + echo "$0: a POSIX shell is required to run the tests" + echo "Try bash -c \"$0 $1 $2\"" + exit 1 + } + +if [ -d tmp ] ; then rm -rf tmp ; fi +mkdir tmp +cd "${objdir}"/tmp || framework_failure + +cat "${testdir}"/test.txt > in || framework_failure +in_lz="${testdir}"/test.txt.lz +in_em="${testdir}"/test_em.txt.lz +fox_lf="${testdir}"/fox_lf +fox_lz="${testdir}"/fox.lz +fail=0 +test_failed() { fail=1 ; printf " $1" ; [ -z "$2" ] || printf "($2)" ; } + +"${LZIP}" --check-lib # just print warning +printf "testing lzlib-%s..." "$2" + +"${LZIP}" -fkqm4 in +[ $? = 1 ] || test_failed $LINENO +[ ! -e in.lz ] || test_failed $LINENO +"${LZIP}" -fkqm274 in +[ $? = 1 ] || test_failed $LINENO +[ ! -e in.lz ] || test_failed $LINENO +for i in bad_size -1 0 4095 513MiB 1G 1T 1P 1E 1Z 1Y 10KB ; do + "${LZIP}" -fkqs $i in + [ $? = 1 ] || test_failed $LINENO $i + [ ! -e in.lz ] || test_failed $LINENO $i +done +"${LZIP}" -tq in +[ $? = 2 ] || test_failed $LINENO +"${LZIP}" -tq < in +[ $? = 2 ] || test_failed $LINENO +"${LZIP}" -cdq in +[ $? = 2 ] || test_failed $LINENO +"${LZIP}" -cdq < in +[ $? = 2 ] || test_failed $LINENO +"${LZIP}" -dq -o in < "${in_lz}" +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" -dq -o in "${in_lz}" +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" -dq -o out nx_file.lz +[ $? = 1 ] || test_failed $LINENO +[ ! -e out ] || test_failed $LINENO +"${LZIP}" -q -o out.lz nx_file +[ $? = 1 ] || test_failed $LINENO +[ ! -e out.lz ] || test_failed $LINENO +"${LZIP}" -qf -S100k -o out in in +[ $? = 1 ] || test_failed $LINENO +# these are for code coverage +"${LZIP}" -cdt "${in_lz}" > out 2> /dev/null +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" -t -- nx_file.lz 2> /dev/null +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" -t "" < /dev/null 2> /dev/null +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" --help > /dev/null || test_failed $LINENO +"${LZIP}" -n1 -V > /dev/null || test_failed $LINENO +"${LZIP}" -m 2> /dev/null +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" -z 2> /dev/null +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" --bad_option 2> /dev/null +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" --t 2> /dev/null +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" --test=2 2> /dev/null +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" --output= 2> /dev/null +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" --output 2> /dev/null +[ $? = 1 ] || test_failed $LINENO +printf "LZIP\001-.............................." | "${LZIP}" -t 2> /dev/null +printf "LZIP\002-.............................." | "${LZIP}" -t 2> /dev/null +printf "LZIP\001+.............................." | "${LZIP}" -t 2> /dev/null + +printf "\ntesting decompression..." + +for i in "${in_lz}" "${in_em}" "${testdir}"/test_sync.lz ; do + "${LZIP}" -t "$i" || test_failed $LINENO "$i" + "${LZIP}" -d "$i" -o copy || test_failed $LINENO "$i" + cmp in copy || test_failed $LINENO "$i" + "${LZIP}" -cd "$i" > copy || test_failed $LINENO "$i" + cmp in copy || test_failed $LINENO "$i" + "${LZIP}" -d "$i" -o - > copy || test_failed $LINENO "$i" + cmp in copy || test_failed $LINENO "$i" + "${LZIP}" -d < "$i" > copy || test_failed $LINENO "$i" + cmp in copy || test_failed $LINENO "$i" + rm -f copy || framework_failure +done + +lines=$("${LZIP}" -tvv "${in_em}" 2>&1 | wc -l) || test_failed $LINENO +[ "${lines}" -eq 8 ] || test_failed $LINENO "${lines}" + +cat "${in_lz}" > copy.lz || framework_failure +"${LZIP}" -dk copy.lz || test_failed $LINENO +cmp in copy || test_failed $LINENO +printf "to be overwritten" > copy || framework_failure +"${LZIP}" -d copy.lz 2> /dev/null +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" -df copy.lz || test_failed $LINENO +[ ! -e copy.lz ] || test_failed $LINENO +cmp in copy || test_failed $LINENO + +rm -f copy || framework_failure +cat "${in_lz}" > copy.lz || framework_failure +"${LZIP}" -d -S100k copy.lz || test_failed $LINENO # ignore -S +[ ! -e copy.lz ] || test_failed $LINENO +cmp in copy || test_failed $LINENO + +printf "to be overwritten" > copy || framework_failure +"${LZIP}" -d -o copy < "${in_lz}" 2> /dev/null +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" -df -o copy < "${in_lz}" || test_failed $LINENO +cmp in copy || test_failed $LINENO +rm -f out copy || framework_failure +"${LZIP}" -d -o ./- "${in_lz}" || test_failed $LINENO +cmp in ./- || test_failed $LINENO +rm -f ./- || framework_failure +"${LZIP}" -d -o ./- < "${in_lz}" || test_failed $LINENO +cmp in ./- || test_failed $LINENO +rm -f ./- || framework_failure + +cat "${in_lz}" > anyothername || framework_failure +"${LZIP}" -dv - anyothername - < "${in_lz}" > copy 2> /dev/null || + test_failed $LINENO +cmp in copy || test_failed $LINENO +cmp in anyothername.out || test_failed $LINENO +rm -f copy anyothername.out || framework_failure + +"${LZIP}" -tq in "${in_lz}" +[ $? = 2 ] || test_failed $LINENO +"${LZIP}" -tq nx_file.lz "${in_lz}" +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" -cdq in "${in_lz}" > copy +[ $? = 2 ] || test_failed $LINENO +cat copy in | cmp in - || test_failed $LINENO +"${LZIP}" -cdq nx_file.lz "${in_lz}" > copy +[ $? = 1 ] || test_failed $LINENO +cmp in copy || test_failed $LINENO +rm -f copy || framework_failure +cat "${in_lz}" > copy.lz || framework_failure +for i in 1 2 3 4 5 6 7 ; do + printf "g" >> copy.lz || framework_failure + "${LZIP}" -atvvvv copy.lz "${in_lz}" 2> /dev/null + [ $? = 2 ] || test_failed $LINENO $i +done +"${LZIP}" -dq in copy.lz +[ $? = 2 ] || test_failed $LINENO +[ -e copy.lz ] || test_failed $LINENO +[ ! -e copy ] || test_failed $LINENO +[ ! -e in.out ] || test_failed $LINENO +"${LZIP}" -dq nx_file.lz copy.lz +[ $? = 1 ] || test_failed $LINENO +[ ! -e copy.lz ] || test_failed $LINENO +[ ! -e nx_file ] || test_failed $LINENO +cmp in copy || test_failed $LINENO + +cat in in > in2 || framework_failure +"${LZIP}" -t "${in_lz}" "${in_lz}" || test_failed $LINENO +"${LZIP}" -cd "${in_lz}" "${in_lz}" -o out > copy2 || test_failed $LINENO +[ ! -e out ] || test_failed $LINENO # override -o +cmp in2 copy2 || test_failed $LINENO +rm -f copy2 || framework_failure +"${LZIP}" -d "${in_lz}" "${in_lz}" -o copy2 || test_failed $LINENO +cmp in2 copy2 || test_failed $LINENO +rm -f copy2 || framework_failure + +cat "${in_lz}" "${in_lz}" > copy2.lz || framework_failure +printf "\ngarbage" >> copy2.lz || framework_failure +"${LZIP}" -tvvvv copy2.lz 2> /dev/null || test_failed $LINENO +"${LZIP}" -atq copy2.lz +[ $? = 2 ] || test_failed $LINENO +"${LZIP}" -atq < copy2.lz +[ $? = 2 ] || test_failed $LINENO +"${LZIP}" -adkq copy2.lz +[ $? = 2 ] || test_failed $LINENO +[ ! -e copy2 ] || test_failed $LINENO +"${LZIP}" -adkq -o copy2 < copy2.lz +[ $? = 2 ] || test_failed $LINENO +[ ! -e copy2 ] || test_failed $LINENO +printf "to be overwritten" > copy2 || framework_failure +"${LZIP}" -df copy2.lz || test_failed $LINENO +cmp in2 copy2 || test_failed $LINENO +rm -f copy2 || framework_failure + +printf "\ntesting compression..." + +"${LZIP}" -c -0 in in in -S100k -o out3.lz > copy2.lz || test_failed $LINENO +[ ! -e out3.lz ] || test_failed $LINENO # override -o and -S +"${LZIP}" -0f in in --output=copy2.lz || test_failed $LINENO +"${LZIP}" -d copy2.lz -o out2 || test_failed $LINENO +cmp in2 out2 || test_failed $LINENO +rm -f out2 copy2.lz || framework_failure + +"${LZIP}" -cf "${in_lz}" > out 2> /dev/null # /dev/null is a tty on OS/2 +[ $? = 1 ] || test_failed $LINENO +"${LZIP}" -Fvvm36 -o - -s16 "${in_lz}" > out 2> /dev/null || test_failed $LINENO +"${LZIP}" -cd out | "${LZIP}" -d > copy || test_failed $LINENO +cmp in copy || test_failed $LINENO + +"${LZIP}" -0 -o ./- in || test_failed $LINENO +"${LZIP}" -cd ./- | cmp in - || test_failed $LINENO +rm -f ./- || framework_failure +"${LZIP}" -0 -o ./- < in || test_failed $LINENO # don't add .lz +[ ! -e ./-.lz ] || test_failed $LINENO +"${LZIP}" -cd ./- | cmp in - || test_failed $LINENO +rm -f ./- || framework_failure + +for i in s4Ki 0 1 2 3 4 5 6 7 8 9 ; do + "${LZIP}" -k -$i -s16 in || test_failed $LINENO $i + mv -f in.lz copy.lz || test_failed $LINENO $i + printf "garbage" >> copy.lz || framework_failure + "${LZIP}" -df copy.lz || test_failed $LINENO $i + cmp in copy || test_failed $LINENO $i + + "${LZIP}" -$i -s16 in -c > out || test_failed $LINENO $i + "${LZIP}" -$i -s16 in -o o_out || test_failed $LINENO $i # don't add .lz + [ ! -e o_out.lz ] || test_failed $LINENO + cmp out o_out || test_failed $LINENO $i + rm -f o_out || framework_failure + printf "g" >> out || framework_failure + "${LZIP}" -cd out > copy || test_failed $LINENO $i + cmp in copy || test_failed $LINENO $i + + "${LZIP}" -$i -s16 < in > out || test_failed $LINENO $i + "${LZIP}" -d < out > copy || test_failed $LINENO $i + cmp in copy || test_failed $LINENO $i + + rm -f out.lz || framework_failure + printf "to be overwritten" > out || framework_failure # don't add .lz + "${LZIP}" -f -$i -s16 -o out < in || test_failed $LINENO $i + [ ! -e out.lz ] || test_failed $LINENO + "${LZIP}" -df -o copy < out || test_failed $LINENO $i + cmp in copy || test_failed $LINENO $i +done +rm -f out out.lz || framework_failure + +cat in in in in in in in in > in8 || framework_failure +"${LZIP}" -1s12 -S100k in8 || test_failed $LINENO +"${LZIP}" -t in800001.lz in800002.lz || test_failed $LINENO +"${LZIP}" -cd in800001.lz in800002.lz | cmp in8 - || test_failed $LINENO +[ ! -e in800003.lz ] || test_failed $LINENO +rm -f in800001.lz in800002.lz || framework_failure +"${LZIP}" -1s12 -S100k -o out.lz in8 || test_failed $LINENO +# ignore -S +"${LZIP}" -d out.lz00001.lz out.lz00002.lz -S100k -o out || test_failed $LINENO +cmp in8 out || test_failed $LINENO +"${LZIP}" -t out.lz00001.lz out.lz00002.lz || test_failed $LINENO +[ ! -e out.lz00003.lz ] || test_failed $LINENO +rm -f out out.lz00001.lz out.lz00002.lz || framework_failure +"${LZIP}" -1ks4Ki -b100000 in8 || test_failed $LINENO +"${LZIP}" -t in8.lz || test_failed $LINENO +"${LZIP}" -cd in8.lz -o out | cmp in8 - || test_failed $LINENO # override -o +[ ! -e out ] || test_failed $LINENO +"${LZIP}" -0 -S100k -o out < in8.lz || test_failed $LINENO +"${LZIP}" -t out00001.lz out00002.lz || test_failed $LINENO +"${LZIP}" -cd out00001.lz out00002.lz | cmp in8.lz - || test_failed $LINENO +[ ! -e out00003.lz ] || test_failed $LINENO +rm -f out00001.lz || framework_failure +"${LZIP}" -1 -S100k -o out < in8.lz || test_failed $LINENO +"${LZIP}" -t out00001.lz out00002.lz || test_failed $LINENO +"${LZIP}" -cd out00001.lz out00002.lz | cmp in8.lz - || test_failed $LINENO +[ ! -e out00003.lz ] || test_failed $LINENO +rm -f out00001.lz out00002.lz || framework_failure +"${LZIP}" -0 -F -S100k in8.lz || test_failed $LINENO +"${LZIP}" -t in8.lz00001.lz in8.lz00002.lz || test_failed $LINENO +"${LZIP}" -cd in8.lz00001.lz in8.lz00002.lz | cmp in8.lz - || test_failed $LINENO +[ ! -e in8.lz00003.lz ] || test_failed $LINENO +rm -f in8.lz00001.lz in8.lz00002.lz || framework_failure +"${LZIP}" -0kF -b100k in8.lz || test_failed $LINENO +"${LZIP}" -t in8.lz.lz || test_failed $LINENO +"${LZIP}" -cd in8.lz.lz | cmp in8.lz - || test_failed $LINENO +rm -f in8.lz in8.lz.lz || framework_failure + +"${BBEXAMPLE}" in || test_failed $LINENO +"${BBEXAMPLE}" "${in_lz}" || test_failed $LINENO +"${BBEXAMPLE}" "${fox_lf}" || test_failed $LINENO + +"${FFEXAMPLE}" -h > /dev/null || test_failed $LINENO +"${FFEXAMPLE}" > /dev/null && test_failed $LINENO +rm -f out || framework_failure +"${FFEXAMPLE}" -b in out || test_failed $LINENO +cmp in out || test_failed $LINENO +"${FFEXAMPLE}" -b in | cmp in - || test_failed $LINENO +"${FFEXAMPLE}" -b in8 | cmp in8 - || test_failed $LINENO +"${FFEXAMPLE}" -b "${fox_lf}" | cmp "${fox_lf}" - || test_failed $LINENO +"${FFEXAMPLE}" -d "${in_lz}" - | cmp in - || test_failed $LINENO +"${FFEXAMPLE}" -d "${in_em}" - | cmp in - || test_failed $LINENO +"${FFEXAMPLE}" -c in | "${FFEXAMPLE}" -d | cmp in - || test_failed $LINENO +"${FFEXAMPLE}" -m in | "${FFEXAMPLE}" -d | cmp in - || test_failed $LINENO +"${FFEXAMPLE}" -l in | "${FFEXAMPLE}" -d | cmp in - || test_failed $LINENO +cat "${fox_lf}" "${in_lz}" | "${FFEXAMPLE}" -r | cmp in - || test_failed $LINENO +cat in8 "${in_lz}" | "${FFEXAMPLE}" -r | cmp in - || test_failed $LINENO +cat "${in_lz}" "${fox_lf}" "${in_lz}" | "${FFEXAMPLE}" -r - | cmp in2 - || + test_failed $LINENO +cat "${in_lz}" in8 "${in_lz}" | "${FFEXAMPLE}" -r - - | cmp in2 - || + test_failed $LINENO + +"${LZCHECK}" in || test_failed $LINENO +"${LZCHECK}" "${in_lz}" || test_failed $LINENO +"${LZCHECK}" "${fox_lf}" || test_failed $LINENO +rm -f in8 || framework_failure + +printf "\ntesting bad input..." + +headers='LZIp LZiP LZip LzIP LzIp LziP lZIP lZIp lZiP lzIP' +body='\001\014\000\203\377\373\377\377\300\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\000\000\000' +cat "${in_lz}" > int.lz +printf "LZIP${body}" >> int.lz +if "${LZIP}" -tq int.lz ; then + for header in ${headers} ; do + printf "${header}${body}" > int.lz # first member + "${LZIP}" -tq int.lz + [ $? = 2 ] || test_failed $LINENO ${header} + "${LZIP}" -tq < int.lz + [ $? = 2 ] || test_failed $LINENO ${header} + "${LZIP}" -cdq int.lz > /dev/null + [ $? = 2 ] || test_failed $LINENO ${header} + "${LZIP}" -tq --loose-trailing int.lz + [ $? = 2 ] || test_failed $LINENO ${header} + "${LZIP}" -tq --loose-trailing < int.lz + [ $? = 2 ] || test_failed $LINENO ${header} + "${LZIP}" -cdq --loose-trailing int.lz > /dev/null + [ $? = 2 ] || test_failed $LINENO ${header} + cat "${in_lz}" > int.lz + printf "${header}${body}" >> int.lz # trailing data + "${LZIP}" -tq int.lz + [ $? = 2 ] || test_failed $LINENO ${header} + "${LZIP}" -tq < int.lz + [ $? = 2 ] || test_failed $LINENO ${header} + "${LZIP}" -cdq int.lz > /dev/null + [ $? = 2 ] || test_failed $LINENO ${header} + "${LZIP}" -t --loose-trailing int.lz || + test_failed $LINENO ${header} + "${LZIP}" -t --loose-trailing < int.lz || + test_failed $LINENO ${header} + "${LZIP}" -cd --loose-trailing int.lz > /dev/null || + test_failed $LINENO ${header} + "${LZIP}" -tq --loose-trailing --trailing-error int.lz + [ $? = 2 ] || test_failed $LINENO ${header} + "${LZIP}" -tq --loose-trailing --trailing-error < int.lz + [ $? = 2 ] || test_failed $LINENO ${header} + "${LZIP}" -cdq --loose-trailing --trailing-error int.lz > /dev/null + [ $? = 2 ] || test_failed $LINENO ${header} + done +else + printf "\nwarning: skipping header test: 'printf' does not work on your system." +fi +rm -f int.lz || framework_failure + +for i in fox_v2.lz fox_s11.lz fox_de20.lz \ + fox_bcrc.lz fox_crc0.lz fox_das46.lz fox_mes81.lz ; do + "${LZIP}" -tq "${testdir}"/$i + [ $? = 2 ] || test_failed $LINENO $i +done + +"${LZIP}" -cd "${fox_lz}" > fox || test_failed $LINENO +for i in fox_bcrc.lz fox_crc0.lz fox_das46.lz fox_mes81.lz ; do + "${LZIP}" -cdq "${testdir}"/$i > out + [ $? = 2 ] || test_failed $LINENO $i + cmp fox out || test_failed $LINENO $i +done +rm -f fox out || framework_failure + +cat "${in_lz}" "${in_lz}" > in2.lz || framework_failure +cat "${in_lz}" "${in_lz}" "${in_lz}" > in3.lz || framework_failure +if dd if=in3.lz of=trunc.lz bs=14752 count=1 2> /dev/null && + [ -e trunc.lz ] && cmp in2.lz trunc.lz > /dev/null 2>&1 ; then + for i in 6 20 14734 14753 14754 14755 14756 14757 14758 ; do + dd if=in3.lz of=trunc.lz bs=$i count=1 2> /dev/null + "${LZIP}" -tq trunc.lz + [ $? = 2 ] || test_failed $LINENO $i + "${LZIP}" -tq < trunc.lz + [ $? = 2 ] || test_failed $LINENO $i + "${LZIP}" -cdq trunc.lz > out + [ $? = 2 ] || test_failed $LINENO $i + "${LZIP}" -dq < trunc.lz > out + [ $? = 2 ] || test_failed $LINENO $i + done +else + printf "\nwarning: skipping truncation test: 'dd' does not work on your system." +fi +rm -f in2.lz in3.lz trunc.lz out || framework_failure + +cat "${in_lz}" > ingin.lz || framework_failure +printf "g" >> ingin.lz || framework_failure +cat "${in_lz}" >> ingin.lz || framework_failure +"${LZIP}" -atq ingin.lz +[ $? = 2 ] || test_failed $LINENO +"${LZIP}" -atq < ingin.lz +[ $? = 2 ] || test_failed $LINENO +"${LZIP}" -acdq ingin.lz > out +[ $? = 2 ] || test_failed $LINENO +"${LZIP}" -adq < ingin.lz > out +[ $? = 2 ] || test_failed $LINENO +"${LZIP}" -t ingin.lz || test_failed $LINENO +"${LZIP}" -t < ingin.lz || test_failed $LINENO +"${LZIP}" -cd ingin.lz > copy || test_failed $LINENO +cmp in copy || test_failed $LINENO +"${LZIP}" -d < ingin.lz > copy || test_failed $LINENO +cmp in copy || test_failed $LINENO +"${FFEXAMPLE}" -d ingin.lz | cmp in - || test_failed $LINENO +"${FFEXAMPLE}" -r ingin.lz | cmp in2 - || test_failed $LINENO +rm -f copy ingin.lz in2 out || framework_failure + +echo +if [ ${fail} = 0 ] ; then + echo "tests completed successfully." + cd "${objdir}" && rm -r tmp +else + echo "tests failed." +fi +exit ${fail} diff --git a/3rdparty/lzlib-1.12/testsuite/fox.lz b/3rdparty/lzlib-1.12/testsuite/fox.lz new file mode 100644 index 0000000000000000000000000000000000000000..509da8268a3fd054415089a646cdcfd00d3eee7a GIT binary patch literal 80 zcmeZ?@(f_)VbGG|Sj4QF_R+iI=pxqtde3fNQjl6}^5c>03rDkGci1v_+dL64QRjTU dIqmVA>95u)|NqywfFbKlz-wIw2nc{s3;;vS9_j!9 literal 0 HcmV?d00001 diff --git a/3rdparty/lzlib-1.12/testsuite/fox_bcrc.lz b/3rdparty/lzlib-1.12/testsuite/fox_bcrc.lz new file mode 100644 index 0000000000000000000000000000000000000000..8f6a7c4af4b808a1ed873b58d5d9a343a722edcd GIT binary patch literal 80 zcmeZ?@(f_)VbGG|Sj4QF_R+iI=pxqtde3fNQjl6}^5c>03rDkGci1v_+dL64QRjTU dIqmVA>95u)|NqywfFb)#z-wIw2nc{s3;;vm9_s)A literal 0 HcmV?d00001 diff --git a/3rdparty/lzlib-1.12/testsuite/fox_crc0.lz b/3rdparty/lzlib-1.12/testsuite/fox_crc0.lz new file mode 100644 index 0000000000000000000000000000000000000000..1abe92689f2fb57212633f41962e53f4297bd5a2 GIT binary patch literal 80 zcmeZ?@(f_)VbGG|Sj4QF_R+iI=pxqtde3fNQjl6}^5c>03rDkGci1v_+dL64QRjTU cIqmVA>95u)|NqywfB^(_K?DN>LjaTp02d`3c>n+a literal 0 HcmV?d00001 diff --git a/3rdparty/lzlib-1.12/testsuite/fox_das46.lz b/3rdparty/lzlib-1.12/testsuite/fox_das46.lz new file mode 100644 index 0000000000000000000000000000000000000000..43ed9f9503c4e8c298e6bf671f669b56e24162a2 GIT binary patch literal 80 zcmeZ?@(f_)VbGG|Sj4QF_R+iI=pxqtde3fNQjl6}^5c>03rDkGci1v_+dL64QRjTU dIqmVA>95u)|NqywfFbKlz-v7Q2nc{s3;;vi9_s)A literal 0 HcmV?d00001 diff --git a/3rdparty/lzlib-1.12/testsuite/fox_de20.lz b/3rdparty/lzlib-1.12/testsuite/fox_de20.lz new file mode 100644 index 0000000000000000000000000000000000000000..10949d888f0e1c630fc860b3a8c8eb0bee7f77bf GIT binary patch literal 80 zcmeZ?@(f_)VbGG|Sj4QF_R+iI=pxpCde3fNQjl6}^5c>03rDkGci1v_+dL64QRjTU dIqmVA>95u)|NqywfFbKlz-wIw2nc{s3;;ur9_au8 literal 0 HcmV?d00001 diff --git a/3rdparty/lzlib-1.12/testsuite/fox_lf b/3rdparty/lzlib-1.12/testsuite/fox_lf new file mode 100644 index 0000000..a0b11b5 --- /dev/null +++ b/3rdparty/lzlib-1.12/testsuite/fox_lf @@ -0,0 +1,9 @@ +The +quick +brown +fox +jumps +over +the +lazy +dog. diff --git a/3rdparty/lzlib-1.12/testsuite/fox_mes81.lz b/3rdparty/lzlib-1.12/testsuite/fox_mes81.lz new file mode 100644 index 0000000000000000000000000000000000000000..d50ef2e2fa7a5160a77c814344218585e865f266 GIT binary patch literal 80 zcmeZ?@(f_)VbGG|Sj4QF_R+iI=pxqtde3fNQjl6}^5c>03rDkGci1v_+dL64QRjTU dIqmVA>95u)|NqywfFbKlz-wIw2nd8w3;;va9_s)A literal 0 HcmV?d00001 diff --git a/3rdparty/lzlib-1.12/testsuite/fox_s11.lz b/3rdparty/lzlib-1.12/testsuite/fox_s11.lz new file mode 100644 index 0000000000000000000000000000000000000000..dca909c62a44e1b011404dbd5afe0af47c3bb6e7 GIT binary patch literal 80 zcmeZ?@(f_)X3&!2Sj4QF_R+iI=pxqtde3fNQjl6}^5c>03rDkGci1v_+dL64QRjTU dIqmVA>95u)|NqywfFbKlz-wIw2nc{s3;;uc9_au8 literal 0 HcmV?d00001 diff --git a/3rdparty/lzlib-1.12/testsuite/fox_v2.lz b/3rdparty/lzlib-1.12/testsuite/fox_v2.lz new file mode 100644 index 0000000000000000000000000000000000000000..8620981714096152fff6673aa04060f251bdad44 GIT binary patch literal 80 zcmeZ?@(f_&VbGG|Sj4QF_R+iI=pxqtde3fNQjl6}^5c>03rDkGci1v_+dL64QRjTU dIqmVA>95u)|NqywfFbKlz-wIw2nc{s3;;wJ9_s)A literal 0 HcmV?d00001 diff --git a/3rdparty/lzlib-1.12/testsuite/test.txt b/3rdparty/lzlib-1.12/testsuite/test.txt new file mode 100644 index 0000000..a8fdeb0 --- /dev/null +++ b/3rdparty/lzlib-1.12/testsuite/test.txt @@ -0,0 +1,676 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/3rdparty/lzlib-1.12/testsuite/test.txt.lz b/3rdparty/lzlib-1.12/testsuite/test.txt.lz new file mode 100644 index 0000000000000000000000000000000000000000..22cea6e4d2a58b4dcb006541dcdb8defabba0cbb GIT binary patch literal 7376 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 literal 0 HcmV?d00001 diff --git a/3rdparty/lzlib-1.12/testsuite/test_em.txt.lz b/3rdparty/lzlib-1.12/testsuite/test_em.txt.lz new file mode 100644 index 0000000000000000000000000000000000000000..7e96250d9ec70bc7d8cb173f438c76be447e6b6f GIT binary patch literal 14024 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 Vo0r={_$Dt>>0. + */ + +#include + +#include "library.h" +#include "3rdparty/lzlib-1.12/lzlib.h" +#include "lzip.h" + +AARU_EXPORT int32_t AARU_CALL lzip_decode_buffer(uint8_t* dst_buffer, + int32_t dst_size, + const uint8_t* src_buffer, + int32_t src_size) +{ + int max_in_size; + void* ctx; + enum LZ_Errno lz_err; + int32_t in_pos = 0, out_pos = 0, in_size; + + // Initialize the decoder + ctx = LZ_decompress_open(); + lz_err = LZ_decompress_errno(ctx); + + if(lz_err != LZ_ok) + { + // Ensure freed + LZ_decompress_close(ctx); + return 0; + } + + // Check maximum lzip buffer input size + max_in_size = LZ_decompress_write_size(ctx); + if(src_size < max_in_size) max_in_size = src_size; + + // Decompress buffer + while(in_pos < src_size && out_pos < dst_size) + { + if(src_size - in_pos < max_in_size) max_in_size = src_size - in_pos; + + in_size = LZ_decompress_write(ctx, src_buffer + in_pos, max_in_size); + + in_pos += in_size; + + int rd = LZ_decompress_read(ctx, dst_buffer + out_pos, dst_size); + + out_pos += rd; + + if(LZ_decompress_finished(ctx) == 1) break; + } + + // Free buffers + LZ_decompress_close(ctx); + + return out_pos; +} \ No newline at end of file diff --git a/lzip.h b/lzip.h new file mode 100644 index 0000000..10b68c7 --- /dev/null +++ b/lzip.h @@ -0,0 +1,27 @@ +/* + * This file is part of the Aaru Data Preservation Suite. + * Copyright (c) 2019-2021 Natalia Portillo. + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef AARU_CHECKSUMS_NATIVE__LZIP_H_ +#define AARU_CHECKSUMS_NATIVE__LZIP_H_ + +AARU_EXPORT int32_t AARU_CALL lzip_decode_buffer(uint8_t* dst_buffer, + int32_t dst_size, + const uint8_t* src_buffer, + int32_t src_size); + +#endif // AARU_CHECKSUMS_NATIVE__LZIP_H_ diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 574a315..8220875 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -18,7 +18,10 @@ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/adc.bin file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/bzip2.bz2 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/) +file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/lzip.lz + DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/) + # 'Google_Tests_run' is the target name # 'test1.cpp tests2.cpp' are source files with tests -add_executable(tests_run apple_rle.cpp crc32.c crc32.h adc.cpp bzip2.cpp) +add_executable(tests_run apple_rle.cpp crc32.c crc32.h adc.cpp bzip2.cpp lzip.cpp) target_link_libraries(tests_run gtest gtest_main "Aaru.Compression.Native") diff --git a/tests/data/lzip.lz b/tests/data/lzip.lz new file mode 100644 index 0000000000000000000000000000000000000000..a1675ee024ca0c9ff6046dc3a532eec6c6c221ec GIT binary patch literal 1062874 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
    K4Jr6rdG~6q5N(_*7MnGl^Ym;N^Wm&GD&fp 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

    lX$X2hyhj4r?HOcXVgy&hF} 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%0D{s%jr*wm}h?UKRc7MeNW3eAxY;=t8dt6 z%SW$2_pB426x`hO^|bcY2R8f*9o2rG zV}By@Q0S|oZr=e$q&)sCR_i%Si?zrIRW&-60y5l%@T>1A~+dT4J zjHA~5XTc@6g%af-9D8ICY`A;MyaP3owKr#M{~>pI;gJ_DNp0Jr0yeKK`m*kBq2LU+ z>pJ2-*4y~f+l4m&ntwLwlSumLsY6E^w&PrR4C>w6W8!c+uW_o=|`Tx}O;w{l| zUP0$tF5!7g|6lyEdb>=X!j@&xzYUh?3+>r3T~7Q<*4n#wEauAo+a9>*UR;CyhV`Y5 zGo}V|ZrYY2$K<=^QOnHfe4BZ8x1P#hJ@JV;TW2-5#@9x z2Ms0$@%MZ*U=EQfE0{cU-I{aZcQt}#SWoFl`@K2S_i53L&6!F4TI;OS-~W)RR^>as zr7QjXaZj!#-+gu6+c*7ZC_nf@U1u48|C)|ixs#hjSnZP8`R6QcELh%h_o0B(9$wD= z=~WBZpZEP;!Z36GzWs8~b0gnq1gXfdZT@vaKKN(_$BGQjeJu+7D?(OJa=8BF))se- zx-~O=9_`dKIIx$weA?_Djc$E;R?{0Puane%Yz}5PG2=(Vb{pCCKhEnWxtTj2J#w?u z^Tq@1xZ2x)-1pAeV~Njwb1uN~dO;Su4y{#-Wt(Bt0LDg;m`MmGx{l~}G;*wO}^Sw^_hfkfk-pczjdHuET`}ghmw_{VA(1N~x$vJvao9^}p zTym?+-Spk+TEsFz#S`ZLzwgSNWF)rQu)ukdVw-2gtGj(Ge&3Ea-__SCu)!c(;3oT> z3CDsaTF#jglb7G%5bPlIH(qdIsC2Gr-z4V^&H}Gjb^7i;uejOiiIMH3#CnmB&DTpW zz0`ai5v_ZhxpP+Cb*rgM6182A*>fjOh%*)(Nn8`!{hgC zJFWgMOy}0U)WTGAFhQ(Jg@4^PRrZ zzBB}$+HvPdY#;NFwq1M)(^p&)Sp8RUcc?=r%k;muzZjohRX8=-Z(mTju(w8dM_Iaw z)KAVW=Zc+O{rjGYX2c|Y5&qB>6{+)Y{e(IeuH06DBxwtegK*>`)u` zua%x!fe)HpdWw5kcJDv^eRE#-OD*r74wt}b>Rjs6OB}TmdU_iUEr>gJ`ISNNq}rd> zi_>^szSr`J_c8iB$LiYl(wf6NShi(9nZoDaXzk~^) z+h4cjkcaW9=Y4N-w$D;o=;h(P+#r?vMCw~7F)=ptTSAW0Rab7xtbegxg=%nCdZQ3$YEgJ$QgHRiNu@UV=XfK{}cW>$_>uWzRg^Qeya%mYq5tQ0yZf)y;gVuVIdQ zyMW{tk=l)n;^s_zGp?vG{c8|8`ckdt`I$MFyQHHsuU_81C;RQUpJf?(a{ze_mhTl)w1Yr?mek{#JMken0=^ z9DCpFmACooPe#5om@-LmbxZ86%TtAnj;+bi&8f^zIWEi`zf9py*xgR1lWWgz4eNOG z!Tn_71IIUuVzss~O^$F&x}d7sJvnx6rG%Me_6K*K>5B^O0bBnz?qzr{8sT7LU4Lo?g`b%9;HIiAu#b}q1ASCA3@(@bT;l#9}=EwxuSpHKf< zpUN4b7rV1x%`a^B=c?qOLlH_Qd?kNwoLSPR5y3ZQy5FJ9w2ur+9#!NX>t+zU@%<}j z>6Q&TRkwF5GbakYdwSN@s@D3?i@*&3y2DQ|Ml-Fyt)x*YCxsoQSN(F?dZ2dS zK_(f62A-2!CT&nUBId95wQyO}PkyC2r*-$d<<&fMZd$y|tR{mU|Mng+e{$6W!>bhh;chgF4?PZKtf2iIRG%okq z_&@EpZQ1&i1(H*yG3pom?v=6G)GK8g)jC^r!9)2qlf_Ht1$}4{*mrf?>uX-`Zuc?W zzqfwd++%Nh&J`Ku{dpC{`m5%h*{;)%{3d<#yIMVO-N*ZCe`W``w9PnGb+$zH>Mowt zBQYF1Y!tZ6+08y4mUta4y8DEG)|LHDbNBv!@LcN8mrb4#D;f&!yi#;mKCNASaJuaS=<~hKTj8Cv84%xg)#dfqnJSqj~4jPm!CWB=jo2s&sR5}UA=mK^S1aC z#$BIG3QkofFZG_}u`$J=<;L^WOaMQ_X}W)0kXzHyo8)du^xPE`k59 z@p61+hti)d+F9zD`gYmDWtLOtu6{UErRw>NTe7xYYF#Ij{bLupO$y^#HF^JW`Ms4Q zSqg@X`}L=^?{?Ic4Asq@y}Rf5dCtZ#_qly*t_#&qJW{&8D+c1^WGbz+s8gO*~- zH}1ggpZ_LHE^jMz?ayIb^2$QBZ{rR=Pp^A+8|I%B3dy>>tuvE>kepTSDjyT> zYAQTOY~{HXMhT}UJ@YA9@_LhjR}!1Z;@LUoOP*iyytLNNRieO9_)MLU&`0%MmI6O} zrn*bUNlFLYXXTn3#v|Pq6K8Sm73X35kftz;uWIKW8<;=vc>js#aqz8!JtCPAUsPk) z-DbU;{Z=hVCZM=#-~2766IYsdmWkwD4KUD%T;|0YC2+<4mXIz-+0*3`-*n}wx0UI< zOsce6>H6{<^M(&mGk(W!pKC0oz4w#LQ-(`+dz2%5{?1sSnQ%GvoYcoP+a7&OFb(t& zGdwdP_-jIT@NE{o`SxGdCb7OR&l7QGImoE?e@4dt{P2%^`PD71xu?pXT+Pb=WkEZi z+10{LE_3E-8zp%c>9ZeSb1n!{qw3SEf$kR&%^~=P5CL zJaUF<*`qZT_Y0*R94vVye141=!p6t{XaC~p7yW~&!z4SRHJ9ni{ z)@$L>Vbv8cixKDbex+jeYw2I7Stsu*XuecCSblzWsB+83TWuwmo@W>Nu%4TheZZ(D ztK8LcHAhw7o%?Im)7N_6vvZrlpz-9Y_EkqFMwz2CHJ1oX-g*4Y9G5xLCG4)9*M7yY zJ}uw+rsL8}&LC6S&&RGi8x?Nw>N?~jSnzwk{*FaV*8;0b4{_~X)DV#PaP94QqsqJ0 z!N*Mv*U0`{C+56^z0B;{0_$Fx-+UW?mp zi}91pUl@1LG5cQSrX^5%=8kE4 zLe5DwMy8ur=Z9&@JblD%wcKjv(!P{6|EKzIGZc=Q$rL<6^KejVaNQyi_4Q?Uq=QOU z-#N6ZL*k0^UGHf@d38or>*7Bp%N$CzRm>Q8PLGIcojEyIjm z-Dsx5TG7MCzZaj$o-ubB+yB%}n*BPTr`t@FQdC~8!)^2L^S1RXb_=h4HnHKXsOu^T z;R{Z)eE*5>=YD)#`>%$^G53GcZjMEJT6Vkd%{tYza`*3Nw(QIJ4rNa}5VQ3Bo`S9Q zR(o~}CS~TGmYB&Md~Wj&H^$;)KQElxvS{;%ki*|=%6x#(&YxRf)^Hj$ z&PhA@Ju=a?RgY!1#?PsnEhYWzrB+JLJo-*a$;fSukThFB(}f)`ZX_*el5G-Z>y{7< zd(NB?`NPy-VV>=?RY|+lb<|&-uyFU?8$IjhqU$$G=RM4+ozVF>=~73j!C8m5&x4+^ zxXQN6E?SfD%y!%52DXd^hN%fE+w+5uPPA{EpE&t_ru*~o(lZz0oA%eHnOBwH+EO=r zoq+a)cXblGFuWhf}3Qiu9 zPSw8l=jU6|N0TGY&-~G2oAf*EmG<)|&n%yZuD^I*H2m7pR9pA2O#abvEB3H?YY4_R zt>5#0!p2>Xc76KB6~BPt>BA4-ZrQEayj<+G>W=v2WA@tLFSPa@{I`@XW%9Q5XWqUK z3;CQX@_LaI%kAT8asg*$e^)fdtvi>i+V+9puWzgS>8sIY_dJ*@`#j89AB6H8?ovOe zo@UL|zx8Lx2Iq^u4MDM7hZz<<@7>`MeI$OB*3UNS^}!GBN7b%>Po>=Czc&_?u(I5Kqs2r_YR;B~S95hi^z?_g>nT>8_J9!Q3kTAHG`aQnoAg~(kImhxB5yvOnZH&l|M3QP z+3jCN3f_ERirchDvTf7-cT3#3zj}0D$^T>gb=@~F^(&%|pPL&MtkWh3E6z}c^1N2?naOT7mn`;nzM7B}VN%BI@@-3Z^QqPIyfj-G6XZGk zW+|0$C7AwcJ2p#(IksY2W3xD?LzAH3rmf4Ssvb@Gt704)_uBXr*Tme&LkG7cZ2tB` z|979?Q{g3LAEqZrUb(eEPxsInRk34k7vD5xB^F6sK0VcQ)1`aQs~ew+)Mq@pJpGs7 z7Jh&K-5Tysc7zM_OqpMppp@!04`#pLaQaTP)PtNo83Dmw zQD->l3yb0f9P`eUi0Pp2IyJ08Zf;cv~od%8F4=dw()c-7UR z^Ztfy;{OvdnjM}deNPmA2!(0SZN0C(MVj@v{n_jLwb#YEzx-6aYW>j{=1ILA@9uIR zukR1M=VihYf0iM4nZO%k{WCFdKEBw( z6LUdp`I2+XnyOj1T(Z=C^g6CaZ)s!7MDZ)NPg=EpAIQ#$GTjs?yy1eLE6a^a`{=fV zQ@Jg8C7O4B^qP|RFvMj0hga;6cZK)Zil{QZ+ji*RFYalFCLgu{&^?#i&+x{A{K2FOp`xu)SaVtUd zvgk7l>xScjo9gR>FUwuEsTi%SuLx~k!n(^-q++&c>0*Y(ztm1G*{D6M zD@Ex?drR?WULCp4^3NKzU-Sw}-p}v7aN_#$#F;nNNQ5tP-1YZIjia)H>r5{I*OMcUHiPcT`ON}l3U$H_9-vE z>4#jpv;JsYb>gikpDn)^)a1Q!5YCfdH2LVe%l{Yu=WIN?D%Xi8A(3_8o>zJYeYYP> zU{?5gXqLEK^YWTW?GN8h(XbIv`>|QiOSxZqZ@Jvf`KQC8^JMpw?@zwG^zC!q!%tHB zkKc&5@csK_>fMX%kG3D5_&`ML)R&D%-`CdMJ9n}5P}wQ5fX5O0CiDF^OFxmiwmr(Z z{t0)*fn{0BE8fj|pf@4K`-&^;=~bFnIw#Fu#nI}sljrDluW%{0(;o77G%}4D+mt7W zEA*adeaCV%F?Ra8&tKnt{e0qaYyMN$YPqDFz&$at6PQGpTGOX z*P$G0=6FcT&i07Q-MsZ(URuh8Z2C%#L6xtuCD zFKPGPTO0a>Q&lBD#p0E;U*~pTrVV-l%?76Dxn?oHD?MZ6_PyMq&TGfCNgB&09${TA zy>s@;>0Scj9k1@W_rAzyJYtj*vVN}UhlyMCR;`@%ZST@^G6JqE{qtUQ+Enm&eby7d zo^Uyn+iu7AFSfqrCOt14_sRdvUVBw)$+2^Hu4wpj?wp`~_=fUPl_}|k&pdsKZN9gi zyFOogr}&@enL?^xSMYLQ?(Uz_$EFbOx!o=QbztCR-gbWo*KhK_JL0=8Y=)N1bj8_zVLN_(I<+B7Ik3X!!4e*o??sYJ zjmkt;JO7l8_4;3ES@7FtO1x$Ox6}`lM>g-p<`?iLMzOHBmVG-C%%9c4aB-&huC=eD zZN5y({wJth{Q68ZLuzx!n(c1RUCH|V-;OFLim$Y}sm)v3CedK2axge-_kIK@O#QG*`K$q{q45FO19_aWE`izx?Z6y`qqWm*3j?;DI%X}O?7S4EkkXz;Khm&(djxSp-CipMp>eAz8#(XPxoO1YLw<)i2%EA8+ zTNHDTI&Zs?+FP0>Q~#ymr|`OntDi5szE@xJ zcm14T`d#MIGT|2z?6QvEpLN;UT$P#F{*n95oC>BD%;jIcMixyv@a$umShX0hZ^8}R zg;x7nb|36*%DUS;Z~JMn89%@384L5?6E*0Y7plEHi-re`nD%E|ol8>z@$6KcwOA(&)tgXBp{iN*C{F+HP8wS-jeR zeqsCeLtS|f{nk8N^3WLbXAp^eW(7@zn;})i%)N#9Z*yFTQBso?{n@~ z5?AE@o`1z!e}9{h*c7vxT`X34{~7qsDNX!kEVxTOEJa19`Hw}R{@LvdON|UJ?y*W< zx}_(NKh-Ga@k^`4QD^;D_<8o}zCN*1{YP$7$sgT!S@pARLnS*uYedY=kz6VMPxt*& z&CL3uGSAgVj&s(V&w8?ApS-P^*8IQI_MV6BP8Q#WwSUrv7a?eDGj zd$Kd<|H%*cU)8jbr^o2q9)a^s=aM4s2dz_J4}D>0=6FNzo66m+j#Ynmh%HSzVb|@p zUfx#v;c0xDNz;vnSsS({H7-{5nVlK2tmVgX$-lyWlY^z!*H(&1U%+)<>nyXp;&+b2Er_Q1pm-u(x@f+InWp_4i zjNx0b?EYb%{D{>WQ|@^IMfBcj1}K7^V&MClUEP#(wF0qDm$RgT(u+qC`*!; zlzCXnBB|!dGE*$<{jbgu$or~Pz`OfF`IT?I+cxe?-14*5q1I0Fz}if!$)@Y8a?W0v zJth0@rR+w9@@}qb)@$;N_1q__WZGCyESRG!R5`g~YUr`feb?_cIvy+Fkrw+|Cz85s z^UUli|2du;-_i{{aq_dsjfm-e*B*$}1np3t!k2S$yC6%mn~-ePBEFeEKAX?~y`KB@ zV5+mbSG@AOs(-a5$#b4&{t4WDpesP)FyEcGAI;a_Zm8t7c)VrpXEW{8SIg#d@}2rO zYwiPORkit3KG}!Z8wc;Y+370SWUU)RoNyS>33CGRQuEV1AK>1#qQ~ooS%8?*jmj`&(jWS#Mo|) z{_MeLVX^YWanFwBKTD$Stqe&IEZ7pESZUj$I>D=f-Tv{s2OE@{J&hcL%=1NUS1|=h zO>v*r@3m&Sghf(+?c+V~j_S^=UiV3PpxaZYDf5!kF;f#B8 zt#2lB6ql?_JFjXezVp=7!c~W-Gje@f5wrGN*Q>{Bm*O-;f3XCH1s(X)G(qrNkM5q& zyv;G+I$4xnPi0uhDXqKaf3AbQRCVF8?g1lfWcjuGoYs1+_It79ulj5?`Kbrn*mfqJvVAFT zrFQlAdd>I+6ZHfy{V{AyIkNrzwuSe1@N&2~GU&~H+?upw)neEAVY`~1^zQt;TVu-G z)Hv?tuk7X?^mc#Hx~f3g-jK=YbePhS$G#J9`sJsto-HciY?bxRBQDm-->H)hAZ<;r`9(**x#K0ltz{_o(9yXWEJDBU(j+k^X z=(+LtUKDJQe8{(*{rK*_?r$-N1SGzsUf<1RAaA|i;{VyyV{5yo#>sZ^tX7$@ca`(E_pU?|O0r58i(j#%q`-@-DYCtuDLx&(@1c8n&?( z#o1jZX-Ug0Vzp32NB5D>9ro9s{;Fu} zeo%Vo%`-*kb1F}P@N0!bZF*)$MIRh=o66OB#(mFRA3f&JZ*{cx9CqCN$v#q%TmQM? zcgg93OQ$_7FJMcsvNU%z+W3Egx}c$thOv>3`F6A9$UA`w9o;ydzfHHoUrXelyT82o?YgTs zTr}_T-0#{Z?sNT<*xJfzib14^NaJjyM+FTw;u9W(r}u|b39;5 zgL+uMqR+my9`l&eAH<0+?3hb3m~ z?Zv)Mch4>eo$NO8EMFx`3)zxVxm{4Dn9CWhE_*GJbk zKA&^zL6X+FjL5TMsXXrm7;M#lCR#^3wa#WJYhF`a6XL9_{-T&=(rUMO!|o#)-(Q@M z_`c=OvFFUJ`J3)b=O5wY`^$Yy!ZvJ2*mhGZrnW7G-=C^gUU@%brSQS(o+&YR`gh1p zO^7e#Q_n7#=3RR`$D_`A!r7N1w$*Q1i?!!Sx_KYAF0;s!kht>0?#El(?S|c}{@jp$ z)DxNBf9CqR+ZW4r^YdM_2wq_Pzt(ArXm(cm-5ENmuAiU(doJ-t zra&s?f$N=Cvuo>06v`VDk3WGF!fB-`QFI_ok!nmmg2IKRCH< zVoTW4uS-~~SRd2`1)p5Nv=ysz;Cmkx zDgDUxZ#H~fS17VYy}e)bl8@Y(0R1YT`77&gPEA~R%ZgKD(p161Zy#5Sy8LvD&$)eU zulWq?e#=QYI!Rm3EwW_gv0gT_^Z0_rE3D@@r!*DB_5aBVv(!?PoAdRn>h2afcUhI4 zS655EvJ9)r<-gW-W+SsF@4rvirz}_4s#_E#Yn2eUlEOFwe5{PAycnJ(kEj(_jZl^gZH{pX3Os?9oJ9RB82^xJ)IpI@}B+~xS5 zbB73f$Go$ZyR?!M6@(ZbuHg#|51oE@rmNQEtv;_e8eVDs`}FPH)xQcC)M@STUGr^O z?n?fuH#N~~_wP8oIHh9?%i<)R%e8WPCwOBcB750cDTsZkLRT>&g;`rpX$47 zO=)+{Blp>UYE83Ghi_I3{ChiBa`mf~pFb*`_xh%MCbLz`zf$Tp!_3?x6K-x6Toxg> zbmGHH+v6YK^*cX%t-o1^_4N6FzLd!Io)`4Wei5h9^)@eNI?s{HJ!^DlJr&x~aHe0^ z>CS9J)|Fr0=Zibk#&vDkaP083iiufAN)HvWOJ~0~J=pef-bNp1ZcoTif50KhCm9H&ZNQ$I;vsJd#%;c9(J}y_&lz{9jO+8$-No*`n1C zcnr>YpI6PA^!`M!b02Wtn^${4^0WC$-d_1e4W=+o zMcHlcJeo@_oy?0`8>Yn?h`6RE#BMu%e#0WeV;PC7JVlnlFRG@qP1VWjDVghd0M; z=5u$cH=MfZ$^A~52PWSNE;;SXeE&>lJ=-N%f0A zXr?U{R-Eed=E|1U`z2!S-v4@Xc#dD`l25${dXBeA-v1NZ9I3wL>MOy`j`A%c%F;TU z6SO>3wa$c@PiZ{1@ko+x;^ZY|JB+{8K6$f$>2cAX)0U-1Owrjz$_EAGCmBdw zd6E`k6t2Hw`JW|$F}J49mMSbfGiT-5T{-nGTjhS=zbaV!d&>2of_W*czgF(dsa~b$ z^8D+e-z?#7)7FQ6IQUY{{}@N+y1r$n4oR-Km@v(tVR65eyV2o)H%eQp|C&t7W=v}j zXn8Ruu}Uqo=k~pT5dC?5=}Va>`EqG6I~DDByQ^N`E$>`Z_Bl(A(^@n*j&Jt9)js?l z+l!-~JrZ+&mAYF0h5z34HHT*Wuv)rbF<@bGvBk5K7aJZcOKcI@r~jg8k4vJ!)%4anhR@`9((H$JBQHBm0s!U!E!;KDT~l zX3p##MFI95J(>~sUQ5Zd{9YhlDeZ2>Xm-qQnNq88*h}Z|k{6fUa(B{`t-iKf+&K{rZ$m?89-h)|i0Q-vMU3`-4NDghu#pHM$g~k(yedc$e!{+W*MX z-oKC6_iV`6`%?OTV?6hDdFwUZQ~4(Z|1j`XeEwSLt+3h0gS-;UC)j*>)Z*B-d_9NO z(!c#T_%`Gnligo0?YjTA{_fZ7w5K^9naaE4-0w|II~fCQ_8(fS9e&C5>5b!4Q`!u5 z=WIw{Ap86Oascb{L3s+Rm)I?RqemNRo~n= z?VyhxmsEm)pi5HJQ-f89f)?zOYkZdyvtNJtETMUa&aQpq^e#E{Ok~2*bi++DCY`}P zbzMKVcJ7WTUAMAjNot#W=61Djf_lxrC#;^fpvJ`DaLu7N_hc&BeXm?zSI+Wy1*=oF zML^Gut9#U!3kbc+*3x2#Z_vs4xb5xw62V;(M>HmRg&LizmMy&}F7xPn*Ik`6U!yGB zr005_^3u`e6rL0N(aiCCc=qa&&bQysY+96>G3(_XG1G}syEr#J@`g;eW4&BwtEE|g{`s1ysN8^F9<7yG zr}#A*RV>z=nX^3AqWWDmJc&VH0+sAgD`9lAe4KX|RD0{cmE>>GJ zON{@(DV6XiJlieZlNtW6xE;S=@K8#RgyHE!ZaJ0Hc&9EBeQ)ZquCif{l+bEFD^DxO zeJh{n-nyH+{C1|PZo1^pYsXI6}>%=Q{JUIa-o&pw8-E6ZoluIc-@+I=*N~h1vS{X-9S_y?$MVVHj?dC&E4GiUARTYOQnwybc?ubV7}S3k_ScK^?;H1>`Y4WW;< zUVl$m@^HP-B^%CjbJMn#|Jc6Cbn@FDZZf@l*e!3o$tb#)w&-^RtBdt?rg)`|ADg!& zFTccFx3_W95~h=>&FiM^Ip!YidTf89T=-&!r&+8@p<5D~!m|T8yK6#AH>iI0-Rs{l<#kj~9O!?vK7DdO-Q? zEW;M9Mf>U-@Aj`0k?gNsb2X&k^v&g!>=Pe8IUU}^pZKWi%IU)kE$^Fu`Iw|F%CxAy zOHTi(zzmIx;yGRSEat19Q_tf1x61NaJdZIY z*4)kiG2F@g%5m`*?~i1coRD68S>e{IiH@4S5+QDIa zU{b*e)00U?e_E5}Z|_O1*(tgEyFr8W^m<>hIfrIVs(7RubY#_c4TpTK77jN7!{e7H z1sjL#=@X50^SF2}U?a0v+|heln>kjksw~#2X8Xak%ih4~&##HXH)Ln0gq|+(i)Z^H z!2C5l^+ttbsN=^PJGXS9DzC;ZGtH~tPKwAsA^FzjkKmS=K)t{>x5Z@ooHe{;He0N! z?2~x?-#ILP=_Si&&aQvw6g)J^%dgt>hm*-z{MECZ2lIV`V^7+g)KFh`ckQ~1e9}|W z|JfyZ`LMWMiSoYcba&EDt*VW#dnVqB;B-yS_I8`P+P+fl(Do)-W_~mOX-a;(Ctc28 z>>lm!R(CO0qR)Eea;NaOC!gGzkUL=w^T&&`%NP&!EIpcGkth52P4_FNrIGI9DI8O_ zFEU-Se8b)PvppGMElVHiuJ`BCc$yWMH2+U{>lM|@+SOB~GvC*@bQU@oeS39Z#iB%_ zbkUT0n|R?{F%37~>1`I;@=2x5Y5UC|)i*sJp7UT|+?wUV_lNtbltEnks`5meX{P^J zd*fK{9)11(x?q7aUwiCSi}?oOQV$HG6I?|ltC}Y6INANhrsq>*3FnH-aevQ6zgm{| z^3<$Z#uKV?=LJr;c)CCG^G}78T~8b{|0#s*^x}xTS1_kO^O{KJt6PyfNHJSX+Jr;O#Uf;Nx<;G6)@2%HMZNG{sWm>mS z)ey4#7^4+=#pRQrFJsTf7qTbcKIW=9qx{*8yZQJ<3!_7AGTePOXC=1G7CSyQ;|I?M zW(!UK6(5yeWLwu)7;h1sW#^@_D$A|^-{nRz~da^WW1i_T~THGykZAWWw2*jxzm% zhkjgi={u@2wdRja#EIo=X5KlrzBa1V>w?L1i^PEcMp4_ZTwhqevBbUUY}2)Oul}jM z{~&cyC~(rsGmV8$|6NY`9wQsh_3&Mh!{Z%VDtC8f?l$}9CBA=7Zk+WUb-}n;E0>1` zHzIt!4$b~o$!(JrXn85_3GZ~5cYQtkR`lr989cLVpL9g2`9$ND>$`rax!xB$WNg@5 z7V%)>fA&Ad+4?_U)Li(w!c{!C?(eVr$FA!tFiYs{IR8uXR@AJl6CqR2?^HZ7qdGlc z%j6Re)9i$l=5#G>Iz4fTt5;>s!7m{nms@<zj<(pZ9ACBBYueH!Q%L# zPgYI1#eOaI$2ujg5Y-orZIjMgKQyQ{oH|u$!>nM3#`HabdxhQ{eEQC!#m2n6xvD{N z@$K?+A1B!Kyl~VwFjXbGRw3OhJg<0hdwQBujybFF2dfQB3cXu(d;W5k_g{2*{7kgn z>O`rRaEs{@`$xC0PCwGR$(*@i^I^wq(|jqOzE@$>V<+e&?m75<%|q^oM&?JPTpJEQ zo93RObD;j}Q^VDY4+}QPhh%cH2HLgHPOwpV&gl~Jq2_bDOW#_P1;KqcmF=Efxe;s)&{x}tqvaw zZdsRq{=a>}hs-|zzN(zo`6s`hjSYVxcG}lDzO~MJYxdRj#5%?gW!^U!V~*Zi-f8G@ z-%@{vhr+MVuVc$f8y0si;NCTTgPF$uerbt?zmk1~vXAVtefcbP@oL$}?-pp)@I^Ga zpXxj$RwLv1KJSC%e&NNxf2`X3R6Oh9%B)8b8Bnq2!TxxpZ0ef5f87t=QiPwmrSSZu#<$-^DGQ>v0}-J(uhd#NubCT;xQ zcG~WV(s92RFk2gbdVB6H_inbcnTz{g?S9Q5cMU;yCC!JZiDBn0*xDQ-4`|NF!OzuC+u`2f9tfmzf&%K=s#d~<*1|4!=LY0 z#r)_y^jkQ@?``GpxVA|XHKHR9Tjb?$v+DXUr!sR}{iBcmn=EV_G%^gF{u#R$Yij&! z?_2WKWWZht7Lkx%s&2wSSCmb6OAWxf<`b zSzOS(hJVf~wk3HXk{O~K5)6*%p4-gj)LXyuiJCO?vYDAnCDVD>*16X-J&c)BB(V36 z$>~4;Cn-3o?2VM!+w#@yh|S-$)e$ynnWop-7pTf;e|_Tf{Ku<)&Auh!8`oDYka^1X zc2&YDg|pKm%A}XwUO!zu?lCo-e`x3B-OK;JxC9@eM5D1MsA<>Q(=jkhs&xq zemPk6Oip$nE*baENDG%9bHI43#!hSm2EG7}S|PioiP6RV9aczwp~RgA~ufTvb0 zd?wc&4}KNny0qjuPujv|f>&IxTudyy#d)H3&*>$*P8A8vOW z*sj@WG8>L;R*{rZE$4IjH8FjDM`cgTk?fw0uX4Za-Ems^;Tq?5yR+%1*_-{0yzY5d zp5l-%S^M4j@6667=9NvCdr$7X(DTpR%Xkahw7l+i#|ZyP{01hRH#Yfpg--90I5^|r zoapOPMx64Zfl0q+%eoh>KJwwc1&dO(?V~D%W#5Y*6tTZIeSU=hVy55i<|)q+efE=ps*aB;Ok>8**^?%Y{%R4Zj#|0xG; z`T5bz8#cQ0U&%jXE%2t=(VB6&*{85s(_-G=knvyNa?<_JwX2K6s{Om}KY8x%#%5)I zUFn9o$hrjo>)N;YF767{t5a(Hp{N-qI`MXGbP4aF%TeW4%5Q!)yg8Pov{UuXl7m|mb_ZZ-u@|1!4n?AopU-o-PtGPZn^v>_3t_^-{t)xjCp7&@hW9U*NI8qa!!! zC6}w83;Oe+`)A#Yr4PibK_-tN@- z`TNaDjj0)yS|8)i&N5f_@t@nw9{j|pUU{yJuw@CV;H8c?RyckAHM=7X=; zo^L$y)>uIHnNED=EuCMDeWi-;yF)sfmgaNMe(x{)SbgO(k*T_hflA)ypJLeq{@I;7 z@<-?8_Yph%ARSLTZB5V z&YhmKd+X(lzGDT-hi~pXEBQ54De3aN-i%CPCb>V^l|li}vu;?w|I1XJd7bOf+&eey z`{r$06myI3{Qn8-^JZr@^b2WkHmJPXciUW4)1gzYBhBaNN3RAMzLu}rwO4{QHVZC) z`OsNkZ?(;I!yT?3Q5sxZl-%Wx+$iz)yb+V}*{|o#f;&gAyYnt!ohh?){(K}$#VJB;*Z~tOb+?mK1-nWz#Jx&Qi-qDWpBohUGv; zdZzla+G4Aw#@VHpR&QJ-`ESo2-|rU^5|aHxxHEXVrX}&VwS7MSOK{WjQ;r>{IW~Q= zV%KOf6^Ocg)M(z`9V_CV`d{0Z^=a*|C0{qVynp7vI*HG&Xg%|eybV9x_s5vunRQ@l z^e&aw%7s;$9E@2vyM>ixADY^%yq0_9e<}~>VTJ1boEM6YaC*Frm68(l%@evQb!~#L z=coAg&z-vSmT-UHeCeyp&B>eR)l}{|d58P>=S1n|WyR%e_G?l&-oKSC^O$w3oVlK1 z(_7ixS=WDkV32lIy?!>dU8dgReQED{zt$C{X%;os6I5;dB7fSR;(agjKKSOXBppHZ z<_o)ZmDs1}-H>E>QSkihQ;8L&7Ow+4B_djnPJ5Z;U?)|^Cf|3sOlR-K{@Y0*M-&U9 zGP>rdPfxm6UMIj*-0fx%qJB%P#cuy*W~sIn%Sx8dD?aAJZL?qnCkKz&y@LHrAD^u6 z+T|9QykYXLfbXxi*;zlGIzPtn<*YTk1w#X;{8;n9>O|j!hx}o=+Y8UnK4*~4_otp` zsg>CJWzYR>LS%2x%|7!|YRS1b=FSdZg}Ev%ulKt=So(~ehq>^t)9+_pOe+o?SWz`M z;emkpy$V~mH{82VZ0gSVrhemIIUc1{Uh#z1Hq~@bDL+MYRx~f z?zrPJgMj{}vZ<3(kMfw`=@ZC}c9V)My%%%j?@enoGP1Xw_kM8K)0}1N z(bWn;y`SAH_GD?cdY|+9E)ZYRwLBwX1y7B;fcfRAuT=yk4*lKJa6IJlmUr`>yXwxW zw)m0duwWy@e_u0)x=kit_aDxfZKNRcF?Vafwrl26v*ke>7epV~bmW+pf8-9cNU;yo z7;@Al6|HkYBgg=+nOEb$!2VG&tC5~vrC_INg!BdUvz-` zSJ7;Vy1CPv4liP{_;k+j$@}xK1KXm{*_pJ-N#*gr_dj|>+So|mr8k=4>y=l!)*B`i zFo)N0Eb7!d`&#gCalzTfD=a-1cRn|Nd7(o_u=TNf!Mez~Gb3Nd8XwE*Grt#pqc)Cz z_OqMDf1~mw)%?DOua}wYDqZRIUq!zEeNU>1=F3J~;W@`1_7wP+Z>!q)CQM^V^Nof2 zwV~4vSRal!XkoT@?+f*kJI^zCD)wJ(zPhwId8@^&t@~x9ZoOlax>@5GWIg>v!?6dK z)0|juT|HBp@#vBGv%FeCFS(daXL@7q*6qCblz}ff^OwKQZSS)Dx{}=9eY&3`tzxs| zbJx}s{&@2F%fqIlUrzkUl{)|D*TqSW&jljCsjRzxBTDi`LYGC#pE+(*>>`YX59FTA zaF3GIU=PsP{o+fdL}`ict+~hED=AvB=dU-fZ}xjw^nMZVWD6&=a>mVhcbtBwY|Go2 zym+6c>u$r?n|%Az^o=~dT~cC~U1BPKJ7eQXPh*E$Yi*Oh&OflcAY+x%f^%Pl+uGB% zOxMaSloq?Xp)=^}|2J;Waw^fVXI<+RpZt(=NNWF7{9W7brl6;vjs^G9n0r2d&fQeKai&OLM$_&7 zF?L0VU&2%7=owu7I``Q8EjJXul+L?ka7g@mhIzoj<~dgcCoc4p{JXL|U5EYADTd0= zr+s)b<6UL&RdzF&$g8w*$i&>;@b`H^veO1uuhc4eMU#et^_~2jTfPUiZ&*;& zd!#mO1MB69hm=YiTX*G_ufF;xv|8wm$FGj7)x6P+&lJUGPw!Cw&!&>Wef7@|nF{6B z*soU=ZZ!H;vCrszI;A-1#NGI(|G4Ka^oiSMoqs&V|Euozz8nGB4!4XhXTQD$A0K?4 zqZsgP>W!_na~Di~z++qP`oQ^awSDu2X%A{eOP^eJuG-)F@yFalp3~iKnxER;VLC}r zr|GsaS49zs#JU zo9;Mu23p;J!nk8s>D(IiJq0fgq^|#ExU{|HlEI5+z7O;6@vmdQ1vSDJD04Kc$*h1FIQ9lm5s?cSt(t1arzKb?I(x-Qw% z^42(>DSOA;^e1$YtzC%qexai*yQ;4ii9P(R`&Ra?`-4MPTO0dtmY)9YCa!+J2bI!XW=B{yS0$85UI`Ych~oBEIh)t^Kcq>+_`&2^FQfO>u~dXkH(4UQ zS~o!_s5E#-tZu;E(+j3dH7et&tQ1)O-DlsV*TJjR59JGbv1jtJ6)ez<+O?D8;@|UY z`<^eDkyh~~#F9Vs+kSJ!=xZqoYd&w#KjLV3xP9S=4UDP|%FYuvok&@CB=^YN6`F^p zT@HM1{^zcr>amy2o@*tZwf0Czmdh+Z;8R)6KI!p9ON)|s7vJc`ckhU7-S&TKSW&Hn z-M;x6H_{8QoZ1~EW4FPf`+=}W1K1sd(JA9VcrI*|Ju59!uLTTV{@*kk@F&}z}v#y@qfdwU+< z^_#~tJ3M4*1?Re2nZ-e;Ots8T9g<`gKbw@B8a7irkL!`~j^9D2?`}0wF0j6D6w58T zV25t%SCN38qYn$*E1%_GnC>{OXSVrHLGP$l1}wYp@A0!aF-t)=W6#MmN*@mye4nHG z!P9;I@_uKv%C+W`XTG{MH@*C;@Yc=tfdP*d|L>DksoYaF>yTy{d-0OrhlAanR=?x& zj5(;H-In#Kwlbf|%v5fll#_(>w*2XC95MHn?LDi?wL3ue_o{mHN$df8l37=rG+yGO zy!k*%GfT~<{TymP4&G-tnDUk5%l}f2xGPgOX6>HWy6WGtg%&&6_i}x^bl|be_8&FR zPXAU**fufpg!`vmc2)b;Gzf{rif-PVY6moBm4XzA-7ztttOnWp83F`J2wQuI- zJ-U~vwc=7s@X}qZYC(QVbquav|_!?`hc@+t9N( zxoP$+{}&?XC!9NK8Sr71ZN`_I4`wH3ym&A4?`GPIWV@d?K1OVB`t<&b4euS@xf3_> zJemIQ%(8%A%+H<89-WhkJg}~{$n)UkEWXMP5iz5ieB4|!-bC4jT$_@@sPskdWlRv) zc7r)jX1Tmxv8zaAhWpRAQ%*M@uiW|YZkI~d;U(W|Zap~mCHYK&>Jyvb-7&v!rYV~E zPdM54YN^}C-P%+1n15dp^=5yikStVXshDw-O+BGj_WtTyQCT{@U!&5VUS`&7DPOlb zSti(H;P=_SNKfdriG9l2GM%;moFuR9J^H!!hV}6t7Iu3d z!>>(`n0!sP-HBQB(6wS~wd2Gv&D;k&&mTPF(Qh@k;(xl{nTYMIQHP`X9D)w}-fo&A zRh7H6A}B^pG&|w!0*=o!HvG?7c|F8NlX-Ugrhxui6Pex>ZL5_m{^(+TNpj12z4&ue zUnyVS8nJfvqu^IzTdrTbt+*pZsj=m)Plci zPtt6wE2h5T+Ye4(Rk_?`j=;vG4-w%nf-Uq4xY=~`w?$-4CW;p^_FUrO#u3ZLF|LM|*o@#}e=wFap_ zg*Gh}c#taM^)u>CZ(T`wN}G~ zlGF7&0`AHg{i{3XaoJO(%2V93xO7F!H0{aJ9Tq~HTHKvXKOENyS|ZTExM$AV>f&8W zyPxhU?%#Q)Df@Th&b@m#NvHhYapj|H$E>R2O}s+KeNONAp0A)B>ylB-;H16ti&0Wv z(XkS_xQ}b^D0Z0?N+qo55#Mt@V79W@BZpUJHb(4SUY$+*tuHSAak1r+K+yVxpPJDM z=IOu6eIGjiUA|c?&i}}CK`ALK?`Lx@ba;-&-Ih`+|#2`h}t1)(urRh4Xo5n9Nzb^t;96b*s7j+oOAnHP=Lji}n6F^wGor z!sV*grrAzB%j#xsy~-}KpoZ%pwAGY&AF^{!WAXGl35_rkRHbB^JyLFA?Qzou{DjIckw`QxLnc>MItZKNFsqdkWpz=d*N0 zPJ6O-=-ZY(u`F^w-o##0U8j8eRsGE}x85`FJ;Hq#T&+5D(dT8JQX{9eXv!>!)|Wly zC5vtxj$!BuHC#3SpquK;rM14@oNKG=Cm-7(*%Ih?=}l^L<8zxU8+Vk4Kj3Bf`O|JT z>o0E21OHClnsMub<&W37LL4O<|68@{XuOeK_4wBIuU|I*aBHiSIjnQi>{W?;l64)g z>i#1wO7_pz?>fH8Hn@4~O51~C8T>r~Z(T!`8Bw6n^rv04K8L0E4J9g3wjU#I}{a$nO z-;ccwk63d}F8X?Jxh16cO?m#c#!tIGT|M`PZPI7q_Nmt&o&7mA&Fe*)vt^cfl1-FF zh3pQd)wl28ed*-z?z58OPQKo{rUzvgmO4)VHLa+lxrL8!#`8Z~2F3609(?|2cG8;b zYV#NBX}3Bv>UMmKc3;+`D8-xit@^creU`1G@Wa3z>l){(*mNyYNE4al#Ul`?$kfl?f7`M8(*r||AG?%xvTWqdUeqga{PONK&kkEF-!Bl@zOYNVq;&1qJe9exT;B9` zsfyfKwb9OA=kd<>$qn0F<<4aJrIbeGC|vIPpzreWkf_y*w?)+lf5!aT_MGi$Y4zNX z&55&KPwR*j^sI|BX!AM4o??@#?=Smx!nDI{@9Qp)TIly>#d8OyJ+l%+oW*##1t&Xl zZEv$Zw=K{;Y3zx!vPgU19wG zR-4q>`-P|bjU2WldzH?c>%yr~sWH3R=Hsge>n66ZiI#Bnp1U*TvCe@VbM=@Gv_%Fm zvfP#xPKnTLd+!vv;!BaD?Yi3$F=5AF)=gT$o2FefeU_|$>Dt`9lZ;6pl3I%XO_;I0 z;ogVj6}{h{{Es+hapiIBOUbD}lI+j=wDPIOec!_rcHr}iLtd%Ax$`5krkr}1Ja^ga zDc*wbS-vM;6TSbVqq{M1qqXs(2h7bc%N%E%oAvl!q^5CW{lfoGA6=Apuw2Zrt$f8h zi)lL>{+?qB4!NS)*RQ-k!>9j!El<^HhSmeovwX~V>~qRaDqd90v+m)PmuszkK1&3* z1>9Vg*mb=6+`5OEwLCXB9hkHD(f;2%q?FxFS6#mrdu9@Iz~QBSTO3tSIP-?fybt^F zg=0c_MvTs@$PIIOc1*i>ZT*78kBgFSn8t2vmf+Z+nXZ+htn@KYd;dn`IX7}n`+TCato_YJ=)n9LS<>p%k-gD$%)$l5m_s%+I*BAER z>_as4^H{c~o(mQ8mh0%%>s$Cjti))Aoa@tbUs!UgJK1Xw1v6MU&Cxp$v`AIJ(WdsS}Cf3oRp#=`S+6NG}-_V378AK10kH%$DLx3yc*d)66YUn1*2 zzD^f=miqLAMB#+Ii?zCRQoWX?ZeOOE`uRg>?tnP$r6 zpu!w}Jw_(a^wUGR2o;p0_IDeorNyQE&!e{LeN zAW0xL^TeVXO#MF}MF`eNuk@OJY?saDC6ksgD_p#l(&|*Z=-d{IzZbsW-2Gt1&fW2% zVPf~M@Kie2zJ2jp(DLpZ(>brFwV2GzwANMC;uq6Vd-!ur7h@71^V64&8ySn0X2%!% zsw;|}mJbNzpDfkc<2~)=$sqss8S8fJ$hCgQ?ZiJ9)d;L@+Q<%gU(R>H!QrtQw}`godMTJrN}+t*Vz|8`z>D`)u@hQ4X@wzX+o5nT7?_LIi5 zy>&Y~uAbdD$TyV>h+LJVI$HeNF5 zaSF5N-#2yQQrp_Qj?B+RT68}KFe(32eCfs!_geG7_P)Nj==twewU4Y9mh4~OFj??s z;1};R7VAH3XIJ0in71a1I;-0H=`N^$^6=zQu|7JXG#;bK5y0249CP&U{Hse?+GR-#BZ|7K zX_+txKEAotCiMN+koQg>T;!d-#e1K5pL)IcDYvixq4|w*tOspQobTZcp84Nz|Ba`r zOph3wmj_*ZF};nyX7fUq`Lk_qvkN9CRzL5acYectMeBgo#{~nBu~>x{sFHT3AY1y!^`*9F<~nrq&r;dY zsJ%G!{)e4AKF4?KJALbK&UY(W%B$@;tLmvw8FS~|SuZX$%ak1dtsTv(-@|Ps@zLs( zcIoC<|17`yX)0|iHJz-am~~Wry295@Mjb2ey*gO7`i9x!!xC1f9OYhIERv`S>5K`>-_iO^!~4NYJ^5LW=|PZpgmOe^Mi?;`o+rPF_XA{2R6hpZ?^z zbvU4-VeZ#d9X4T!)cm#u)7O2m*_~bUOnTCs;x1J->qi+9cD<2bE~TBjw~F~---q|6 zWzUWtwp=!Iwrpc~rSojQbKFcOE@v(th&i_Mr?83*v&P1dj)#YKufKW9QDfJsyDS&K z*nBiQ=Pt8BCN(~`?E3Bn^UWsDo%M(-&!o9By|?>aoFr%ZKGS->_;%?s7LOO+lh;@W zOU|(6&fa%}H_Y>cV4z1gW*KF=K&@jq=+xpDFEK4z;9 zaho~U@A_^?dcfpzVDa_KGjYw#(~ZiI3aCDK zcG1-LDj#m0IKF}Lpl!{`l;-5}CjLcRI|7e3Y&-kJL3vM>&w8UT-rtfAO%sY=x;cE? zo4=pGT%En9xb6aPj-~Z{?fVmo_VhpRermUR-ICQ?S@!K-&bm%XBU$Lydai3Jiy7`G zYa4$p&oDBOXnO0kpyHCkg(s5x)%U;qAF$f_fA-xH-E+5{*q5mPek#5$BcZ!eL1|M~ zgHK|&OWJ3h1MhP+!J?WYrhk1M6On)1rV@X0UvJzsNT;qDb*Pfknq zp2QV){rm!1oul6@Cp?zB6w8{J;T^%ZUGQk0#%zV-2ix^*jNg7(G)FS)nrq>lpw=6T z^LXW(Bvb`M>l&vO-nlsIPvHm80G1~yQ#VO1DmO3NeMOclFK8P%8?I4o@j0O>*3lXT8UFNGMAX@#@%~kY$rd}hSxeEW}Cvvj zZfOA*`!&BpP5-}=|9dEPrs@^8XAPIG3COWz_bImUH}~b9TbVb@D~;#>+CRSLi``kR z?xiq>Nb1@NDc?QxrQ>cf*wZ z?Pe(_4#8dQB|F+gZu&LIn^hdx%KAI%$a5*pj{csBZa-hX>S^t1T=4(q^#7J;3)JMd zgctAFTcF^=FIKetPj;e0s1hIdv{eSKErqXwc0XYj@pU!wOIycr#E{wT#D|%kZkPL~ zuQ+*Mb>`QIX+>!<+8T!qFP-q-^{D0U;wY{6yOJ1d9i05WYwcgQ__(*j--j(8f!e%v zEtv~sj3!F`{Buh!%%v`rd*hC^PNwoXg$s|&ICPM$>~ZLV=qzO$cBxOXDl^SY8*`#d zuP}H0$)0ZWeUIlpM^6#uodu$=PF2sByp>wEuJZ4@WG=s~>+PcVtzU*De|q)CMB>9l zf0oz(vO*43MPHj%n64tX{|l#i@Vcc3`}fpOwm4!h9`gQg{K}7kUpp^m-d!!EbV+EQ zMg6-olUcHwFD_?KzPIf~XP4Z90+wAz%-TO^^z?b=89lC$xzAfN`yo%oJRj$4$Gi34 z@u+h#?l%d)IQd%7(_KMNGX!I2&MxYS+J8S<(R2AM@rf(1*{~%fJzXiViHGrNcAbi% z%&V8nZ!1-{_H--uMC466W|=-Q&Hsn)vW?66`O!jZ#Mtvdnr&g$J%Menr8I_7x{}g4R={xzqfh!-=j-c z2|n7rN_^hJScMI;1v9q)cAMXnu;09~agq3gX1!A8jX$K#UrIe#eLB=}*_I8K`!=~g z@^MdZ+sjkyWnN^wW`#t`l!#5XaYdc(PD?)QlRn?F`U;El(sEf-hOGVB=lAn(pSDo5 zcy%$?0sA#S>{m_uI)B4Lor}@C1T-CXw%q(D%BHWe;qcSPA?g=4_1wF%%1Bp8L)mk) z>neui0^b!qD?Bf%m$IHeyJPws3%B;fLbg-49z3*MmTQ!j629eEn^^3*RomE$Te%EY zI{uAN`1|f=jOPn|hjsTAO-*9Fl6Gc~3D>aXGz%5VSQ-lUUSyQVoRaPRUL zMw8>RXY93pw7RaUdzD7dx*e6q4>>0~eV1P-&F45Hbctxz^ zd{yP>PmYInTn^)^mwS9 z^$hjYn>*%dZ1&r|OR&uLy2UNIxM@{TZ*fgVmh}eE|t8coio2f?Q)%sTmN(=mEb)->c`3> z@0%}Y&{Ml;A}vZ?%j)!D)8BX&4zf0xXeEwx6@@D=ZZjA?R@4t*0c*ks1A zTj0}br>eSLJnM2Q=I+{kGjh+#UM7b3?_Tu?te1AtiDrsUmRK?U(1e(2W)6}pe>C0N z(vz>4vNaulplMq;^V`?S=Vm+0{_Of!C8oePx!G=dj^&o$Z!MSqzMGdGT{7|Fqy^`K zCmN;QRoion|2@}49p_80KN|*`M_ydX7xHPsChwguW-VR*`q~-2^*Rlz{;{kLFaI7| ztNL}$x9{_fIqTxQ+QRn8?^89O`0RRbXsrC?4wo&nk91e~L~q{u?DKsq;mG+PgHO%6 za5}udUhPw|SMReuq6;ke{BuAlQ)A#oZN}bsKeeowP*{s`wOU+7EK#e2DIUWRR5Ga<8j4=Z88zBIRsDatPksto*3iHX>sAH`%2y=Tb#5E(%#vvRW9Isr<_ z=%~#i^7D<$n#7hfw=YPq&o5Xxzxi&!Gw$^qOFp_CygjwPqQB_O?2vg$Z0~liuhE%Z z{aR$|hPV8JwU@FYXXV*Q8U;w*YAo4lBxo|ZWOBk)->mH#vjtR2!)kUNdGy@p%(Fu| zORhZHYq#TdYz6zJ>5A9clIzzbUHFxrlEC?~(dq4rzwpTxIQ#w8haL&C z2bQ1yAr|+~?;_jpUhB)-ChbVIwtkpnvh6%?>H)PQRktKr-$~o_c->fac|G6Dm_@$R zO)HHzl})_se_P|#xeAfArB&CrO?orUuI12a{e>^h{y04-TJn*-!XkVaToa3@hr0Jd{ zccy)sQtZ7SE2A=f9=LqSTJ1eANA-bU-LGceuT{x?o+)@6++;jU*;){~}%S z+PL0nTZhPTzDK#e*7KzPrM5)s|6P+-Q8w`)>*nlxk<(xA)j#1mOUE%e`qj6%vZ_rw zUuR4^wOV7MMYrS@=^r=u)ZCe^DZ0Kw^PT+MyvaxW=3U)$Y0Ag#9))+;J&4n-{e9;5 zi8C5We$TId*J51j&o;xCj_ZXUDx+(q~itT?{-%k9+LU;18M^m0DT{mS!s&kmnU$9yYmKS)kDpDST_Q~1j} zJ)X|Rb!{&!q)mCtdDirATzYqFn$+gU6`OQj7R`52v0nIXp2Kp(Bh`HU+voVt-BxF# zb*=K@o?VxXI`8H0I%hpkY@TXo>q~p1Y5hAj+v0y4>^^!~?01`0{{t!a?CTmm3QMkg zuC?+1z2KZtc8vEvw&(r|z5YTZ2`|}UGA2jKG6TWfC`KPv?;?IQs zABVpc_Iy~&$F9{GJpc2I$xl+UT>NqhdRH#l>Q=z>p6|_$>DP^-pLtwhd=_@&aR0)b ziL>^F`Is%f`bb<%|Iy0e#XBVr8C%)Z230fpJuNr=d9$bUR)nHKLG+0Y?awc6f34{_ zCH3eR-(Pi86K?9ot({o-r7JPo^<&zlg2~60JKS9H*6Vb~;gZ9_4DY`#{rB%w=9z<9 zo+p!8ZW#9;oy27!t|QX%$n{)^bF-t~su{);@}#yLxwKC&j;HjZY;cGdBLsMg>KASdwH&@Kr_ofa#%YGEvTuXEQlm1@dl8@Lwx!OaYmodJ-mQ%D)%a`@mn&;Lp zc^=kt+?MdHS#gy6r6r^P@vpBWDr8t$CAOSqiBY|KQFq_6gJLIFeRTNtB)GzPt46}? zU99Irmp*COGrex(#z{g7|6i<#c`�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%0Aq&{Ie&DgDbK4+L9$((vRQ1uxnG|+KA)My0IBr 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 z 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 z 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

    Lod{5h^S6{;ubW%W0CKHhotuXP`ThVIsDFFE`U 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 ^R$^ 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͗$ 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

  1. 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. + */ + +#include +#include + +#include "../library.h" +#include "../lzip.h" +#include "crc32.h" +#include "gtest/gtest.h" + +#define EXPECTED_CRC32 0xc64059c0 + +static const uint8_t* buffer; + +class lzipFixture : public ::testing::Test +{ + public: + lzipFixture() + { + // initialization; + // can also be done in SetUp() + } + + protected: + void SetUp() + { + char path[PATH_MAX]; + char filename[PATH_MAX]; + + getcwd(path, PATH_MAX); + snprintf(filename, PATH_MAX, "%s/data/lzip.lz", path); + + FILE* file = fopen(filename, "rb"); + buffer = (const uint8_t*)malloc(1062874); + fread((void*)buffer, 1, 1062874, file); + fclose(file); + } + + void TearDown() { free((void*)buffer); } + + ~lzipFixture() + { + // resources cleanup, no exceptions allowed + } + + // shared user data +}; + +TEST_F(lzipFixture, lzip) +{ + auto* outBuf = (uint8_t*)malloc(1048576); + + auto decoded = lzip_decode_buffer(outBuf, 1048576, buffer, 1062874); + + EXPECT_EQ(decoded, 1048576); + + auto crc = crc32_data(outBuf, 1048576); + + free(outBuf); + + EXPECT_EQ(crc, EXPECTED_CRC32); +}