summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-15 09:41:34 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-15 09:41:34 +0000
commitcf178685aca107aa37c748de11da01562e78c46c (patch)
tree84d60b39c1744edcbdd4dbfc5026583914432dba /doc
parentAdding upstream version 5.6.1+really5.4.5. (diff)
downloadxz-utils-cf178685aca107aa37c748de11da01562e78c46c.tar.xz
xz-utils-cf178685aca107aa37c748de11da01562e78c46c.zip
Adding upstream version 5.6.2.upstream/5.6.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'doc')
-rw-r--r--doc/api/annotated.html68
-rw-r--r--doc/api/base_8h.html580
-rw-r--r--doc/api/bc_s.pngbin675 -> 0 bytes
-rw-r--r--doc/api/bc_sd.pngbin604 -> 0 bytes
-rw-r--r--doc/api/bcj_8h.html105
-rw-r--r--doc/api/block_8h.html758
-rw-r--r--doc/api/check_8h.html340
-rw-r--r--doc/api/classes.html60
-rw-r--r--doc/api/closed.pngbin132 -> 0 bytes
-rw-r--r--doc/api/container_8h.html1279
-rw-r--r--doc/api/delta_8h.html132
-rw-r--r--doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html104
-rw-r--r--doc/api/doc.svg12
-rw-r--r--doc/api/docd.svg12
-rw-r--r--doc/api/doxygen.css2017
-rw-r--r--doc/api/doxygen.svg28
-rw-r--r--doc/api/files.html74
-rw-r--r--doc/api/filter_8h.html1342
-rw-r--r--doc/api/folderclosed.svg11
-rw-r--r--doc/api/folderclosedd.svg11
-rw-r--r--doc/api/folderopen.svg17
-rw-r--r--doc/api/folderopend.svg12
-rw-r--r--doc/api/functions.html210
-rw-r--r--doc/api/functions_vars.html210
-rw-r--r--doc/api/globals.html272
-rw-r--r--doc/api/globals_defs.html119
-rw-r--r--doc/api/globals_enum.html71
-rw-r--r--doc/api/globals_eval.html103
-rw-r--r--doc/api/globals_func.html177
-rw-r--r--doc/api/globals_type.html68
-rw-r--r--doc/api/hardware_8h.html123
-rw-r--r--doc/api/index.html53
-rw-r--r--doc/api/index_8h.html1268
-rw-r--r--doc/api/index__hash_8h.html311
-rw-r--r--doc/api/lzma12_8h.html436
-rw-r--r--doc/api/lzma_8h.html109
-rw-r--r--doc/api/nav_f.pngbin167 -> 0 bytes
-rw-r--r--doc/api/nav_fd.pngbin144 -> 0 bytes
-rw-r--r--doc/api/nav_g.pngbin95 -> 0 bytes
-rw-r--r--doc/api/nav_h.pngbin97 -> 0 bytes
-rw-r--r--doc/api/nav_hd.pngbin104 -> 0 bytes
-rw-r--r--doc/api/open.pngbin121 -> 0 bytes
-rw-r--r--doc/api/splitbar.pngbin309 -> 0 bytes
-rw-r--r--doc/api/splitbard.pngbin278 -> 0 bytes
-rw-r--r--doc/api/stream__flags_8h.html348
-rw-r--r--doc/api/structlzma__allocator.html153
-rw-r--r--doc/api/structlzma__block.html347
-rw-r--r--doc/api/structlzma__filter.html114
-rw-r--r--doc/api/structlzma__index__iter.html407
-rw-r--r--doc/api/structlzma__mt.html256
-rw-r--r--doc/api/structlzma__options__bcj.html95
-rw-r--r--doc/api/structlzma__options__delta.html113
-rw-r--r--doc/api/structlzma__options__lzma.html363
-rw-r--r--doc/api/structlzma__stream.html251
-rw-r--r--doc/api/structlzma__stream__flags.html134
-rw-r--r--doc/api/sync_off.pngbin857 -> 0 bytes
-rw-r--r--doc/api/sync_on.pngbin851 -> 0 bytes
-rw-r--r--doc/api/tab_a.pngbin135 -> 0 bytes
-rw-r--r--doc/api/tab_ad.pngbin133 -> 0 bytes
-rw-r--r--doc/api/tab_b.pngbin178 -> 0 bytes
-rw-r--r--doc/api/tab_bd.pngbin157 -> 0 bytes
-rw-r--r--doc/api/tab_h.pngbin179 -> 0 bytes
-rw-r--r--doc/api/tab_hd.pngbin168 -> 0 bytes
-rw-r--r--doc/api/tab_s.pngbin208 -> 0 bytes
-rw-r--r--doc/api/tab_sd.pngbin171 -> 0 bytes
-rw-r--r--doc/api/tabs.css62
-rw-r--r--doc/api/version_8h.html239
-rw-r--r--doc/api/vli_8h.html323
-rw-r--r--doc/examples/01_compress_easy.c7
-rw-r--r--doc/examples/02_decompress.c5
-rw-r--r--doc/examples/03_compress_custom.c5
-rw-r--r--doc/examples/04_compress_easy_mt.c5
-rw-r--r--doc/examples/11_file_info.c205
-rw-r--r--doc/examples/Makefile6
-rw-r--r--doc/examples_old/xz_pipe_comp.c127
-rw-r--r--doc/examples_old/xz_pipe_decomp.c123
-rw-r--r--doc/lzma-file-format.txt16
-rw-r--r--doc/man/pdf-a4/lzmainfo-a4.pdfbin16384 -> 0 bytes
-rw-r--r--doc/man/pdf-a4/xz-a4.pdfbin114746 -> 0 bytes
-rw-r--r--doc/man/pdf-a4/xzdec-a4.pdfbin19978 -> 0 bytes
-rw-r--r--doc/man/pdf-a4/xzdiff-a4.pdfbin17200 -> 0 bytes
-rw-r--r--doc/man/pdf-a4/xzgrep-a4.pdfbin18338 -> 0 bytes
-rw-r--r--doc/man/pdf-a4/xzless-a4.pdfbin15029 -> 0 bytes
-rw-r--r--doc/man/pdf-a4/xzmore-a4.pdfbin15203 -> 0 bytes
-rw-r--r--doc/man/pdf-letter/lzmainfo-letter.pdfbin16394 -> 0 bytes
-rw-r--r--doc/man/pdf-letter/xz-letter.pdfbin115882 -> 0 bytes
-rw-r--r--doc/man/pdf-letter/xzdec-letter.pdfbin19970 -> 0 bytes
-rw-r--r--doc/man/pdf-letter/xzdiff-letter.pdfbin17227 -> 0 bytes
-rw-r--r--doc/man/pdf-letter/xzgrep-letter.pdfbin18322 -> 0 bytes
-rw-r--r--doc/man/pdf-letter/xzless-letter.pdfbin15022 -> 0 bytes
-rw-r--r--doc/man/pdf-letter/xzmore-letter.pdfbin15159 -> 0 bytes
-rw-r--r--doc/man/txt/lzmainfo.txt10
-rw-r--r--doc/man/txt/xz.txt752
-rw-r--r--doc/man/txt/xzdec.txt12
-rw-r--r--doc/man/txt/xzdiff.txt49
-rw-r--r--doc/man/txt/xzgrep.txt66
-rw-r--r--doc/man/txt/xzless.txt13
-rw-r--r--doc/man/txt/xzmore.txt31
-rw-r--r--doc/xz-file-format.txt33
99 files changed, 759 insertions, 14403 deletions
diff --git a/doc/api/annotated.html b/doc/api/annotated.html
deleted file mode 100644
index 4016c49..0000000
--- a/doc/api/annotated.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): Data Structures</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle"><div class="title">Data Structures</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
-<table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__allocator.html" target="_self">lzma_allocator</a></td><td class="desc">Custom functions for memory handling </td></tr>
-<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__block.html" target="_self">lzma_block</a></td><td class="desc">Options for the Block and Block Header encoders and decoders </td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__filter.html" target="_self">lzma_filter</a></td><td class="desc">Filter options </td></tr>
-<tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__index__iter.html" target="_self">lzma_index_iter</a></td><td class="desc">Iterator to get information about Blocks and Streams </td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__mt.html" target="_self">lzma_mt</a></td><td class="desc">Multithreading options </td></tr>
-<tr id="row_5_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__options__bcj.html" target="_self">lzma_options_bcj</a></td><td class="desc">Options for BCJ filters </td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__options__delta.html" target="_self">lzma_options_delta</a></td><td class="desc">Options for the Delta filter </td></tr>
-<tr id="row_7_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__options__lzma.html" target="_self">lzma_options_lzma</a></td><td class="desc">Options specific to the LZMA1 and LZMA2 filters </td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__stream.html" target="_self">lzma_stream</a></td><td class="desc">Passing data to and from liblzma </td></tr>
-<tr id="row_9_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__stream__flags.html" target="_self">lzma_stream_flags</a></td><td class="desc">Options for encoding/decoding Stream Header and Stream Footer </td></tr>
-</table>
-</div><!-- directory -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/base_8h.html b/doc/api/base_8h.html
deleted file mode 100644
index 417ccef..0000000
--- a/doc/api/base_8h.html
+++ /dev/null
@@ -1,580 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/base.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> &#124;
-<a href="#define-members">Macros</a> &#124;
-<a href="#typedef-members">Typedefs</a> &#124;
-<a href="#enum-members">Enumerations</a> &#124;
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle"><div class="title">base.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Data types and functions used in many places in liblzma API.
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__allocator.html">lzma_allocator</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Custom functions for memory handling. <a href="structlzma__allocator.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html">lzma_stream</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Passing data to and from liblzma. <a href="structlzma__stream.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:af31f0c8b6f14359cd082b9559f7f3e01"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#af31f0c8b6f14359cd082b9559f7f3e01">LZMA_STREAM_INIT</a></td></tr>
-<tr class="memdesc:af31f0c8b6f14359cd082b9559f7f3e01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization for <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>. <br /></td></tr>
-<tr class="separator:af31f0c8b6f14359cd082b9559f7f3e01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:abbc819c74b484c846825ae1388a50a59"><td class="memItemLeft" align="right" valign="top">typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a></td></tr>
-<tr class="memdesc:abbc819c74b484c846825ae1388a50a59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean. <br /></td></tr>
-<tr class="separator:abbc819c74b484c846825ae1388a50a59"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab1a60127c640135687a5bcc232cec906"><td class="memItemLeft" align="right" valign="top">typedef struct lzma_internal_s&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#ab1a60127c640135687a5bcc232cec906">lzma_internal</a></td></tr>
-<tr class="memdesc:ab1a60127c640135687a5bcc232cec906"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal data structure. <br /></td></tr>
-<tr class="separator:ab1a60127c640135687a5bcc232cec906"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:a05805a07754b2aa22f7d443eb7ece41a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#a05805a07754b2aa22f7d443eb7ece41a">lzma_reserved_enum</a> { <b>LZMA_RESERVED_ENUM</b> = 0
- }</td></tr>
-<tr class="memdesc:a05805a07754b2aa22f7d443eb7ece41a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of reserved enumeration variable in structures. <a href="base_8h.html#a05805a07754b2aa22f7d443eb7ece41a">More...</a><br /></td></tr>
-<tr class="separator:a05805a07754b2aa22f7d443eb7ece41a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8494e0457e1463d6d2b6836018d87b6e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> { <br />
-&#160;&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eac003781ccb81bbd5578e29abed8a8cfe">LZMA_OK</a> = 0
-, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea91ecc6fab14c13ad36224afbcb4e55c4">LZMA_STREAM_END</a> = 1
-, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa720d30092d504d7d138a320db1905ef">LZMA_NO_CHECK</a> = 2
-, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea989f393a1772d85bf545a9da48fc7ac2">LZMA_UNSUPPORTED_CHECK</a> = 3
-, <br />
-&#160;&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa5b648c18da0f584f621cfdf7fef1bdb">LZMA_GET_CHECK</a> = 4
-, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea567e1464feca03900a5425fb45b2f5b6">LZMA_MEM_ERROR</a> = 5
-, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa1d705effe6026f32c0fe9756b6326bc">LZMA_MEMLIMIT_ERROR</a> = 6
-, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea63b7a58949854eb9307f8e351358d56c">LZMA_FORMAT_ERROR</a> = 7
-, <br />
-&#160;&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa9ff6dfee36b7aba4fae60706d37425f">LZMA_OPTIONS_ERROR</a> = 8
-, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea3aa72729a844790e39b4e1101a731dfb">LZMA_DATA_ERROR</a> = 9
-, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea9ca0ecb62459bdc84d6af47d16b23ae5">LZMA_BUF_ERROR</a> = 10
-, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea2dac8d451cb38da8550653d0d7be4ec2">LZMA_PROG_ERROR</a> = 11
-, <br />
-&#160;&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea6cf28e5345851f13bd798a4eab8cc939">LZMA_SEEK_NEEDED</a> = 12
-, <b>LZMA_RET_INTERNAL1</b> = 101
-, <b>LZMA_RET_INTERNAL2</b> = 102
-, <b>LZMA_RET_INTERNAL3</b> = 103
-, <br />
-&#160;&#160;<b>LZMA_RET_INTERNAL4</b> = 104
-, <b>LZMA_RET_INTERNAL5</b> = 105
-, <b>LZMA_RET_INTERNAL6</b> = 106
-, <b>LZMA_RET_INTERNAL7</b> = 107
-, <br />
-&#160;&#160;<b>LZMA_RET_INTERNAL8</b> = 108
-<br />
- }</td></tr>
-<tr class="memdesc:a8494e0457e1463d6d2b6836018d87b6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return values used by several functions in liblzma. <a href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">More...</a><br /></td></tr>
-<tr class="separator:a8494e0457e1463d6d2b6836018d87b6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa92efcbf3cecfcac79c81fc645fce77e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">lzma_action</a> { <br />
-&#160;&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea868472b76492afcaef54020a481890b1">LZMA_RUN</a> = 0
-, <a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea14d75152afcda85d215e877fdd9c4170">LZMA_SYNC_FLUSH</a> = 1
-, <a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77eaab46f0d7c721f1ec377e9575eab2586f">LZMA_FULL_FLUSH</a> = 2
-, <a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77eaf7bf60e3555a4d10ffad3ecc3d2e01f1">LZMA_FULL_BARRIER</a> = 4
-, <br />
-&#160;&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea7d24fb3c6c144d13bcb091195b8ebec1">LZMA_FINISH</a> = 3
-<br />
- }</td></tr>
-<tr class="memdesc:aa92efcbf3cecfcac79c81fc645fce77e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The `action' argument for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> <a href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">More...</a><br /></td></tr>
-<tr class="separator:aa92efcbf3cecfcac79c81fc645fce77e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a28cc09bc422d5ba1e0187c9f2af5d957"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957">lzma_code</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, <a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">lzma_action</a> action) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a28cc09bc422d5ba1e0187c9f2af5d957"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode or decode data. <br /></td></tr>
-<tr class="separator:a28cc09bc422d5ba1e0187c9f2af5d957"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a854ff37464ae1225febf14db1af43308"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308">lzma_end</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm) lzma_nothrow</td></tr>
-<tr class="memdesc:a854ff37464ae1225febf14db1af43308"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free memory allocated for the coder data structures. <br /></td></tr>
-<tr class="separator:a854ff37464ae1225febf14db1af43308"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab6447cd68eeecbd6b88f21daeb8ce751"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#ab6447cd68eeecbd6b88f21daeb8ce751">lzma_get_progress</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow</td></tr>
-<tr class="memdesc:ab6447cd68eeecbd6b88f21daeb8ce751"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get progress information. <br /></td></tr>
-<tr class="separator:ab6447cd68eeecbd6b88f21daeb8ce751"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a418b210cf206782a73cd9de7dc27f670"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#a418b210cf206782a73cd9de7dc27f670">lzma_memusage</a> (const <a class="el" href="structlzma__stream.html">lzma_stream</a> *strm) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a418b210cf206782a73cd9de7dc27f670"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the memory usage of decoder filter chain. <br /></td></tr>
-<tr class="separator:a418b210cf206782a73cd9de7dc27f670"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac871bc2ead5d482c6d6b3d51bfec365c"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#ac871bc2ead5d482c6d6b3d51bfec365c">lzma_memlimit_get</a> (const <a class="el" href="structlzma__stream.html">lzma_stream</a> *strm) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:ac871bc2ead5d482c6d6b3d51bfec365c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current memory usage limit. <br /></td></tr>
-<tr class="separator:ac871bc2ead5d482c6d6b3d51bfec365c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afc49d4cf75b73128a167df3407505f7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#afc49d4cf75b73128a167df3407505f7b">lzma_memlimit_set</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t memlimit) lzma_nothrow</td></tr>
-<tr class="memdesc:afc49d4cf75b73128a167df3407505f7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the memory usage limit. <br /></td></tr>
-<tr class="separator:afc49d4cf75b73128a167df3407505f7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Data types and functions used in many places in liblzma API. </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="af31f0c8b6f14359cd082b9559f7f3e01" name="af31f0c8b6f14359cd082b9559f7f3e01"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af31f0c8b6f14359cd082b9559f7f3e01">&#9670;&#160;</a></span>LZMA_STREAM_INIT</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_STREAM_INIT</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"> { NULL, 0, 0, NULL, 0, 0, NULL, NULL, \</div>
-<div class="line"> NULL, NULL, NULL, NULL, 0, 0, 0, 0, \</div>
-<div class="line"> LZMA_RESERVED_ENUM, LZMA_RESERVED_ENUM }</div>
-</div><!-- fragment -->
-<p>Initialization for <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>. </p>
-<p>When you declare an instance of <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>, you can immediately initialize it so that initialization functions know that no memory has been allocated yet:</p>
-<p><a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> strm = LZMA_STREAM_INIT;</p>
-<p>If you need to initialize a dynamically allocated <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>, you can use memset(strm_pointer, 0, sizeof(lzma_stream)). Strictly speaking, this violates the C standard since NULL may have different internal representation than zero, but it should be portable enough in practice. Anyway, for maximum portability, you can use something like this:</p>
-<p><a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> tmp = LZMA_STREAM_INIT; *strm = tmp; </p>
-
-</div>
-</div>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a id="abbc819c74b484c846825ae1388a50a59" name="abbc819c74b484c846825ae1388a50a59"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abbc819c74b484c846825ae1388a50a59">&#9670;&#160;</a></span>lzma_bool</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef unsigned char <a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Boolean. </p>
-<p>This is here because C89 doesn't have stdbool.h. To set a value for variables having type lzma_bool, you can use</p><ul>
-<li>C99's `true' and `false' from stdbool.h;</li>
-<li>C++'s internal `true' and `false'; or</li>
-<li>integers one (true) and zero (false). </li>
-</ul>
-
-</div>
-</div>
-<a id="ab1a60127c640135687a5bcc232cec906" name="ab1a60127c640135687a5bcc232cec906"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab1a60127c640135687a5bcc232cec906">&#9670;&#160;</a></span>lzma_internal</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef struct lzma_internal_s <a class="el" href="base_8h.html#ab1a60127c640135687a5bcc232cec906">lzma_internal</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Internal data structure. </p>
-<p>The contents of this structure is not visible outside the library. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a id="a05805a07754b2aa22f7d443eb7ece41a" name="a05805a07754b2aa22f7d443eb7ece41a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a05805a07754b2aa22f7d443eb7ece41a">&#9670;&#160;</a></span>lzma_reserved_enum</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="base_8h.html#a05805a07754b2aa22f7d443eb7ece41a">lzma_reserved_enum</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Type of reserved enumeration variable in structures. </p>
-<p>To avoid breaking library ABI when new features are added, several structures contain extra variables that may be used in future. Since sizeof(enum) can be different than sizeof(int), and sizeof(enum) may even vary depending on the range of enumeration constants, we specify a separate type to be used for reserved enumeration variables. All enumeration constants in liblzma API will be non-negative and less than 128, which should guarantee that the ABI won't break even when new constants are added to existing enumerations. </p>
-
-</div>
-</div>
-<a id="a8494e0457e1463d6d2b6836018d87b6e" name="a8494e0457e1463d6d2b6836018d87b6e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8494e0457e1463d6d2b6836018d87b6e">&#9670;&#160;</a></span>lzma_ret</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return values used by several functions in liblzma. </p>
-<p>Check the descriptions of specific functions to find out which return values they can return. With some functions the return values may have more specific meanings than described here; those differences are described per-function basis. </p>
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6eac003781ccb81bbd5578e29abed8a8cfe" name="a8494e0457e1463d6d2b6836018d87b6eac003781ccb81bbd5578e29abed8a8cfe"></a>LZMA_OK&#160;</td><td class="fielddoc"><p>Operation completed successfully. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea91ecc6fab14c13ad36224afbcb4e55c4" name="a8494e0457e1463d6d2b6836018d87b6ea91ecc6fab14c13ad36224afbcb4e55c4"></a>LZMA_STREAM_END&#160;</td><td class="fielddoc"><p>End of stream was reached. </p>
-<p>In encoder, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, or LZMA_FINISH was finished. In decoder, this indicates that all the data was successfully decoded.</p>
-<p>In all cases, when LZMA_STREAM_END is returned, the last output bytes should be picked from strm-&gt;next_out. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6eaa720d30092d504d7d138a320db1905ef" name="a8494e0457e1463d6d2b6836018d87b6eaa720d30092d504d7d138a320db1905ef"></a>LZMA_NO_CHECK&#160;</td><td class="fielddoc"><p>Input stream has no integrity check. </p>
-<p>This return value can be returned only if the LZMA_TELL_NO_CHECK flag was used when initializing the decoder. LZMA_NO_CHECK is just a warning, and the decoding can be continued normally.</p>
-<p>It is possible to call <a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746" title="Get the type of the integrity check.">lzma_get_check()</a> immediately after lzma_code has returned LZMA_NO_CHECK. The result will naturally be LZMA_CHECK_NONE, but the possibility to call <a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746" title="Get the type of the integrity check.">lzma_get_check()</a> may be convenient in some applications. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea989f393a1772d85bf545a9da48fc7ac2" name="a8494e0457e1463d6d2b6836018d87b6ea989f393a1772d85bf545a9da48fc7ac2"></a>LZMA_UNSUPPORTED_CHECK&#160;</td><td class="fielddoc"><p>Cannot calculate the integrity check. </p>
-<p>The usage of this return value is different in encoders and decoders.</p>
-<p>Encoders can return this value only from the initialization function. If initialization fails with this value, the encoding cannot be done, because there's no way to produce output with the correct integrity check.</p>
-<p>Decoders can return this value only from <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> and only if the LZMA_TELL_UNSUPPORTED_CHECK flag was used when initializing the decoder. The decoding can still be continued normally even if the check type is unsupported, but naturally the check will not be validated, and possible errors may go undetected.</p>
-<p>With decoder, it is possible to call <a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746" title="Get the type of the integrity check.">lzma_get_check()</a> immediately after <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> has returned LZMA_UNSUPPORTED_CHECK. This way it is possible to find out what the unsupported Check ID was. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6eaa5b648c18da0f584f621cfdf7fef1bdb" name="a8494e0457e1463d6d2b6836018d87b6eaa5b648c18da0f584f621cfdf7fef1bdb"></a>LZMA_GET_CHECK&#160;</td><td class="fielddoc"><p>Integrity check type is now available. </p>
-<p>This value can be returned only by the <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> function and only if the decoder was initialized with the LZMA_TELL_ANY_CHECK flag. LZMA_GET_CHECK tells the application that it may now call <a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746" title="Get the type of the integrity check.">lzma_get_check()</a> to find out the Check ID. This can be used, for example, to implement a decoder that accepts only files that have strong enough integrity check. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea567e1464feca03900a5425fb45b2f5b6" name="a8494e0457e1463d6d2b6836018d87b6ea567e1464feca03900a5425fb45b2f5b6"></a>LZMA_MEM_ERROR&#160;</td><td class="fielddoc"><p>Cannot allocate memory. </p>
-<p>Memory allocation failed, or the size of the allocation would be greater than SIZE_MAX.</p>
-<p>Due to internal implementation reasons, the coding cannot be continued even if more memory were made available after LZMA_MEM_ERROR. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6eaa1d705effe6026f32c0fe9756b6326bc" name="a8494e0457e1463d6d2b6836018d87b6eaa1d705effe6026f32c0fe9756b6326bc"></a>LZMA_MEMLIMIT_ERROR&#160;</td><td class="fielddoc"><p>Memory usage limit was reached. </p>
-<p>Decoder would need more memory than allowed by the specified memory usage limit. To continue decoding, the memory usage limit has to be increased with <a class="el" href="base_8h.html#afc49d4cf75b73128a167df3407505f7b" title="Set the memory usage limit.">lzma_memlimit_set()</a>.</p>
-<p>liblzma 5.2.6 and earlier had a bug in single-threaded .xz decoder (<a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0" title="Initialize .xz Stream decoder.">lzma_stream_decoder()</a>) which made it impossible to continue decoding after LZMA_MEMLIMIT_ERROR even if the limit was increased using <a class="el" href="base_8h.html#afc49d4cf75b73128a167df3407505f7b" title="Set the memory usage limit.">lzma_memlimit_set()</a>. Other decoders worked correctly. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea63b7a58949854eb9307f8e351358d56c" name="a8494e0457e1463d6d2b6836018d87b6ea63b7a58949854eb9307f8e351358d56c"></a>LZMA_FORMAT_ERROR&#160;</td><td class="fielddoc"><p>File format not recognized. </p>
-<p>The decoder did not recognize the input as supported file format. This error can occur, for example, when trying to decode .lzma format file with lzma_stream_decoder, because lzma_stream_decoder accepts only the .xz format. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6eaa9ff6dfee36b7aba4fae60706d37425f" name="a8494e0457e1463d6d2b6836018d87b6eaa9ff6dfee36b7aba4fae60706d37425f"></a>LZMA_OPTIONS_ERROR&#160;</td><td class="fielddoc"><p>Invalid or unsupported options. </p>
-<p>Invalid or unsupported options, for example</p><ul>
-<li>unsupported filter(s) or filter options; or</li>
-<li>reserved bits set in headers (decoder only).</li>
-</ul>
-<p>Rebuilding liblzma with more features enabled, or upgrading to a newer version of liblzma may help. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea3aa72729a844790e39b4e1101a731dfb" name="a8494e0457e1463d6d2b6836018d87b6ea3aa72729a844790e39b4e1101a731dfb"></a>LZMA_DATA_ERROR&#160;</td><td class="fielddoc"><p>Data is corrupt. </p>
-<p>The usage of this return value is different in encoders and decoders. In both encoder and decoder, the coding cannot continue after this error.</p>
-<p>Encoders return this if size limits of the target file format would be exceeded. These limits are huge, thus getting this error from an encoder is mostly theoretical. For example, the maximum compressed and uncompressed size of a .xz Stream is roughly 8 EiB (2^63 bytes).</p>
-<p>Decoders return this error if the input data is corrupt. This can mean, for example, invalid CRC32 in headers or invalid check of uncompressed data. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea9ca0ecb62459bdc84d6af47d16b23ae5" name="a8494e0457e1463d6d2b6836018d87b6ea9ca0ecb62459bdc84d6af47d16b23ae5"></a>LZMA_BUF_ERROR&#160;</td><td class="fielddoc"><p>No progress is possible. </p>
-<p>This error code is returned when the coder cannot consume any new input and produce any new output. The most common reason for this error is that the input stream being decoded is truncated or corrupt.</p>
-<p>This error is not fatal. Coding can be continued normally by providing more input and/or more output space, if possible.</p>
-<p>Typically the first call to <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> that can do no progress returns LZMA_OK instead of LZMA_BUF_ERROR. Only the second consecutive call doing no progress will return LZMA_BUF_ERROR. This is intentional.</p>
-<p>With zlib, Z_BUF_ERROR may be returned even if the application is doing nothing wrong, so apps will need to handle Z_BUF_ERROR specially. The above hack guarantees that liblzma never returns LZMA_BUF_ERROR to properly written applications unless the input file is truncated or corrupt. This should simplify the applications a little. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea2dac8d451cb38da8550653d0d7be4ec2" name="a8494e0457e1463d6d2b6836018d87b6ea2dac8d451cb38da8550653d0d7be4ec2"></a>LZMA_PROG_ERROR&#160;</td><td class="fielddoc"><p>Programming error. </p>
-<p>This indicates that the arguments given to the function are invalid or the internal state of the decoder is corrupt.</p><ul>
-<li>Function arguments are invalid or the structures pointed by the argument pointers are invalid e.g. if strm-&gt;next_out has been set to NULL and strm-&gt;avail_out &gt; 0 when calling <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>.</li>
-<li>lzma_* functions have been called in wrong order e.g. <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> was called right after <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a>.</li>
-<li>If errors occur randomly, the reason might be flaky hardware.</li>
-</ul>
-<p>If you think that your code is correct, this error code can be a sign of a bug in liblzma. See the documentation how to report bugs. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea6cf28e5345851f13bd798a4eab8cc939" name="a8494e0457e1463d6d2b6836018d87b6ea6cf28e5345851f13bd798a4eab8cc939"></a>LZMA_SEEK_NEEDED&#160;</td><td class="fielddoc"><p>Request to change the input file position. </p>
-<p>Some coders can do random access in the input file. The initialization functions of these coders take the file size as an argument. No other coders can return LZMA_SEEK_NEEDED.</p>
-<p>When this value is returned, the application must seek to the file position given in <a class="el" href="structlzma__stream.html#af7c43a61f3dfeb0b9c8487b7f275054e" title="New seek input position for LZMA_SEEK_NEEDED.">lzma_stream.seek_pos</a>. This value is guaranteed to never exceed the file size that was specified at the coder initialization.</p>
-<p>After seeking the application should read new input and pass it normally via <a class="el" href="structlzma__stream.html#a72fdc738c793f07a5c29715aa57802cf">lzma_stream.next_in</a> and .avail_in. </p>
-</td></tr>
-</table>
-
-</div>
-</div>
-<a id="aa92efcbf3cecfcac79c81fc645fce77e" name="aa92efcbf3cecfcac79c81fc645fce77e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa92efcbf3cecfcac79c81fc645fce77e">&#9670;&#160;</a></span>lzma_action</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">lzma_action</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>The `action' argument for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> </p>
-<p>After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER, or LZMA_FINISH, the same `action' must be used until <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> returns LZMA_STREAM_END. Also, the amount of input (that is, strm-&gt;avail_in) must not be modified by the application until <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> returns LZMA_STREAM_END. Changing the `action' or modifying the amount of input will make <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> return LZMA_PROG_ERROR. </p>
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa92efcbf3cecfcac79c81fc645fce77ea868472b76492afcaef54020a481890b1" name="aa92efcbf3cecfcac79c81fc645fce77ea868472b76492afcaef54020a481890b1"></a>LZMA_RUN&#160;</td><td class="fielddoc"><p>Continue coding. </p>
-<p>Encoder: Encode as much input as possible. Some internal buffering will probably be done (depends on the filter chain in use), which causes latency: the input used won't usually be decodeable from the output of the same <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> call.</p>
-<p>Decoder: Decode as much input as possible and produce as much output as possible. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="aa92efcbf3cecfcac79c81fc645fce77ea14d75152afcda85d215e877fdd9c4170" name="aa92efcbf3cecfcac79c81fc645fce77ea14d75152afcda85d215e877fdd9c4170"></a>LZMA_SYNC_FLUSH&#160;</td><td class="fielddoc"><p>Make all the input available at output. </p>
-<p>Normally the encoder introduces some latency. LZMA_SYNC_FLUSH forces all the buffered data to be available at output without resetting the internal state of the encoder. This way it is possible to use compressed stream for example for communication over network.</p>
-<p>Only some filters support LZMA_SYNC_FLUSH. Trying to use LZMA_SYNC_FLUSH with filters that don't support it will make <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> return LZMA_OPTIONS_ERROR. For example, LZMA1 doesn't support LZMA_SYNC_FLUSH but LZMA2 does.</p>
-<p>Using LZMA_SYNC_FLUSH very often can dramatically reduce the compression ratio. With some filters (for example, LZMA2), fine-tuning the compression options may help mitigate this problem significantly (for example, match finder with LZMA2).</p>
-<p>Decoders don't support LZMA_SYNC_FLUSH. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="aa92efcbf3cecfcac79c81fc645fce77eaab46f0d7c721f1ec377e9575eab2586f" name="aa92efcbf3cecfcac79c81fc645fce77eaab46f0d7c721f1ec377e9575eab2586f"></a>LZMA_FULL_FLUSH&#160;</td><td class="fielddoc"><p>Finish encoding of the current Block. </p>
-<p>All the input data going to the current Block must have been given to the encoder (the last bytes can still be pending in *next_in). Call <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> with LZMA_FULL_FLUSH until it returns LZMA_STREAM_END. Then continue normally with LZMA_RUN or finish the Stream with LZMA_FINISH.</p>
-<p>This action is currently supported only by Stream encoder and easy encoder (which uses Stream encoder). If there is no unfinished Block, no empty Block is created. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="aa92efcbf3cecfcac79c81fc645fce77eaf7bf60e3555a4d10ffad3ecc3d2e01f1" name="aa92efcbf3cecfcac79c81fc645fce77eaf7bf60e3555a4d10ffad3ecc3d2e01f1"></a>LZMA_FULL_BARRIER&#160;</td><td class="fielddoc"><p>Finish encoding of the current Block. </p>
-<p>This is like LZMA_FULL_FLUSH except that this doesn't necessarily wait until all the input has been made available via the output buffer. That is, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> might return LZMA_STREAM_END as soon as all the input has been consumed (avail_in == 0).</p>
-<p>LZMA_FULL_BARRIER is useful with a threaded encoder if one wants to split the .xz Stream into Blocks at specific offsets but doesn't care if the output isn't flushed immediately. Using LZMA_FULL_BARRIER allows keeping the threads busy while LZMA_FULL_FLUSH would make <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> wait until all the threads have finished until more data could be passed to the encoder.</p>
-<p>With a <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> initialized with the single-threaded <a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52" title="Initialize .xz Stream encoder using a custom filter chain.">lzma_stream_encoder()</a> or <a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4" title="Initialize .xz Stream encoder using a preset number.">lzma_easy_encoder()</a>, LZMA_FULL_BARRIER is an alias for LZMA_FULL_FLUSH. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="aa92efcbf3cecfcac79c81fc645fce77ea7d24fb3c6c144d13bcb091195b8ebec1" name="aa92efcbf3cecfcac79c81fc645fce77ea7d24fb3c6c144d13bcb091195b8ebec1"></a>LZMA_FINISH&#160;</td><td class="fielddoc"><p>Finish the coding operation. </p>
-<p>All the input data must have been given to the encoder (the last bytes can still be pending in next_in). Call <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> with LZMA_FINISH until it returns LZMA_STREAM_END. Once LZMA_FINISH has been used, the amount of input must no longer be changed by the application.</p>
-<p>When decoding, using LZMA_FINISH is optional unless the LZMA_CONCATENATED flag was used when the decoder was initialized. When LZMA_CONCATENATED was not used, the only effect of LZMA_FINISH is that the amount of input must not be changed just like in the encoder. </p>
-</td></tr>
-</table>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="a28cc09bc422d5ba1e0187c9f2af5d957" name="a28cc09bc422d5ba1e0187c9f2af5d957"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a28cc09bc422d5ba1e0187c9f2af5d957">&#9670;&#160;</a></span>lzma_code()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_code </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">lzma_action</a>&#160;</td>
- <td class="paramname"><em>action</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Encode or decode data. </p>
-<p>Once the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> has been successfully initialized (e.g. with <a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52" title="Initialize .xz Stream encoder using a custom filter chain.">lzma_stream_encoder()</a>), the actual encoding or decoding is done using this function. The application has to update strm-&gt;next_in, strm-&gt;avail_in, strm-&gt;next_out, and strm-&gt;avail_out to pass input to and get output from liblzma.</p>
-<p>See the description of the coder-specific initialization function to find out what `action' values are supported by the coder.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">action</td><td>Action for this function to take. Must be a valid lzma_action enum value.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Any valid lzma_ret. See the lzma_ret enum description for more information. </dd></dl>
-
-</div>
-</div>
-<a id="a854ff37464ae1225febf14db1af43308" name="a854ff37464ae1225febf14db1af43308"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a854ff37464ae1225febf14db1af43308">&#9670;&#160;</a></span>lzma_end()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void lzma_end </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Free memory allocated for the coder data structures. </p>
-<p>After lzma_end(strm), strm-&gt;internal is guaranteed to be NULL. No other members of the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure are touched.</p>
-<dl class="section note"><dt>Note</dt><dd>zlib indicates an error if application end()s unfinished stream structure. liblzma doesn't do this, and assumes that application knows what it is doing.</dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a id="ab6447cd68eeecbd6b88f21daeb8ce751" name="ab6447cd68eeecbd6b88f21daeb8ce751"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab6447cd68eeecbd6b88f21daeb8ce751">&#9670;&#160;</a></span>lzma_get_progress()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void lzma_get_progress </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t *&#160;</td>
- <td class="paramname"><em>progress_in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t *&#160;</td>
- <td class="paramname"><em>progress_out</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get progress information. </p>
-<p>In single-threaded mode, applications can get progress information from strm-&gt;total_in and strm-&gt;total_out. In multi-threaded mode this is less useful because a significant amount of both input and output data gets buffered internally by liblzma. This makes total_in and total_out give misleading information and also makes the progress indicator updates non-smooth.</p>
-<p>This function gives realistic progress information also in multi-threaded mode by taking into account the progress made by each thread. In single-threaded mode *progress_in and *progress_out are set to strm-&gt;total_in and strm-&gt;total_out, respectively.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">progress_in</td><td>Pointer to the number of input bytes processed. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">progress_out</td><td>Pointer to the number of output bytes processed. </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a id="a418b210cf206782a73cd9de7dc27f670" name="a418b210cf206782a73cd9de7dc27f670"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a418b210cf206782a73cd9de7dc27f670">&#9670;&#160;</a></span>lzma_memusage()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_memusage </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the memory usage of decoder filter chain. </p>
-<p>This function is currently supported only when *strm has been initialized with a function that takes a memlimit argument. With other functions, you should use e.g. <a class="el" href="filter_8h.html#a730f9391e85a5979bcd1b32643ae7176" title="Calculate approximate memory requirements for raw encoder.">lzma_raw_encoder_memusage()</a> or <a class="el" href="filter_8h.html#a58511249ae9206d7de7c5d1f05842297" title="Calculate approximate memory requirements for raw decoder.">lzma_raw_decoder_memusage()</a> to estimate the memory requirements.</p>
-<p>This function is useful e.g. after LZMA_MEMLIMIT_ERROR to find out how big the memory usage limit should have been to decode the input. Note that this may give misleading information if decoding .xz Streams that have multiple Blocks, because each Block can have different memory requirements.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>How much memory is currently allocated for the filter decoders. If no filter chain is currently allocated, some non-zero value is still returned, which is less than or equal to what any filter chain would indicate as its memory requirement.</dd></dl>
-<p>If this function isn't supported by *strm or some other error occurs, zero is returned. </p>
-
-</div>
-</div>
-<a id="ac871bc2ead5d482c6d6b3d51bfec365c" name="ac871bc2ead5d482c6d6b3d51bfec365c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac871bc2ead5d482c6d6b3d51bfec365c">&#9670;&#160;</a></span>lzma_memlimit_get()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_memlimit_get </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the current memory usage limit. </p>
-<p>This function is supported only when *strm has been initialized with a function that takes a memlimit argument.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>On success, the current memory usage limit is returned (always non-zero). On error, zero is returned. </dd></dl>
-
-</div>
-</div>
-<a id="afc49d4cf75b73128a167df3407505f7b" name="afc49d4cf75b73128a167df3407505f7b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afc49d4cf75b73128a167df3407505f7b">&#9670;&#160;</a></span>lzma_memlimit_set()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_memlimit_set </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t&#160;</td>
- <td class="paramname"><em>memlimit</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Set the memory usage limit. </p>
-<p>This function is supported only when *strm has been initialized with a function that takes a memlimit argument.</p>
-<p>liblzma 5.2.3 and earlier has a bug where memlimit value of 0 causes this function to do nothing (leaving the limit unchanged) and still return LZMA_OK. Later versions treat 0 as if 1 had been specified (so <a class="el" href="base_8h.html#ac871bc2ead5d482c6d6b3d51bfec365c" title="Get the current memory usage limit.">lzma_memlimit_get()</a> will return 1 even if you specify 0 here).</p>
-<p>liblzma 5.2.6 and earlier had a bug in single-threaded .xz decoder (<a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0" title="Initialize .xz Stream decoder.">lzma_stream_decoder()</a>) which made it impossible to continue decoding after LZMA_MEMLIMIT_ERROR even if the limit was increased using <a class="el" href="base_8h.html#afc49d4cf75b73128a167df3407505f7b" title="Set the memory usage limit.">lzma_memlimit_set()</a>. Other decoders worked correctly.</p>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: New memory usage limit successfully set.</li>
-<li>LZMA_MEMLIMIT_ERROR: The new limit is too small. The limit was not changed.</li>
-<li>LZMA_PROG_ERROR: Invalid arguments, e.g. *strm doesn't support memory usage limit. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/bc_s.png b/doc/api/bc_s.png
deleted file mode 100644
index bb50b82..0000000
--- a/doc/api/bc_s.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/bc_sd.png b/doc/api/bc_sd.png
deleted file mode 100644
index 8d8be4c..0000000
--- a/doc/api/bc_sd.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/bcj_8h.html b/doc/api/bcj_8h.html
deleted file mode 100644
index 1dabca4..0000000
--- a/doc/api/bcj_8h.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/bcj.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> &#124;
-<a href="#define-members">Macros</a> </div>
- <div class="headertitle"><div class="title">bcj.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Branch/Call/Jump conversion filters.
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__bcj.html">lzma_options_bcj</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options for BCJ filters. <a href="structlzma__options__bcj.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:aa9eac1f580ddde3309518cd153d596b1"><td class="memItemLeft" align="right" valign="top"><a id="aa9eac1f580ddde3309518cd153d596b1" name="aa9eac1f580ddde3309518cd153d596b1"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_X86</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x04)</td></tr>
-<tr class="memdesc:aa9eac1f580ddde3309518cd153d596b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for x86 binaries. <br /></td></tr>
-<tr class="separator:aa9eac1f580ddde3309518cd153d596b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab7f667d4a5d319f227f23163cbea086f"><td class="memItemLeft" align="right" valign="top"><a id="ab7f667d4a5d319f227f23163cbea086f" name="ab7f667d4a5d319f227f23163cbea086f"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_POWERPC</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x05)</td></tr>
-<tr class="memdesc:ab7f667d4a5d319f227f23163cbea086f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for Big endian PowerPC binaries. <br /></td></tr>
-<tr class="separator:ab7f667d4a5d319f227f23163cbea086f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2fe36218a38f400e1ce40820758f7427"><td class="memItemLeft" align="right" valign="top"><a id="a2fe36218a38f400e1ce40820758f7427" name="a2fe36218a38f400e1ce40820758f7427"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_IA64</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x06)</td></tr>
-<tr class="memdesc:a2fe36218a38f400e1ce40820758f7427"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for IA-64 (Itanium) binaries. <br /></td></tr>
-<tr class="separator:a2fe36218a38f400e1ce40820758f7427"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a495a58f63ebc7a8b756099efba492f8b"><td class="memItemLeft" align="right" valign="top"><a id="a495a58f63ebc7a8b756099efba492f8b" name="a495a58f63ebc7a8b756099efba492f8b"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_ARM</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x07)</td></tr>
-<tr class="memdesc:a495a58f63ebc7a8b756099efba492f8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for ARM binaries. <br /></td></tr>
-<tr class="separator:a495a58f63ebc7a8b756099efba492f8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5ec62e7e5e7df3d9af5b2ea3f857689a"><td class="memItemLeft" align="right" valign="top"><a id="a5ec62e7e5e7df3d9af5b2ea3f857689a" name="a5ec62e7e5e7df3d9af5b2ea3f857689a"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_ARMTHUMB</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x08)</td></tr>
-<tr class="memdesc:a5ec62e7e5e7df3d9af5b2ea3f857689a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for ARM-Thumb binaries. <br /></td></tr>
-<tr class="separator:a5ec62e7e5e7df3d9af5b2ea3f857689a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a50941088e93ef659c6b000bbcaf58143"><td class="memItemLeft" align="right" valign="top"><a id="a50941088e93ef659c6b000bbcaf58143" name="a50941088e93ef659c6b000bbcaf58143"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_SPARC</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x09)</td></tr>
-<tr class="memdesc:a50941088e93ef659c6b000bbcaf58143"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for SPARC binaries. <br /></td></tr>
-<tr class="separator:a50941088e93ef659c6b000bbcaf58143"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a01765158cd31cac21b272b180628fc4b"><td class="memItemLeft" align="right" valign="top"><a id="a01765158cd31cac21b272b180628fc4b" name="a01765158cd31cac21b272b180628fc4b"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_ARM64</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x0A)</td></tr>
-<tr class="memdesc:a01765158cd31cac21b272b180628fc4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for ARM64 binaries. <br /></td></tr>
-<tr class="separator:a01765158cd31cac21b272b180628fc4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Branch/Call/Jump conversion filters. </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/block_8h.html b/doc/api/block_8h.html
deleted file mode 100644
index e2e1702..0000000
--- a/doc/api/block_8h.html
+++ /dev/null
@@ -1,758 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/block.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> &#124;
-<a href="#define-members">Macros</a> &#124;
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle"><div class="title">block.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>.xz Block handling
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html">lzma_block</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options for the Block and Block Header encoders and decoders. <a href="structlzma__block.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a9263c5b314592e658772e5eb83ffdd78"><td class="memItemLeft" align="right" valign="top"><a id="a9263c5b314592e658772e5eb83ffdd78" name="a9263c5b314592e658772e5eb83ffdd78"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_BLOCK_HEADER_SIZE_MIN</b>&#160;&#160;&#160;8</td></tr>
-<tr class="separator:a9263c5b314592e658772e5eb83ffdd78"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af7a39189d0721c55313a401b63811e49"><td class="memItemLeft" align="right" valign="top"><a id="af7a39189d0721c55313a401b63811e49" name="af7a39189d0721c55313a401b63811e49"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_BLOCK_HEADER_SIZE_MAX</b>&#160;&#160;&#160;1024</td></tr>
-<tr class="separator:af7a39189d0721c55313a401b63811e49"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac025c940683a70f4c7f956bad814fd5f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#ac025c940683a70f4c7f956bad814fd5f">lzma_block_header_size_decode</a>(b)&#160;&#160;&#160;(((uint32_t)(b) + 1) * 4)</td></tr>
-<tr class="memdesc:ac025c940683a70f4c7f956bad814fd5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode the Block Header Size field. <br /></td></tr>
-<tr class="separator:ac025c940683a70f4c7f956bad814fd5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ae9b47abc872d0b02c2da9d3fa5a7dacd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd">lzma_block_header_size</a> (<a class="el" href="structlzma__block.html">lzma_block</a> *block) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:ae9b47abc872d0b02c2da9d3fa5a7dacd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate Block Header Size. <br /></td></tr>
-<tr class="separator:ae9b47abc872d0b02c2da9d3fa5a7dacd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0eedbd6331d5708ea963260e6f2a92d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0">lzma_block_header_encode</a> (const <a class="el" href="structlzma__block.html">lzma_block</a> *block, uint8_t *out) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a0eedbd6331d5708ea963260e6f2a92d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode Block Header. <br /></td></tr>
-<tr class="separator:a0eedbd6331d5708ea963260e6f2a92d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7f5487c21a7b36a8bd17be36074d43c9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9">lzma_block_header_decode</a> (<a class="el" href="structlzma__block.html">lzma_block</a> *block, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a7f5487c21a7b36a8bd17be36074d43c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode Block Header. <br /></td></tr>
-<tr class="separator:a7f5487c21a7b36a8bd17be36074d43c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6c3e102d76db06a07126a569abc6e2bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc">lzma_block_compressed_size</a> (<a class="el" href="structlzma__block.html">lzma_block</a> *block, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> unpadded_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a6c3e102d76db06a07126a569abc6e2bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate and set Compressed Size according to Unpadded Size. <br /></td></tr>
-<tr class="separator:a6c3e102d76db06a07126a569abc6e2bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a412d5605280fa29befae1b89e344bf30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30">lzma_block_unpadded_size</a> (const <a class="el" href="structlzma__block.html">lzma_block</a> *block) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a412d5605280fa29befae1b89e344bf30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate Unpadded Size. <br /></td></tr>
-<tr class="separator:a412d5605280fa29befae1b89e344bf30"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a694424f9dfdd5151e01debac1c501fa9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9">lzma_block_total_size</a> (const <a class="el" href="structlzma__block.html">lzma_block</a> *block) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a694424f9dfdd5151e01debac1c501fa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the total encoded size of a Block. <br /></td></tr>
-<tr class="separator:a694424f9dfdd5151e01debac1c501fa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2218a49025a0b44f9a6f9d6d24359359"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359">lzma_block_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, <a class="el" href="structlzma__block.html">lzma_block</a> *block) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a2218a49025a0b44f9a6f9d6d24359359"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Block encoder. <br /></td></tr>
-<tr class="separator:a2218a49025a0b44f9a6f9d6d24359359"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa92c73b2a228efe921fa2376aa7adc92"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92">lzma_block_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, <a class="el" href="structlzma__block.html">lzma_block</a> *block) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:aa92c73b2a228efe921fa2376aa7adc92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Block decoder. <br /></td></tr>
-<tr class="separator:aa92c73b2a228efe921fa2376aa7adc92"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a58ff73e2572b529f48cc590bfffe5b4f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a58ff73e2572b529f48cc590bfffe5b4f">lzma_block_buffer_bound</a> (size_t uncompressed_size) lzma_nothrow</td></tr>
-<tr class="memdesc:a58ff73e2572b529f48cc590bfffe5b4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate maximum output size for single-call Block encoding. <br /></td></tr>
-<tr class="separator:a58ff73e2572b529f48cc590bfffe5b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af415fa5130ab64e8760e9c39e856fa54"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54">lzma_block_buffer_encode</a> (<a class="el" href="structlzma__block.html">lzma_block</a> *block, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:af415fa5130ab64e8760e9c39e856fa54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Block encoder. <br /></td></tr>
-<tr class="separator:af415fa5130ab64e8760e9c39e856fa54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5a260f634ccd5f54fb98f570d8d92d8c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c">lzma_block_uncomp_encode</a> (<a class="el" href="structlzma__block.html">lzma_block</a> *block, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a5a260f634ccd5f54fb98f570d8d92d8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call uncompressed .xz Block encoder. <br /></td></tr>
-<tr class="separator:a5a260f634ccd5f54fb98f570d8d92d8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0c6eb869d91b08f68648b1aa7a32ee9f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f">lzma_block_buffer_decode</a> (<a class="el" href="structlzma__block.html">lzma_block</a> *block, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t *in_pos, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow</td></tr>
-<tr class="memdesc:a0c6eb869d91b08f68648b1aa7a32ee9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Block decoder. <br /></td></tr>
-<tr class="separator:a0c6eb869d91b08f68648b1aa7a32ee9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>.xz Block handling </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ac025c940683a70f4c7f956bad814fd5f" name="ac025c940683a70f4c7f956bad814fd5f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac025c940683a70f4c7f956bad814fd5f">&#9670;&#160;</a></span>lzma_block_header_size_decode</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define lzma_block_header_size_decode</td>
- <td>(</td>
- <td class="paramtype">&#160;</td>
- <td class="paramname">b</td><td>)</td>
- <td>&#160;&#160;&#160;(((uint32_t)(b) + 1) * 4)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Decode the Block Header Size field. </p>
-<p>To decode Block Header using <a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a>, the size of the Block Header has to be known and stored into <a class="el" href="structlzma__block.html#a6689c4f7524b2c05772a2d6151138610" title="Size of the Block Header field in bytes.">lzma_block.header_size</a>. The size can be calculated from the first byte of a Block using this macro. Note that if the first byte is 0x00, it indicates beginning of Index; use this macro only when the byte is not 0x00.</p>
-<p>There is no encoding macro because <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a> and <a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a> should be used. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="ae9b47abc872d0b02c2da9d3fa5a7dacd" name="ae9b47abc872d0b02c2da9d3fa5a7dacd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae9b47abc872d0b02c2da9d3fa5a7dacd">&#9670;&#160;</a></span>lzma_block_header_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_header_size </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
- <td class="paramname"><em>block</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate Block Header Size. </p>
-<p>Calculate the minimum size needed for the Block Header field using the settings specified in the <a class="el" href="structlzma__block.html" title="Options for the Block and Block Header encoders and decoders.">lzma_block</a> structure. Note that it is OK to increase the calculated header_size value as long as it is a multiple of four and doesn't exceed LZMA_BLOCK_HEADER_SIZE_MAX. Increasing header_size just means that <a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a> will add Header Padding.</p>
-<dl class="section note"><dt>Note</dt><dd>This doesn't check that all the options are valid i.e. this may return LZMA_OK even if <a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a> or <a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a> would fail. If you want to validate the filter chain, consider using lzma_memlimit_encoder() which as a side-effect validates the filter chain.</dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">block</td><td>Block options</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Size calculated successfully and stored to block-&gt;header_size.</li>
-<li>LZMA_OPTIONS_ERROR: Unsupported version, filters or filter options.</li>
-<li>LZMA_PROG_ERROR: Invalid values like compressed_size == 0. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a0eedbd6331d5708ea963260e6f2a92d0" name="a0eedbd6331d5708ea963260e6f2a92d0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0eedbd6331d5708ea963260e6f2a92d0">&#9670;&#160;</a></span>lzma_block_header_encode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_header_encode </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
- <td class="paramname"><em>block</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Encode Block Header. </p>
-<p>The caller must have calculated the size of the Block Header already with <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a>. If a value larger than the one calculated by <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a> is used, the Block Header will be padded to the specified size.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">block</td><td>Block options to be encoded. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer. This must be at least block-&gt;header_size bytes.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Encoding was successful. block-&gt;header_size bytes were written to output buffer.</li>
-<li>LZMA_OPTIONS_ERROR: Invalid or unsupported options.</li>
-<li>LZMA_PROG_ERROR: Invalid arguments, for example block-&gt;header_size is invalid or block-&gt;filters is NULL. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a7f5487c21a7b36a8bd17be36074d43c9" name="a7f5487c21a7b36a8bd17be36074d43c9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7f5487c21a7b36a8bd17be36074d43c9">&#9670;&#160;</a></span>lzma_block_header_decode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_header_decode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
- <td class="paramname"><em>block</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Decode Block Header. </p>
-<p>block-&gt;version should (usually) be set to the highest value supported by the application. If the application sets block-&gt;version to a value higher than supported by the current liblzma version, this function will downgrade block-&gt;version to the highest value supported by it. Thus one should check the value of block-&gt;version after calling this function if block-&gt;version was set to a non-zero value and the application doesn't otherwise know that the liblzma version being used is new enough to support the specified block-&gt;version.</p>
-<p>The size of the Block Header must have already been decoded with <a class="el" href="block_8h.html#ac025c940683a70f4c7f956bad814fd5f" title="Decode the Block Header Size field.">lzma_block_header_size_decode()</a> macro and stored to block-&gt;header_size.</p>
-<p>The integrity check type from Stream Header must have been stored to block-&gt;check.</p>
-<p>block-&gt;filters must have been allocated, but they don't need to be initialized (possible existing filter options are not freed).</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">block</td><td>Destination for Block options </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() (and also free() if an error occurs). </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer. This must be at least block-&gt;header_size bytes.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Decoding was successful. block-&gt;header_size bytes were read from the input buffer.</li>
-<li>LZMA_OPTIONS_ERROR: The Block Header specifies some unsupported options such as unsupported filters. This can happen also if block-&gt;version was set to a too low value compared to what would be required to properly represent the information stored in the Block Header.</li>
-<li>LZMA_DATA_ERROR: Block Header is corrupt, for example, the CRC32 doesn't match.</li>
-<li>LZMA_PROG_ERROR: Invalid arguments, for example block-&gt;header_size is invalid or block-&gt;filters is NULL. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a6c3e102d76db06a07126a569abc6e2bc" name="a6c3e102d76db06a07126a569abc6e2bc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6c3e102d76db06a07126a569abc6e2bc">&#9670;&#160;</a></span>lzma_block_compressed_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_compressed_size </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
- <td class="paramname"><em>block</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>unpadded_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Validate and set Compressed Size according to Unpadded Size. </p>
-<p>Block Header stores Compressed Size, but Index has Unpadded Size. If the application has already parsed the Index and is now decoding Blocks, it can calculate Compressed Size from Unpadded Size. This function does exactly that with error checking:</p>
-<ul>
-<li>Compressed Size calculated from Unpadded Size must be positive integer, that is, Unpadded Size must be big enough that after Block Header and Check fields there's still at least one byte for Compressed Size.</li>
-<li>If Compressed Size was present in Block Header, the new value calculated from Unpadded Size is compared against the value from Block Header.</li>
-</ul>
-<dl class="section note"><dt>Note</dt><dd>This function must be called _after_ decoding the Block Header field so that it can properly validate Compressed Size if it was present in Block Header.</dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">block</td><td>Block options: block-&gt;header_size must already be set with <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a>. </td></tr>
- <tr><td class="paramname">unpadded_size</td><td>Unpadded Size from the Index field in bytes</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: block-&gt;compressed_size was set successfully.</li>
-<li>LZMA_DATA_ERROR: unpadded_size is too small compared to block-&gt;header_size and lzma_check_size(block-&gt;check).</li>
-<li>LZMA_PROG_ERROR: Some values are invalid. For example, block-&gt;header_size must be a multiple of four and between 8 and 1024 inclusive. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a412d5605280fa29befae1b89e344bf30" name="a412d5605280fa29befae1b89e344bf30"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a412d5605280fa29befae1b89e344bf30">&#9670;&#160;</a></span>lzma_block_unpadded_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_block_unpadded_size </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
- <td class="paramname"><em>block</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate Unpadded Size. </p>
-<p>The Index field stores Unpadded Size and Uncompressed Size. The latter can be taken directly from the <a class="el" href="structlzma__block.html" title="Options for the Block and Block Header encoders and decoders.">lzma_block</a> structure after coding a Block, but Unpadded Size needs to be calculated from Block Header Size, Compressed Size, and size of the Check field. This is where this function is needed.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">block</td><td>Block options: block-&gt;header_size must already be set with <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Unpadded Size on success, or zero on error. </dd></dl>
-
-</div>
-</div>
-<a id="a694424f9dfdd5151e01debac1c501fa9" name="a694424f9dfdd5151e01debac1c501fa9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a694424f9dfdd5151e01debac1c501fa9">&#9670;&#160;</a></span>lzma_block_total_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_block_total_size </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
- <td class="paramname"><em>block</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate the total encoded size of a Block. </p>
-<p>This is equivalent to <a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a> except that the returned value includes the size of the Block Padding field.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">block</td><td>Block options: block-&gt;header_size must already be set with <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>On success, total encoded size of the Block. On error, zero is returned. </dd></dl>
-
-</div>
-</div>
-<a id="a2218a49025a0b44f9a6f9d6d24359359" name="a2218a49025a0b44f9a6f9d6d24359359"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2218a49025a0b44f9a6f9d6d24359359">&#9670;&#160;</a></span>lzma_block_encoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_encoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
- <td class="paramname"><em>block</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize .xz Block encoder. </p>
-<p>Valid actions for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN, LZMA_SYNC_FLUSH (only if the filter chain supports it), and LZMA_FINISH.</p>
-<p>The Block encoder encodes the Block Data, Block Padding, and Check value. It does NOT encode the Block Header which can be encoded with <a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">block</td><td>Block options: block-&gt;version, block-&gt;check, and block-&gt;filters must have been initialized.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: All good, continue with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>.</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_UNSUPPORTED_CHECK: block-&gt;check specifies a Check ID that is not supported by this build of liblzma. Initializing the encoder failed.</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="aa92c73b2a228efe921fa2376aa7adc92" name="aa92c73b2a228efe921fa2376aa7adc92"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa92c73b2a228efe921fa2376aa7adc92">&#9670;&#160;</a></span>lzma_block_decoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_decoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
- <td class="paramname"><em>block</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize .xz Block decoder. </p>
-<p>Valid actions for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN and LZMA_FINISH. Using LZMA_FINISH is not required. It is supported only for convenience.</p>
-<p>The Block decoder decodes the Block Data, Block Padding, and Check value. It does NOT decode the Block Header which can be decoded with <a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">block</td><td>Block options</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: All good, continue with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>.</li>
-<li>LZMA_PROG_ERROR</li>
-<li>LZMA_MEM_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a58ff73e2572b529f48cc590bfffe5b4f" name="a58ff73e2572b529f48cc590bfffe5b4f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a58ff73e2572b529f48cc590bfffe5b4f">&#9670;&#160;</a></span>lzma_block_buffer_bound()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t lzma_block_buffer_bound </td>
- <td>(</td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>uncompressed_size</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate maximum output size for single-call Block encoding. </p>
-<p>This is equivalent to <a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e" title="Calculate output buffer size for single-call Stream encoder.">lzma_stream_buffer_bound()</a> but for .xz Blocks. See the documentation of <a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e" title="Calculate output buffer size for single-call Stream encoder.">lzma_stream_buffer_bound()</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">uncompressed_size</td><td>Size of the data to be encoded with the single-call Block encoder.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Maximum output size in bytes for single-call Block encoding. </dd></dl>
-
-</div>
-</div>
-<a id="af415fa5130ab64e8760e9c39e856fa54" name="af415fa5130ab64e8760e9c39e856fa54"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af415fa5130ab64e8760e9c39e856fa54">&#9670;&#160;</a></span>lzma_block_buffer_encode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_buffer_encode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
- <td class="paramname"><em>block</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>in_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>out_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>out_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-call .xz Block encoder. </p>
-<p>In contrast to the multi-call encoder initialized with <a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a>, this function encodes also the Block Header. This is required to make it possible to write appropriate Block Header also in case the data isn't compressible, and different filter chain has to be used to encode the data in uncompressed form using uncompressed chunks of the LZMA2 filter.</p>
-<p>When the data isn't compressible, header_size, compressed_size, and uncompressed_size are set just like when the data was compressible, but it is possible that header_size is too small to hold the filter chain specified in block-&gt;filters, because that isn't necessarily the filter chain that was actually used to encode the data. <a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a> still works normally, because it doesn't read the filters array.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">block</td><td>Block options: block-&gt;version, block-&gt;check, and block-&gt;filters must have been initialized. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Encoding was successful.</li>
-<li>LZMA_BUF_ERROR: Not enough output buffer space.</li>
-<li>LZMA_UNSUPPORTED_CHECK</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_DATA_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a5a260f634ccd5f54fb98f570d8d92d8c" name="a5a260f634ccd5f54fb98f570d8d92d8c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5a260f634ccd5f54fb98f570d8d92d8c">&#9670;&#160;</a></span>lzma_block_uncomp_encode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_uncomp_encode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
- <td class="paramname"><em>block</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>in_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>out_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>out_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-call uncompressed .xz Block encoder. </p>
-<p>This is like <a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a> except this doesn't try to compress the data and instead encodes the data using LZMA2 uncompressed chunks. The required output buffer size can be determined with <a class="el" href="block_8h.html#a58ff73e2572b529f48cc590bfffe5b4f" title="Calculate maximum output size for single-call Block encoding.">lzma_block_buffer_bound()</a>.</p>
-<p>Since the data won't be compressed, this function ignores block-&gt;filters. This function doesn't take <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> because this function doesn't allocate any memory from the heap.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">block</td><td>Block options: block-&gt;version, block-&gt;check, and block-&gt;filters must have been initialized. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Encoding was successful.</li>
-<li>LZMA_BUF_ERROR: Not enough output buffer space.</li>
-<li>LZMA_UNSUPPORTED_CHECK</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_DATA_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a0c6eb869d91b08f68648b1aa7a32ee9f" name="a0c6eb869d91b08f68648b1aa7a32ee9f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0c6eb869d91b08f68648b1aa7a32ee9f">&#9670;&#160;</a></span>lzma_block_buffer_decode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_buffer_decode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
- <td class="paramname"><em>block</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>in_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>in_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>out_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>out_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-call .xz Block decoder. </p>
-<p>This is single-call equivalent of <a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a>, and requires that the caller has already decoded Block Header and checked its memory usage.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">block</td><td>Block options </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_pos</td><td>The next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer; the first byte that won't be read is in[in_size]. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Decoding was successful.</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_DATA_ERROR</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_BUF_ERROR: Output buffer was too small.</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/check_8h.html b/doc/api/check_8h.html
deleted file mode 100644
index 2323c6c..0000000
--- a/doc/api/check_8h.html
+++ /dev/null
@@ -1,340 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/check.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> &#124;
-<a href="#enum-members">Enumerations</a> &#124;
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle"><div class="title">check.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Integrity checks.
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:acd221ababe30230d9647aab469ad80cb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#acd221ababe30230d9647aab469ad80cb">LZMA_CHECK_ID_MAX</a>&#160;&#160;&#160;15</td></tr>
-<tr class="memdesc:acd221ababe30230d9647aab469ad80cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum valid Check ID. <br /></td></tr>
-<tr class="separator:acd221ababe30230d9647aab469ad80cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a379e931cf86351ab1d97896cda9abbe0"><td class="memItemLeft" align="right" valign="top"><a id="a379e931cf86351ab1d97896cda9abbe0" name="a379e931cf86351ab1d97896cda9abbe0"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_CHECK_SIZE_MAX</b>&#160;&#160;&#160;64</td></tr>
-<tr class="memdesc:a379e931cf86351ab1d97896cda9abbe0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum size of a Check field. <br /></td></tr>
-<tr class="separator:a379e931cf86351ab1d97896cda9abbe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:a0a6100c719ac9aa49be3fdf7519e8c3f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> { <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa7b9851d75abfabc08d7fc5b4aaeb6f20">LZMA_CHECK_NONE</a> = 0
-, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa0be65014a40b5cb4ab32252b3709bef7">LZMA_CHECK_CRC32</a> = 1
-, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa87b4b0697a1e1ccb6766dd5c2fa24afc">LZMA_CHECK_CRC64</a> = 4
-, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3faf26a55ddd204a50ae87ec3432e7bc309">LZMA_CHECK_SHA256</a> = 10
- }</td></tr>
-<tr class="memdesc:a0a6100c719ac9aa49be3fdf7519e8c3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the integrity check (Check ID) <a href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">More...</a><br /></td></tr>
-<tr class="separator:a0a6100c719ac9aa49be3fdf7519e8c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ae9391ed2acfad0ce9357b68c608f07d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#ae9391ed2acfad0ce9357b68c608f07d8">lzma_check_is_supported</a> (<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> check) lzma_nothrow lzma_attr_const</td></tr>
-<tr class="memdesc:ae9391ed2acfad0ce9357b68c608f07d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if the given Check ID is supported. <br /></td></tr>
-<tr class="separator:ae9391ed2acfad0ce9357b68c608f07d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afd3fda19575d9d4f864c626c02b7cb48"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#afd3fda19575d9d4f864c626c02b7cb48">lzma_check_size</a> (<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> check) lzma_nothrow lzma_attr_const</td></tr>
-<tr class="memdesc:afd3fda19575d9d4f864c626c02b7cb48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the Check field with the given Check ID. <br /></td></tr>
-<tr class="separator:afd3fda19575d9d4f864c626c02b7cb48"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a760b569cce91bdd01e4ce9d78823c96d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#a760b569cce91bdd01e4ce9d78823c96d">lzma_crc32</a> (const uint8_t *buf, size_t size, uint32_t crc) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a760b569cce91bdd01e4ce9d78823c96d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate CRC32. <br /></td></tr>
-<tr class="separator:a760b569cce91bdd01e4ce9d78823c96d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aff2e74ce671b9f82a96adb549c68cea2"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#aff2e74ce671b9f82a96adb549c68cea2">lzma_crc64</a> (const uint8_t *buf, size_t size, uint64_t crc) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:aff2e74ce671b9f82a96adb549c68cea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate CRC64. <br /></td></tr>
-<tr class="separator:aff2e74ce671b9f82a96adb549c68cea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8d7c3ffabfd024485f03fa209536c746"><td class="memItemLeft" align="right" valign="top"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746">lzma_get_check</a> (const <a class="el" href="structlzma__stream.html">lzma_stream</a> *strm) lzma_nothrow</td></tr>
-<tr class="memdesc:a8d7c3ffabfd024485f03fa209536c746"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the type of the integrity check. <br /></td></tr>
-<tr class="separator:a8d7c3ffabfd024485f03fa209536c746"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Integrity checks. </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="acd221ababe30230d9647aab469ad80cb" name="acd221ababe30230d9647aab469ad80cb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acd221ababe30230d9647aab469ad80cb">&#9670;&#160;</a></span>LZMA_CHECK_ID_MAX</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_CHECK_ID_MAX&#160;&#160;&#160;15</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum valid Check ID. </p>
-<p>The .xz file format specification specifies 16 Check IDs (0-15). Some of them are only reserved, that is, no actual Check algorithm has been assigned. When decoding, liblzma still accepts unknown Check IDs for future compatibility. If a valid but unsupported Check ID is detected, liblzma can indicate a warning; see the flags LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, and LZMA_TELL_ANY_CHECK in <a class="el" href="container_8h.html" title="File formats.">container.h</a>. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a id="a0a6100c719ac9aa49be3fdf7519e8c3f" name="a0a6100c719ac9aa49be3fdf7519e8c3f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0a6100c719ac9aa49be3fdf7519e8c3f">&#9670;&#160;</a></span>lzma_check</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Type of the integrity check (Check ID) </p>
-<p>The .xz format supports multiple types of checks that are calculated from the uncompressed data. They vary in both speed and ability to detect errors. </p>
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a0a6100c719ac9aa49be3fdf7519e8c3fa7b9851d75abfabc08d7fc5b4aaeb6f20" name="a0a6100c719ac9aa49be3fdf7519e8c3fa7b9851d75abfabc08d7fc5b4aaeb6f20"></a>LZMA_CHECK_NONE&#160;</td><td class="fielddoc"><p>No Check is calculated.</p>
-<p>Size of the Check field: 0 bytes </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a0a6100c719ac9aa49be3fdf7519e8c3fa0be65014a40b5cb4ab32252b3709bef7" name="a0a6100c719ac9aa49be3fdf7519e8c3fa0be65014a40b5cb4ab32252b3709bef7"></a>LZMA_CHECK_CRC32&#160;</td><td class="fielddoc"><p>CRC32 using the polynomial from the IEEE 802.3 standard</p>
-<p>Size of the Check field: 4 bytes </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a0a6100c719ac9aa49be3fdf7519e8c3fa87b4b0697a1e1ccb6766dd5c2fa24afc" name="a0a6100c719ac9aa49be3fdf7519e8c3fa87b4b0697a1e1ccb6766dd5c2fa24afc"></a>LZMA_CHECK_CRC64&#160;</td><td class="fielddoc"><p>CRC64 using the polynomial from the ECMA-182 standard</p>
-<p>Size of the Check field: 8 bytes </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a0a6100c719ac9aa49be3fdf7519e8c3faf26a55ddd204a50ae87ec3432e7bc309" name="a0a6100c719ac9aa49be3fdf7519e8c3faf26a55ddd204a50ae87ec3432e7bc309"></a>LZMA_CHECK_SHA256&#160;</td><td class="fielddoc"><p>SHA-256</p>
-<p>Size of the Check field: 32 bytes </p>
-</td></tr>
-</table>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="ae9391ed2acfad0ce9357b68c608f07d8" name="ae9391ed2acfad0ce9357b68c608f07d8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae9391ed2acfad0ce9357b68c608f07d8">&#9670;&#160;</a></span>lzma_check_is_supported()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_check_is_supported </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td>
- <td class="paramname"><em>check</em></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Test if the given Check ID is supported. </p>
-<p>LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always supported (even if liblzma is built with limited features).</p>
-<dl class="section note"><dt>Note</dt><dd>It is safe to call this with a value that is not in the range [0, 15]; in that case the return value is always false.</dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">check</td><td>Check ID</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
-<li>true if Check ID is supported by this liblzma build.</li>
-<li>false otherwise. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="afd3fda19575d9d4f864c626c02b7cb48" name="afd3fda19575d9d4f864c626c02b7cb48"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afd3fda19575d9d4f864c626c02b7cb48">&#9670;&#160;</a></span>lzma_check_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_check_size </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td>
- <td class="paramname"><em>check</em></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the size of the Check field with the given Check ID. </p>
-<p>Although not all Check IDs have a check algorithm associated, the size of every Check is already frozen. This function returns the size (in bytes) of the Check field with the specified Check ID. The values are: { 0, 4, 4, 4, 8, 8, 8, 16, 16, 16, 32, 32, 32, 64, 64, 64 }</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">check</td><td>Check ID</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Size of the Check field in bytes. If the argument is not in the range [0, 15], UINT32_MAX is returned. </dd></dl>
-
-</div>
-</div>
-<a id="a760b569cce91bdd01e4ce9d78823c96d" name="a760b569cce91bdd01e4ce9d78823c96d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a760b569cce91bdd01e4ce9d78823c96d">&#9670;&#160;</a></span>lzma_crc32()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_crc32 </td>
- <td>(</td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>crc</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate CRC32. </p>
-<p>Calculate CRC32 using the polynomial from the IEEE 802.3 standard.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">buf</td><td>Pointer to the input buffer </td></tr>
- <tr><td class="paramname">size</td><td>Size of the input buffer </td></tr>
- <tr><td class="paramname">crc</td><td>Previously returned CRC value. This is used to calculate the CRC of a big buffer in smaller chunks. Set to zero when starting a new calculation.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Updated CRC value, which can be passed to this function again to continue CRC calculation. </dd></dl>
-
-</div>
-</div>
-<a id="aff2e74ce671b9f82a96adb549c68cea2" name="aff2e74ce671b9f82a96adb549c68cea2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aff2e74ce671b9f82a96adb549c68cea2">&#9670;&#160;</a></span>lzma_crc64()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_crc64 </td>
- <td>(</td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t&#160;</td>
- <td class="paramname"><em>crc</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate CRC64. </p>
-<p>Calculate CRC64 using the polynomial from the ECMA-182 standard.</p>
-<p>This function is used similarly to <a class="el" href="check_8h.html#a760b569cce91bdd01e4ce9d78823c96d" title="Calculate CRC32.">lzma_crc32()</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">buf</td><td>Pointer to the input buffer </td></tr>
- <tr><td class="paramname">size</td><td>Size of the input buffer </td></tr>
- <tr><td class="paramname">crc</td><td>Previously returned CRC value. This is used to calculate the CRC of a big buffer in smaller chunks. Set to zero when starting a new calculation.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Updated CRC value, which can be passed to this function again to continue CRC calculation. </dd></dl>
-
-</div>
-</div>
-<a id="a8d7c3ffabfd024485f03fa209536c746" name="a8d7c3ffabfd024485f03fa209536c746"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8d7c3ffabfd024485f03fa209536c746">&#9670;&#160;</a></span>lzma_get_check()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> lzma_get_check </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the type of the integrity check. </p>
-<p>This function can be called only immediately after <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> has returned LZMA_NO_CHECK, LZMA_UNSUPPORTED_CHECK, or LZMA_GET_CHECK. Calling this function in any other situation has undefined behavior.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> meeting the above conditions.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Check ID in the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>, or undefined if called improperly. </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/classes.html b/doc/api/classes.html
deleted file mode 100644
index a010270..0000000
--- a/doc/api/classes.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): Data Structure Index</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle"><div class="title">Data Structure Index</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_L">L</a></div>
-<div class="classindex">
-<dl class="classindex even">
-<dt class="alphachar"><a id="letter_L" name="letter_L">L</a></dt>
-<dd><a class="el" href="structlzma__allocator.html">lzma_allocator</a></dd><dd><a class="el" href="structlzma__block.html">lzma_block</a></dd><dd><a class="el" href="structlzma__filter.html">lzma_filter</a></dd><dd><a class="el" href="structlzma__index__iter.html">lzma_index_iter</a></dd><dd><a class="el" href="structlzma__mt.html">lzma_mt</a></dd><dd><a class="el" href="structlzma__options__bcj.html">lzma_options_bcj</a></dd><dd><a class="el" href="structlzma__options__delta.html">lzma_options_delta</a></dd><dd><a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a></dd><dd><a class="el" href="structlzma__stream.html">lzma_stream</a></dd><dd><a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a></dd></dl>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/closed.png b/doc/api/closed.png
deleted file mode 100644
index 91f4888..0000000
--- a/doc/api/closed.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/container_8h.html b/doc/api/container_8h.html
deleted file mode 100644
index 332b2b1..0000000
--- a/doc/api/container_8h.html
+++ /dev/null
@@ -1,1279 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/container.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> &#124;
-<a href="#define-members">Macros</a> &#124;
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle"><div class="title">container.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>File formats.
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html">lzma_mt</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multithreading options. <a href="structlzma__mt.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:af3ca20ff228b363a82515c1aee9e27bc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#af3ca20ff228b363a82515c1aee9e27bc">LZMA_PRESET_DEFAULT</a>&#160;&#160;&#160;UINT32_C(6)</td></tr>
-<tr class="memdesc:af3ca20ff228b363a82515c1aee9e27bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default compression preset. <br /></td></tr>
-<tr class="separator:af3ca20ff228b363a82515c1aee9e27bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a97e40265e355a21bd2465aaa5b85f03d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a97e40265e355a21bd2465aaa5b85f03d">LZMA_PRESET_LEVEL_MASK</a>&#160;&#160;&#160;UINT32_C(0x1F)</td></tr>
-<tr class="memdesc:a97e40265e355a21bd2465aaa5b85f03d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask for preset level. <br /></td></tr>
-<tr class="separator:a97e40265e355a21bd2465aaa5b85f03d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af524fe9af5737820fdadcd40a2c26deb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#af524fe9af5737820fdadcd40a2c26deb">LZMA_PRESET_EXTREME</a>&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; 31)</td></tr>
-<tr class="memdesc:af524fe9af5737820fdadcd40a2c26deb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extreme compression preset. <br /></td></tr>
-<tr class="separator:af524fe9af5737820fdadcd40a2c26deb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ada9cd20febb28b5ed6656de9184a86e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#ada9cd20febb28b5ed6656de9184a86e9">LZMA_TELL_NO_CHECK</a>&#160;&#160;&#160;UINT32_C(0x01)</td></tr>
-<tr class="separator:ada9cd20febb28b5ed6656de9184a86e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae21fb746037c82735d40d428c462e078"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#ae21fb746037c82735d40d428c462e078">LZMA_TELL_UNSUPPORTED_CHECK</a>&#160;&#160;&#160;UINT32_C(0x02)</td></tr>
-<tr class="separator:ae21fb746037c82735d40d428c462e078"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0bdde702a77ff42b90a99c0bf4147b6b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a0bdde702a77ff42b90a99c0bf4147b6b">LZMA_TELL_ANY_CHECK</a>&#160;&#160;&#160;UINT32_C(0x04)</td></tr>
-<tr class="separator:a0bdde702a77ff42b90a99c0bf4147b6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1289925ae1c63a8e86f69f3657118a4d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a1289925ae1c63a8e86f69f3657118a4d">LZMA_IGNORE_CHECK</a>&#160;&#160;&#160;UINT32_C(0x10)</td></tr>
-<tr class="separator:a1289925ae1c63a8e86f69f3657118a4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a563c84b5f368b3dd00d92ea903c5c33d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a563c84b5f368b3dd00d92ea903c5c33d">LZMA_CONCATENATED</a>&#160;&#160;&#160;UINT32_C(0x08)</td></tr>
-<tr class="separator:a563c84b5f368b3dd00d92ea903c5c33d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa1f469ed3d4b2eaf12f8081657efc9d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#aa1f469ed3d4b2eaf12f8081657efc9d5">LZMA_FAIL_FAST</a>&#160;&#160;&#160;UINT32_C(0x20)</td></tr>
-<tr class="separator:aa1f469ed3d4b2eaf12f8081657efc9d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a62c853cf7dbf008bdbd97b2685c3eabf"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a62c853cf7dbf008bdbd97b2685c3eabf">lzma_easy_encoder_memusage</a> (uint32_t preset) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a62c853cf7dbf008bdbd97b2685c3eabf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate approximate memory usage of easy encoder. <br /></td></tr>
-<tr class="separator:a62c853cf7dbf008bdbd97b2685c3eabf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3562055d26c18fad067a7c7516eaddf5"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a3562055d26c18fad067a7c7516eaddf5">lzma_easy_decoder_memusage</a> (uint32_t preset) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a3562055d26c18fad067a7c7516eaddf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate approximate decoder memory usage of a preset. <br /></td></tr>
-<tr class="separator:a3562055d26c18fad067a7c7516eaddf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acbdad999c544872f0f5d242f0d1a4ed4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4">lzma_easy_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint32_t preset, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> check) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:acbdad999c544872f0f5d242f0d1a4ed4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Stream encoder using a preset number. <br /></td></tr>
-<tr class="separator:acbdad999c544872f0f5d242f0d1a4ed4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac5e71f2711b57391186671967435faf2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#ac5e71f2711b57391186671967435faf2">lzma_easy_buffer_encode</a> (uint32_t preset, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> check, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow</td></tr>
-<tr class="memdesc:ac5e71f2711b57391186671967435faf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Stream encoding using a preset number. <br /></td></tr>
-<tr class="separator:ac5e71f2711b57391186671967435faf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1a97aec94c9fedd7646cfa51c4f4cd52"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52">lzma_stream_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> check) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a1a97aec94c9fedd7646cfa51c4f4cd52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Stream encoder using a custom filter chain. <br /></td></tr>
-<tr class="separator:a1a97aec94c9fedd7646cfa51c4f4cd52"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad7cf41496d77f4d346e006b26ed8e101"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#ad7cf41496d77f4d346e006b26ed8e101">lzma_stream_encoder_mt_memusage</a> (const <a class="el" href="structlzma__mt.html">lzma_mt</a> *options) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:ad7cf41496d77f4d346e006b26ed8e101"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate approximate memory usage of multithreaded .xz encoder. <br /></td></tr>
-<tr class="separator:ad7cf41496d77f4d346e006b26ed8e101"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3f8793518711ee84d1abf12ea3aaba42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a3f8793518711ee84d1abf12ea3aaba42">lzma_stream_encoder_mt</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__mt.html">lzma_mt</a> *options) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a3f8793518711ee84d1abf12ea3aaba42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize multithreaded .xz Stream encoder. <br /></td></tr>
-<tr class="separator:a3f8793518711ee84d1abf12ea3aaba42"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a26fcc5bccdf3f862caa4c992d01e1a72"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a26fcc5bccdf3f862caa4c992d01e1a72">lzma_alone_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a> *options) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a26fcc5bccdf3f862caa4c992d01e1a72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .lzma encoder (legacy file format) <br /></td></tr>
-<tr class="separator:a26fcc5bccdf3f862caa4c992d01e1a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a66d4366a47b8332bff2a512f44f5c45e"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e">lzma_stream_buffer_bound</a> (size_t uncompressed_size) lzma_nothrow</td></tr>
-<tr class="memdesc:a66d4366a47b8332bff2a512f44f5c45e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate output buffer size for single-call Stream encoder. <br /></td></tr>
-<tr class="separator:a66d4366a47b8332bff2a512f44f5c45e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6e645ccaeace3b13a6981e03c6e190ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a6e645ccaeace3b13a6981e03c6e190ad">lzma_stream_buffer_encode</a> (<a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> check, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a6e645ccaeace3b13a6981e03c6e190ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Stream encoder. <br /></td></tr>
-<tr class="separator:a6e645ccaeace3b13a6981e03c6e190ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abfc8f11acf837b167aa94b7071b54c30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#abfc8f11acf837b167aa94b7071b54c30">lzma_microlzma_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a> *options) lzma_nothrow</td></tr>
-<tr class="memdesc:abfc8f11acf837b167aa94b7071b54c30"><td class="mdescLeft">&#160;</td><td class="mdescRight">MicroLZMA encoder. <br /></td></tr>
-<tr class="separator:abfc8f11acf837b167aa94b7071b54c30"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a02b7683ef98d8049788961370a8b28c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0">lzma_stream_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t memlimit, uint32_t flags) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a02b7683ef98d8049788961370a8b28c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Stream decoder. <br /></td></tr>
-<tr class="separator:a02b7683ef98d8049788961370a8b28c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7179d178e6430c10e2006a467921e98e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a7179d178e6430c10e2006a467921e98e">lzma_stream_decoder_mt</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__mt.html">lzma_mt</a> *options) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a7179d178e6430c10e2006a467921e98e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize multithreaded .xz Stream decoder. <br /></td></tr>
-<tr class="separator:a7179d178e6430c10e2006a467921e98e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a21cbebf2771617bb1e956385cfb353e3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a21cbebf2771617bb1e956385cfb353e3">lzma_auto_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t memlimit, uint32_t flags) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a21cbebf2771617bb1e956385cfb353e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode .xz, .lzma, and .lz (lzip) files with autodetection. <br /></td></tr>
-<tr class="separator:a21cbebf2771617bb1e956385cfb353e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5f43c3a1035e5a226dcd298f4162b861"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a5f43c3a1035e5a226dcd298f4162b861">lzma_alone_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t memlimit) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a5f43c3a1035e5a226dcd298f4162b861"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .lzma decoder (legacy file format) <br /></td></tr>
-<tr class="separator:a5f43c3a1035e5a226dcd298f4162b861"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a97689f5709e0db1e2dac450f5ce4e5eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a97689f5709e0db1e2dac450f5ce4e5eb">lzma_lzip_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t memlimit, uint32_t flags) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a97689f5709e0db1e2dac450f5ce4e5eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .lz (lzip) decoder (a foreign file format) <br /></td></tr>
-<tr class="separator:a97689f5709e0db1e2dac450f5ce4e5eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa58f237f6cea97ef0eb9bf5c37a3008d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#aa58f237f6cea97ef0eb9bf5c37a3008d">lzma_stream_buffer_decode</a> (uint64_t *memlimit, uint32_t flags, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t *in_pos, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:aa58f237f6cea97ef0eb9bf5c37a3008d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Stream decoder. <br /></td></tr>
-<tr class="separator:aa58f237f6cea97ef0eb9bf5c37a3008d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa8372dae3e7c907c36f7bb5426aeacdf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#aa8372dae3e7c907c36f7bb5426aeacdf">lzma_microlzma_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t comp_size, uint64_t uncomp_size, <a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> uncomp_size_is_exact, uint32_t dict_size) lzma_nothrow</td></tr>
-<tr class="memdesc:aa8372dae3e7c907c36f7bb5426aeacdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">MicroLZMA decoder. <br /></td></tr>
-<tr class="separator:aa8372dae3e7c907c36f7bb5426aeacdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>File formats. </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="af3ca20ff228b363a82515c1aee9e27bc" name="af3ca20ff228b363a82515c1aee9e27bc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af3ca20ff228b363a82515c1aee9e27bc">&#9670;&#160;</a></span>LZMA_PRESET_DEFAULT</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_PRESET_DEFAULT&#160;&#160;&#160;UINT32_C(6)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default compression preset. </p>
-<p>It's not straightforward to recommend a default preset, because in some cases keeping the resource usage relatively low is more important that getting the maximum compression ratio. </p>
-
-</div>
-</div>
-<a id="a97e40265e355a21bd2465aaa5b85f03d" name="a97e40265e355a21bd2465aaa5b85f03d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a97e40265e355a21bd2465aaa5b85f03d">&#9670;&#160;</a></span>LZMA_PRESET_LEVEL_MASK</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_PRESET_LEVEL_MASK&#160;&#160;&#160;UINT32_C(0x1F)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Mask for preset level. </p>
-<p>This is useful only if you need to extract the level from the preset variable. That should be rare. </p>
-
-</div>
-</div>
-<a id="af524fe9af5737820fdadcd40a2c26deb" name="af524fe9af5737820fdadcd40a2c26deb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af524fe9af5737820fdadcd40a2c26deb">&#9670;&#160;</a></span>LZMA_PRESET_EXTREME</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_PRESET_EXTREME&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; 31)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Extreme compression preset. </p>
-<p>This flag modifies the preset to make the encoding significantly slower while improving the compression ratio only marginally. This is useful when you don't mind spending time to get as small result as possible.</p>
-<p>This flag doesn't affect the memory usage requirements of the decoder (at least not significantly). The memory usage of the encoder may be increased a little but only at the lowest preset levels (0-3). </p>
-
-</div>
-</div>
-<a id="ada9cd20febb28b5ed6656de9184a86e9" name="ada9cd20febb28b5ed6656de9184a86e9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ada9cd20febb28b5ed6656de9184a86e9">&#9670;&#160;</a></span>LZMA_TELL_NO_CHECK</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_TELL_NO_CHECK&#160;&#160;&#160;UINT32_C(0x01)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>This flag makes <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> return LZMA_NO_CHECK if the input stream being decoded has no integrity check. Note that when used with <a class="el" href="container_8h.html#a21cbebf2771617bb1e956385cfb353e3" title="Decode .xz, .lzma, and .lz (lzip) files with autodetection.">lzma_auto_decoder()</a>, all .lzma files will trigger LZMA_NO_CHECK if LZMA_TELL_NO_CHECK is used. </p>
-
-</div>
-</div>
-<a id="ae21fb746037c82735d40d428c462e078" name="ae21fb746037c82735d40d428c462e078"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae21fb746037c82735d40d428c462e078">&#9670;&#160;</a></span>LZMA_TELL_UNSUPPORTED_CHECK</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_TELL_UNSUPPORTED_CHECK&#160;&#160;&#160;UINT32_C(0x02)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>This flag makes <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> return LZMA_UNSUPPORTED_CHECK if the input stream has an integrity check, but the type of the integrity check is not supported by this liblzma version or build. Such files can still be decoded, but the integrity check cannot be verified. </p>
-
-</div>
-</div>
-<a id="a0bdde702a77ff42b90a99c0bf4147b6b" name="a0bdde702a77ff42b90a99c0bf4147b6b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0bdde702a77ff42b90a99c0bf4147b6b">&#9670;&#160;</a></span>LZMA_TELL_ANY_CHECK</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_TELL_ANY_CHECK&#160;&#160;&#160;UINT32_C(0x04)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>This flag makes <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> return LZMA_GET_CHECK as soon as the type of the integrity check is known. The type can then be got with <a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746" title="Get the type of the integrity check.">lzma_get_check()</a>. </p>
-
-</div>
-</div>
-<a id="a1289925ae1c63a8e86f69f3657118a4d" name="a1289925ae1c63a8e86f69f3657118a4d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1289925ae1c63a8e86f69f3657118a4d">&#9670;&#160;</a></span>LZMA_IGNORE_CHECK</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_IGNORE_CHECK&#160;&#160;&#160;UINT32_C(0x10)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>This flag makes <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> not calculate and verify the integrity check of the compressed data in .xz files. This means that invalid integrity check values won't be detected and LZMA_DATA_ERROR won't be returned in such cases.</p>
-<p>This flag only affects the checks of the compressed data itself; the CRC32 values in the .xz headers will still be verified normally.</p>
-<p>Don't use this flag unless you know what you are doing. Possible reasons to use this flag:</p>
-<ul>
-<li>Trying to recover data from a corrupt .xz file.</li>
-<li>Speeding up decompression, which matters mostly with SHA-256 or with files that have compressed extremely well. It's recommended to not use this flag for this purpose unless the file integrity is verified externally in some other way.</li>
-</ul>
-<p>Support for this flag was added in liblzma 5.1.4beta. </p>
-
-</div>
-</div>
-<a id="a563c84b5f368b3dd00d92ea903c5c33d" name="a563c84b5f368b3dd00d92ea903c5c33d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a563c84b5f368b3dd00d92ea903c5c33d">&#9670;&#160;</a></span>LZMA_CONCATENATED</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_CONCATENATED&#160;&#160;&#160;UINT32_C(0x08)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>This flag enables decoding of concatenated files with file formats that allow concatenating compressed files as is. From the formats currently supported by liblzma, only the .xz and .lz formats allow concatenated files. Concatenated files are not allowed with the legacy .lzma format.</p>
-<p>This flag also affects the usage of the `action' argument for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>. When LZMA_CONCATENATED is used, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> won't return LZMA_STREAM_END unless LZMA_FINISH is used as `action'. Thus, the application has to set LZMA_FINISH in the same way as it does when encoding.</p>
-<p>If LZMA_CONCATENATED is not used, the decoders still accept LZMA_FINISH as `action' for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>, but the usage of LZMA_FINISH isn't required. </p>
-
-</div>
-</div>
-<a id="aa1f469ed3d4b2eaf12f8081657efc9d5" name="aa1f469ed3d4b2eaf12f8081657efc9d5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa1f469ed3d4b2eaf12f8081657efc9d5">&#9670;&#160;</a></span>LZMA_FAIL_FAST</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_FAIL_FAST&#160;&#160;&#160;UINT32_C(0x20)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>This flag makes the threaded decoder report errors (like LZMA_DATA_ERROR) as soon as they are detected. This saves time when the application has no interest in a partially decompressed truncated or corrupt file. Note that due to timing randomness, if the same truncated or corrupt input is decompressed multiple times with this flag, a different amount of output may be produced by different runs, and even the error code might vary.</p>
-<p>When using LZMA_FAIL_FAST, it is recommended to use LZMA_FINISH to tell the decoder when no more input will be coming because it can help fast detection and reporting of truncated files. Note that in this situation truncated files might be diagnosed with LZMA_DATA_ERROR instead of LZMA_OK or LZMA_BUF_ERROR!</p>
-<p>Without this flag the threaded decoder will provide as much output as possible at first and then report the pending error. This default behavior matches the single-threaded decoder and provides repeatable behavior with truncated or corrupt input. There are a few special cases where the behavior can still differ like memory allocation failures (LZMA_MEM_ERROR).</p>
-<p>Single-threaded decoders currently ignore this flag.</p>
-<p>Support for this flag was added in liblzma 5.3.3alpha. Note that in older versions this flag isn't supported (LZMA_OPTIONS_ERROR) even by functions that ignore this flag in newer liblzma versions. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="a62c853cf7dbf008bdbd97b2685c3eabf" name="a62c853cf7dbf008bdbd97b2685c3eabf"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a62c853cf7dbf008bdbd97b2685c3eabf">&#9670;&#160;</a></span>lzma_easy_encoder_memusage()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_easy_encoder_memusage </td>
- <td>(</td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>preset</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate approximate memory usage of easy encoder. </p>
-<p>This function is a wrapper for <a class="el" href="filter_8h.html#a730f9391e85a5979bcd1b32643ae7176" title="Calculate approximate memory requirements for raw encoder.">lzma_raw_encoder_memusage()</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">preset</td><td>Compression preset (level and possible flags)</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Number of bytes of memory required for the given preset when encoding or UINT64_MAX on error. </dd></dl>
-
-</div>
-</div>
-<a id="a3562055d26c18fad067a7c7516eaddf5" name="a3562055d26c18fad067a7c7516eaddf5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3562055d26c18fad067a7c7516eaddf5">&#9670;&#160;</a></span>lzma_easy_decoder_memusage()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_easy_decoder_memusage </td>
- <td>(</td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>preset</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate approximate decoder memory usage of a preset. </p>
-<p>This function is a wrapper for <a class="el" href="filter_8h.html#a58511249ae9206d7de7c5d1f05842297" title="Calculate approximate memory requirements for raw decoder.">lzma_raw_decoder_memusage()</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">preset</td><td>Compression preset (level and possible flags)</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Number of bytes of memory required to decompress a file that was compressed using the given preset or UINT64_MAX on error. </dd></dl>
-
-</div>
-</div>
-<a id="acbdad999c544872f0f5d242f0d1a4ed4" name="acbdad999c544872f0f5d242f0d1a4ed4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acbdad999c544872f0f5d242f0d1a4ed4">&#9670;&#160;</a></span>lzma_easy_encoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_easy_encoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>preset</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td>
- <td class="paramname"><em>check</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize .xz Stream encoder using a preset number. </p>
-<p>This function is intended for those who just want to use the basic features of liblzma (that is, most developers out there).</p>
-<p>If initialization fails (return value is not LZMA_OK), all the memory allocated for *strm by liblzma is always freed. Thus, there is no need to call <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a> after failed initialization.</p>
-<p>If initialization succeeds, use <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> to do the actual encoding. Valid values for `action' (the second argument of <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>) are LZMA_RUN, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, and LZMA_FINISH. In future, there may be compression levels or flags that don't support LZMA_SYNC_FLUSH.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">preset</td><td>Compression preset to use. A preset consist of level number and zero or more flags. Usually flags aren't used, so preset is simply a number [0, 9] which match the options -0 ... -9 of the xz command line tool. Additional flags can be be set using bitwise-or with the preset level number, e.g. 6 | LZMA_PRESET_EXTREME. </td></tr>
- <tr><td class="paramname">check</td><td>Integrity check type to use. See <a class="el" href="check_8h.html" title="Integrity checks.">check.h</a> for available checks. The xz command line tool defaults to LZMA_CHECK_CRC64, which is a good choice if you are unsure. LZMA_CHECK_CRC32 is good too as long as the uncompressed file is not many gigabytes.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Initialization succeeded. Use <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> to encode your data.</li>
-<li>LZMA_MEM_ERROR: Memory allocation failed.</li>
-<li>LZMA_OPTIONS_ERROR: The given compression preset is not supported by this build of liblzma.</li>
-<li>LZMA_UNSUPPORTED_CHECK: The given check type is not supported by this liblzma build.</li>
-<li>LZMA_PROG_ERROR: One or more of the parameters have values that will never be valid. For example, strm == NULL. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="ac5e71f2711b57391186671967435faf2" name="ac5e71f2711b57391186671967435faf2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac5e71f2711b57391186671967435faf2">&#9670;&#160;</a></span>lzma_easy_buffer_encode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_easy_buffer_encode </td>
- <td>(</td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>preset</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td>
- <td class="paramname"><em>check</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>in_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>out_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>out_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-call .xz Stream encoding using a preset number. </p>
-<p>The maximum required output buffer size can be calculated with <a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e" title="Calculate output buffer size for single-call Stream encoder.">lzma_stream_buffer_bound()</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">preset</td><td>Compression preset to use. See the description in <a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4" title="Initialize .xz Stream encoder using a preset number.">lzma_easy_encoder()</a>. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">check</td><td>Type of the integrity check to calculate from uncompressed data. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Encoding was successful.</li>
-<li>LZMA_BUF_ERROR: Not enough output buffer space.</li>
-<li>LZMA_UNSUPPORTED_CHECK</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_DATA_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a1a97aec94c9fedd7646cfa51c4f4cd52" name="a1a97aec94c9fedd7646cfa51c4f4cd52"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1a97aec94c9fedd7646cfa51c4f4cd52">&#9670;&#160;</a></span>lzma_stream_encoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_encoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filters</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td>
- <td class="paramname"><em>check</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize .xz Stream encoder using a custom filter chain. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. See filters.h for more information. </td></tr>
- <tr><td class="paramname">check</td><td>Type of the integrity check to calculate from uncompressed data.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Initialization was successful.</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_UNSUPPORTED_CHECK</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="ad7cf41496d77f4d346e006b26ed8e101" name="ad7cf41496d77f4d346e006b26ed8e101"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad7cf41496d77f4d346e006b26ed8e101">&#9670;&#160;</a></span>lzma_stream_encoder_mt_memusage()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_stream_encoder_mt_memusage </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__mt.html">lzma_mt</a> *&#160;</td>
- <td class="paramname"><em>options</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate approximate memory usage of multithreaded .xz encoder. </p>
-<p>Since doing the encoding in threaded mode doesn't affect the memory requirements of single-threaded decompressor, you can use lzma_easy_decoder_memusage(options-&gt;preset) or lzma_raw_decoder_memusage(options-&gt;filters) to calculate the decompressor memory requirements.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">options</td><td>Compression options</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Number of bytes of memory required for encoding with the given options. If an error occurs, for example due to unsupported preset or filter chain, UINT64_MAX is returned. </dd></dl>
-
-</div>
-</div>
-<a id="a3f8793518711ee84d1abf12ea3aaba42" name="a3f8793518711ee84d1abf12ea3aaba42"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3f8793518711ee84d1abf12ea3aaba42">&#9670;&#160;</a></span>lzma_stream_encoder_mt()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_encoder_mt </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__mt.html">lzma_mt</a> *&#160;</td>
- <td class="paramname"><em>options</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize multithreaded .xz Stream encoder. </p>
-<p>This provides the functionality of <a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4" title="Initialize .xz Stream encoder using a preset number.">lzma_easy_encoder()</a> and <a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52" title="Initialize .xz Stream encoder using a custom filter chain.">lzma_stream_encoder()</a> as a single function for multithreaded use.</p>
-<p>The supported actions for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER, and LZMA_FINISH. Support for LZMA_SYNC_FLUSH might be added in the future.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">options</td><td>Pointer to multithreaded compression options</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_UNSUPPORTED_CHECK</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a26fcc5bccdf3f862caa4c992d01e1a72" name="a26fcc5bccdf3f862caa4c992d01e1a72"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a26fcc5bccdf3f862caa4c992d01e1a72">&#9670;&#160;</a></span>lzma_alone_encoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_alone_encoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a> *&#160;</td>
- <td class="paramname"><em>options</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize .lzma encoder (legacy file format) </p>
-<p>The .lzma format is sometimes called the LZMA_Alone format, which is the reason for the name of this function. The .lzma format supports only the LZMA1 filter. There is no support for integrity checks like CRC32.</p>
-<p>Use this function if and only if you need to create files readable by legacy LZMA tools such as LZMA Utils 4.32.x. Moving to the .xz format is strongly recommended.</p>
-<p>The valid action values for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN and LZMA_FINISH. No kind of flushing is supported, because the file format doesn't make it possible.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">options</td><td>Pointer to encoder options</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a66d4366a47b8332bff2a512f44f5c45e" name="a66d4366a47b8332bff2a512f44f5c45e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a66d4366a47b8332bff2a512f44f5c45e">&#9670;&#160;</a></span>lzma_stream_buffer_bound()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t lzma_stream_buffer_bound </td>
- <td>(</td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>uncompressed_size</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate output buffer size for single-call Stream encoder. </p>
-<p>When trying to compress incompressible data, the encoded size will be slightly bigger than the input data. This function calculates how much output buffer space is required to be sure that <a class="el" href="container_8h.html#a6e645ccaeace3b13a6981e03c6e190ad" title="Single-call .xz Stream encoder.">lzma_stream_buffer_encode()</a> doesn't return LZMA_BUF_ERROR.</p>
-<p>The calculated value is not exact, but it is guaranteed to be big enough. The actual maximum output space required may be slightly smaller (up to about 100 bytes). This should not be a problem in practice.</p>
-<p>If the calculated maximum size doesn't fit into size_t or would make the Stream grow past LZMA_VLI_MAX (which should never happen in practice), zero is returned to indicate the error.</p>
-<dl class="section note"><dt>Note</dt><dd>The limit calculated by this function applies only to single-call encoding. Multi-call encoding may (and probably will) have larger maximum expansion when encoding incompressible data. Currently there is no function to calculate the maximum expansion of multi-call encoding.</dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">uncompressed_size</td><td>Size in bytes of the uncompressed input data</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Maximum number of bytes needed to store the compressed data. </dd></dl>
-
-</div>
-</div>
-<a id="a6e645ccaeace3b13a6981e03c6e190ad" name="a6e645ccaeace3b13a6981e03c6e190ad"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6e645ccaeace3b13a6981e03c6e190ad">&#9670;&#160;</a></span>lzma_stream_buffer_encode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_buffer_encode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filters</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td>
- <td class="paramname"><em>check</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>in_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>out_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>out_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-call .xz Stream encoder. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. See filters.h for more information. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">check</td><td>Type of the integrity check to calculate from uncompressed data. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Encoding was successful.</li>
-<li>LZMA_BUF_ERROR: Not enough output buffer space.</li>
-<li>LZMA_UNSUPPORTED_CHECK</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_DATA_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="abfc8f11acf837b167aa94b7071b54c30" name="abfc8f11acf837b167aa94b7071b54c30"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abfc8f11acf837b167aa94b7071b54c30">&#9670;&#160;</a></span>lzma_microlzma_encoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_microlzma_encoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a> *&#160;</td>
- <td class="paramname"><em>options</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>MicroLZMA encoder. </p>
-<p>The MicroLZMA format is a raw LZMA stream whose first byte (always 0x00) has been replaced with bitwise-negation of the LZMA properties (lc/lp/pb). This encoding ensures that the first byte of MicroLZMA stream is never 0x00. There is no end of payload marker and thus the uncompressed size must be stored separately. For the best error detection the dictionary size should be stored separately as well but alternatively one may use the uncompressed size as the dictionary size when decoding.</p>
-<p>With the MicroLZMA encoder, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> behaves slightly unusually. The action argument must be LZMA_FINISH and the return value will never be LZMA_OK. Thus the encoding is always done with a single <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> after the initialization. The benefit of the combination of initialization function and <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> is that memory allocations can be re-used for better performance.</p>
-<p><a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> will try to encode as much input as is possible to fit into the given output buffer. If not all input can be encoded, the stream will be finished without encoding all the input. The caller must check both input and output buffer usage after <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> (total_in and total_out in <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> can be convenient). Often <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> can fill the output buffer completely if there is a lot of input, but sometimes a few bytes may remain unused because the next LZMA symbol would require more space.</p>
-<p><a class="el" href="structlzma__stream.html#a5ff28ea4e39148723c19f59811627904">lzma_stream.avail_out</a> must be at least 6. Otherwise LZMA_PROG_ERROR will be returned.</p>
-<p>The LZMA dictionary should be reasonably low to speed up the encoder re-initialization. A good value is bigger than the resulting uncompressed size of most of the output chunks. For example, if output size is 4 KiB, dictionary size of 32 KiB or 64 KiB is good. If the data compresses extremely well, even 128 KiB may be useful.</p>
-<p>The MicroLZMA format and this encoder variant were made with the EROFS file system in mind. This format may be convenient in other embedded uses too where many small streams are needed. XZ Embedded includes a decoder for this format.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">options</td><td>Pointer to encoder options</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_STREAM_END: All good. Check the amounts of input used and output produced. Store the amount of input used (uncompressed size) as it needs to be known to decompress the data.</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_PROG_ERROR: In addition to the generic reasons for this error code, this may also be returned if there isn't enough output space (6 bytes) to create a valid MicroLZMA stream. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a02b7683ef98d8049788961370a8b28c0" name="a02b7683ef98d8049788961370a8b28c0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a02b7683ef98d8049788961370a8b28c0">&#9670;&#160;</a></span>lzma_stream_decoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_decoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t&#160;</td>
- <td class="paramname"><em>memlimit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>flags</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize .xz Stream decoder. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">memlimit</td><td>Memory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified. </td></tr>
- <tr><td class="paramname">flags</td><td>Bitwise-or of zero or more of the decoder flags: LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, LZMA_TELL_ANY_CHECK, LZMA_IGNORE_CHECK, LZMA_CONCATENATED, LZMA_FAIL_FAST</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Initialization was successful.</li>
-<li>LZMA_MEM_ERROR: Cannot allocate memory.</li>
-<li>LZMA_OPTIONS_ERROR: Unsupported flags</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a7179d178e6430c10e2006a467921e98e" name="a7179d178e6430c10e2006a467921e98e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7179d178e6430c10e2006a467921e98e">&#9670;&#160;</a></span>lzma_stream_decoder_mt()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_decoder_mt </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__mt.html">lzma_mt</a> *&#160;</td>
- <td class="paramname"><em>options</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize multithreaded .xz Stream decoder. </p>
-<p>The decoder can decode multiple Blocks in parallel. This requires that each Block Header contains the Compressed Size and Uncompressed size fields which are added by the multi-threaded encoder, see <a class="el" href="container_8h.html#a3f8793518711ee84d1abf12ea3aaba42" title="Initialize multithreaded .xz Stream encoder.">lzma_stream_encoder_mt()</a>.</p>
-<p>A Stream with one Block will only utilize one thread. A Stream with multiple Blocks but without size information in Block Headers will be processed in single-threaded mode in the same way as done by <a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0" title="Initialize .xz Stream decoder.">lzma_stream_decoder()</a>. Concatenated Streams are processed one Stream at a time; no inter-Stream parallelization is done.</p>
-<p>This function behaves like <a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0" title="Initialize .xz Stream decoder.">lzma_stream_decoder()</a> when options-&gt;threads == 1 and options-&gt;memlimit_threading &lt;= 1.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">options</td><td>Pointer to multithreaded compression options</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Initialization was successful.</li>
-<li>LZMA_MEM_ERROR: Cannot allocate memory.</li>
-<li>LZMA_MEMLIMIT_ERROR: Memory usage limit was reached.</li>
-<li>LZMA_OPTIONS_ERROR: Unsupported flags.</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a21cbebf2771617bb1e956385cfb353e3" name="a21cbebf2771617bb1e956385cfb353e3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a21cbebf2771617bb1e956385cfb353e3">&#9670;&#160;</a></span>lzma_auto_decoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_auto_decoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t&#160;</td>
- <td class="paramname"><em>memlimit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>flags</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Decode .xz, .lzma, and .lz (lzip) files with autodetection. </p>
-<p>This decoder autodetects between the .xz, .lzma, and .lz file formats, and calls <a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0" title="Initialize .xz Stream decoder.">lzma_stream_decoder()</a>, <a class="el" href="container_8h.html#a5f43c3a1035e5a226dcd298f4162b861" title="Initialize .lzma decoder (legacy file format)">lzma_alone_decoder()</a>, or <a class="el" href="container_8h.html#a97689f5709e0db1e2dac450f5ce4e5eb" title="Initialize .lz (lzip) decoder (a foreign file format)">lzma_lzip_decoder()</a> once the type of the input file has been detected.</p>
-<p>Support for .lz was added in 5.4.0.</p>
-<p>If the flag LZMA_CONCATENATED is used and the input is a .lzma file: For historical reasons concatenated .lzma files aren't supported. If there is trailing data after one .lzma stream, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> will return LZMA_DATA_ERROR. (<a class="el" href="container_8h.html#a5f43c3a1035e5a226dcd298f4162b861" title="Initialize .lzma decoder (legacy file format)">lzma_alone_decoder()</a> doesn't have such a check as it doesn't support any decoder flags. It will return LZMA_STREAM_END after one .lzma stream.)</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">memlimit</td><td>Memory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified. </td></tr>
- <tr><td class="paramname">flags</td><td>Bitwise-or of zero or more of the decoder flags: LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, LZMA_TELL_ANY_CHECK, LZMA_IGNORE_CHECK, LZMA_CONCATENATED, LZMA_FAIL_FAST</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Initialization was successful.</li>
-<li>LZMA_MEM_ERROR: Cannot allocate memory.</li>
-<li>LZMA_OPTIONS_ERROR: Unsupported flags</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a5f43c3a1035e5a226dcd298f4162b861" name="a5f43c3a1035e5a226dcd298f4162b861"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5f43c3a1035e5a226dcd298f4162b861">&#9670;&#160;</a></span>lzma_alone_decoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_alone_decoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t&#160;</td>
- <td class="paramname"><em>memlimit</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize .lzma decoder (legacy file format) </p>
-<p>Valid `action' arguments to <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN and LZMA_FINISH. There is no need to use LZMA_FINISH, but it's allowed because it may simplify certain types of applications.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">memlimit</td><td>Memory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a97689f5709e0db1e2dac450f5ce4e5eb" name="a97689f5709e0db1e2dac450f5ce4e5eb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a97689f5709e0db1e2dac450f5ce4e5eb">&#9670;&#160;</a></span>lzma_lzip_decoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_lzip_decoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t&#160;</td>
- <td class="paramname"><em>memlimit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>flags</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize .lz (lzip) decoder (a foreign file format) </p>
-<p>This decoder supports the .lz format version 0 and the unextended .lz format version 1:</p>
-<ul>
-<li>Files in the format version 0 were produced by lzip 1.3 and older. Such files aren't common but may be found from file archives as a few source packages were released in this format. People might have old personal files in this format too. Decompression support for the format version 0 was removed in lzip 1.18.</li>
-<li>lzip 1.3 added decompression support for .lz format version 1 files. Compression support was added in lzip 1.4. In lzip 1.6 the .lz format version 1 was extended to support the Sync Flush marker. This extension is not supported by liblzma. <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> will return LZMA_DATA_ERROR at the location of the Sync Flush marker. In practice files with the Sync Flush marker are very rare and thus liblzma can decompress almost all .lz files.</li>
-</ul>
-<p>Just like with <a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0" title="Initialize .xz Stream decoder.">lzma_stream_decoder()</a> for .xz files, LZMA_CONCATENATED should be used when decompressing normal standalone .lz files.</p>
-<p>The .lz format allows putting non-.lz data at the end of a file after at least one valid .lz member. That is, one can append custom data at the end of a .lz file and the decoder is required to ignore it. In liblzma this is relevant only when LZMA_CONCATENATED is used. In that case <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> will return LZMA_STREAM_END and leave <a class="el" href="structlzma__stream.html#a72fdc738c793f07a5c29715aa57802cf">lzma_stream.next_in</a> pointing to the first byte of the non-.lz data. An exception to this is if the first 1-3 bytes of the non-.lz data are identical to the .lz magic bytes (0x4C, 0x5A, 0x49, 0x50; "LZIP" in US-ASCII). In such a case the 1-3 bytes will have been ignored by <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>. If one wishes to locate the non-.lz data reliably, one must ensure that the first byte isn't 0x4C. Actually one should ensure that none of the first four bytes of trailing data are equal to the magic bytes because lzip &gt;= 1.20 requires it by default.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">memlimit</td><td>Memory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter. </td></tr>
- <tr><td class="paramname">flags</td><td>Bitwise-or of flags, or zero for no flags. All decoder flags listed above are supported although only LZMA_CONCATENATED and (in very rare cases) LZMA_IGNORE_CHECK are actually useful. LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, and LZMA_FAIL_FAST do nothing. LZMA_TELL_ANY_CHECK is supported for consistency only as CRC32 is always used in the .lz format.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Initialization was successful.</li>
-<li>LZMA_MEM_ERROR: Cannot allocate memory.</li>
-<li>LZMA_OPTIONS_ERROR: Unsupported flags</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="aa58f237f6cea97ef0eb9bf5c37a3008d" name="aa58f237f6cea97ef0eb9bf5c37a3008d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa58f237f6cea97ef0eb9bf5c37a3008d">&#9670;&#160;</a></span>lzma_stream_buffer_decode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_buffer_decode </td>
- <td>(</td>
- <td class="paramtype">uint64_t *&#160;</td>
- <td class="paramname"><em>memlimit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>flags</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>in_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>in_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>out_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>out_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-call .xz Stream decoder. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">memlimit</td><td>Pointer to how much memory the decoder is allowed to allocate. The value pointed by this pointer is modified if and only if LZMA_MEMLIMIT_ERROR is returned. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">flags</td><td>Bitwise-or of zero or more of the decoder flags: LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, LZMA_IGNORE_CHECK, LZMA_CONCATENATED, LZMA_FAIL_FAST. Note that LZMA_TELL_ANY_CHECK is not allowed and will return LZMA_PROG_ERROR. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_pos</td><td>The next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer; the first byte that won't be read is in[in_size]. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if decoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Decoding was successful.</li>
-<li>LZMA_FORMAT_ERROR</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_DATA_ERROR</li>
-<li>LZMA_NO_CHECK: This can be returned only if using the LZMA_TELL_NO_CHECK flag.</li>
-<li>LZMA_UNSUPPORTED_CHECK: This can be returned only if using the LZMA_TELL_UNSUPPORTED_CHECK flag.</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_MEMLIMIT_ERROR: Memory usage limit was reached. The minimum required memlimit value was stored to *memlimit.</li>
-<li>LZMA_BUF_ERROR: Output buffer was too small.</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="aa8372dae3e7c907c36f7bb5426aeacdf" name="aa8372dae3e7c907c36f7bb5426aeacdf"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa8372dae3e7c907c36f7bb5426aeacdf">&#9670;&#160;</a></span>lzma_microlzma_decoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_microlzma_decoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t&#160;</td>
- <td class="paramname"><em>comp_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t&#160;</td>
- <td class="paramname"><em>uncomp_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td>
- <td class="paramname"><em>uncomp_size_is_exact</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>dict_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>MicroLZMA decoder. </p>
-<p>See <a class="el" href="container_8h.html#abfc8f11acf837b167aa94b7071b54c30" title="MicroLZMA encoder.">lzma_microlzma_encoder()</a> for more information.</p>
-<p>The <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> usage with this decoder is completely normal. The special behavior of <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> applies to <a class="el" href="container_8h.html#abfc8f11acf837b167aa94b7071b54c30" title="MicroLZMA encoder.">lzma_microlzma_encoder()</a> only.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">comp_size</td><td>Compressed size of the MicroLZMA stream. The caller must somehow know this exactly. </td></tr>
- <tr><td class="paramname">uncomp_size</td><td>Uncompressed size of the MicroLZMA stream. If the exact uncompressed size isn't known, this can be set to a value that is at most as big as the exact uncompressed size would be, but then the next argument uncomp_size_is_exact must be false. </td></tr>
- <tr><td class="paramname">uncomp_size_is_exact</td><td>If true, uncomp_size must be exactly correct. This will improve error detection at the end of the stream. If the exact uncompressed size isn't known, this must be false. uncomp_size must still be at most as big as the exact uncompressed size is. Setting this to false when the exact size is known will work but error detection at the end of the stream will be weaker. </td></tr>
- <tr><td class="paramname">dict_size</td><td>LZMA dictionary size that was used when compressing the data. It is OK to use a bigger value too but liblzma will then allocate more memory than would actually be required and error detection will be slightly worse. (Note that with the implementation in XZ Embedded it doesn't affect the memory usage if one specifies bigger dictionary than actually required.)</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/delta_8h.html b/doc/api/delta_8h.html
deleted file mode 100644
index dd64be2..0000000
--- a/doc/api/delta_8h.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/delta.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> &#124;
-<a href="#define-members">Macros</a> &#124;
-<a href="#enum-members">Enumerations</a> </div>
- <div class="headertitle"><div class="title">delta.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Delta filter.
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__delta.html">lzma_options_delta</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options for the Delta filter. <a href="structlzma__options__delta.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a7ced67235ad7a01ae31d32ecf1e634cb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="delta_8h.html#a7ced67235ad7a01ae31d32ecf1e634cb">LZMA_FILTER_DELTA</a>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x03)</td></tr>
-<tr class="memdesc:a7ced67235ad7a01ae31d32ecf1e634cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter ID. <br /></td></tr>
-<tr class="separator:a7ced67235ad7a01ae31d32ecf1e634cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a466886d9d01392f61bdf267687a4f96e"><td class="memItemLeft" align="right" valign="top"><a id="a466886d9d01392f61bdf267687a4f96e" name="a466886d9d01392f61bdf267687a4f96e"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_DELTA_DIST_MIN</b>&#160;&#160;&#160;1</td></tr>
-<tr class="memdesc:a466886d9d01392f61bdf267687a4f96e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum value for <a class="el" href="structlzma__options__delta.html#a31b4b0b5a2462cb9433c2663b8a62790" title="Delta distance.">lzma_options_delta.dist</a>. <br /></td></tr>
-<tr class="separator:a466886d9d01392f61bdf267687a4f96e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afdf8a5ce184ddf9f8070de637775da94"><td class="memItemLeft" align="right" valign="top"><a id="afdf8a5ce184ddf9f8070de637775da94" name="afdf8a5ce184ddf9f8070de637775da94"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_DELTA_DIST_MAX</b>&#160;&#160;&#160;256</td></tr>
-<tr class="memdesc:afdf8a5ce184ddf9f8070de637775da94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum value for <a class="el" href="structlzma__options__delta.html#a31b4b0b5a2462cb9433c2663b8a62790" title="Delta distance.">lzma_options_delta.dist</a>. <br /></td></tr>
-<tr class="separator:afdf8a5ce184ddf9f8070de637775da94"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:a04d84d7fa6cefdc219b6e2e96ff36fe1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">lzma_delta_type</a> { <b>LZMA_DELTA_TYPE_BYTE</b>
- }</td></tr>
-<tr class="memdesc:a04d84d7fa6cefdc219b6e2e96ff36fe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the delta calculation. <a href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">More...</a><br /></td></tr>
-<tr class="separator:a04d84d7fa6cefdc219b6e2e96ff36fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Delta filter. </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="a7ced67235ad7a01ae31d32ecf1e634cb" name="a7ced67235ad7a01ae31d32ecf1e634cb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7ced67235ad7a01ae31d32ecf1e634cb">&#9670;&#160;</a></span>LZMA_FILTER_DELTA</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_FILTER_DELTA&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x03)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Filter ID. </p>
-<p>Filter ID of the Delta filter. This is used as <a class="el" href="structlzma__filter.html#aef1d9709759f39e61db77547b2326929" title="Filter ID.">lzma_filter.id</a>. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a id="a04d84d7fa6cefdc219b6e2e96ff36fe1" name="a04d84d7fa6cefdc219b6e2e96ff36fe1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a04d84d7fa6cefdc219b6e2e96ff36fe1">&#9670;&#160;</a></span>lzma_delta_type</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">lzma_delta_type</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Type of the delta calculation. </p>
-<p>Currently only byte-wise delta is supported. Other possible types could be, for example, delta of 16/32/64-bit little/big endian integers, but these are not currently planned since byte-wise delta is almost as good. </p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html b/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html
deleted file mode 100644
index ff360ae..0000000
--- a/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle"><div class="title">lzma Directory Reference</div></div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
-Files</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html">base.h</a></td></tr>
-<tr class="memdesc:base_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data types and functions used in many places in liblzma API. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bcj_8h.html">bcj.h</a></td></tr>
-<tr class="memdesc:bcj_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Branch/Call/Jump conversion filters. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html">block.h</a></td></tr>
-<tr class="memdesc:block_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">.xz Block handling <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html">check.h</a></td></tr>
-<tr class="memdesc:check_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integrity checks. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html">container.h</a></td></tr>
-<tr class="memdesc:container_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">File formats. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="delta_8h.html">delta.h</a></td></tr>
-<tr class="memdesc:delta_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delta filter. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html">filter.h</a></td></tr>
-<tr class="memdesc:filter_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common filter related types and functions. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hardware_8h.html">hardware.h</a></td></tr>
-<tr class="memdesc:hardware_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware information. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html">index.h</a></td></tr>
-<tr class="memdesc:index_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handling of .xz Index and related information. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index__hash_8h.html">index_hash.h</a></td></tr>
-<tr class="memdesc:index__hash_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate Index by using a hash function. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html">lzma12.h</a></td></tr>
-<tr class="memdesc:lzma12_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">LZMA1 and LZMA2 filters. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html">stream_flags.h</a></td></tr>
-<tr class="memdesc:stream__flags_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">.xz Stream Header and Stream Footer encoder and decoder <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="version_8h.html">version.h</a></td></tr>
-<tr class="memdesc:version_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version number. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html">vli.h</a></td></tr>
-<tr class="memdesc:vli_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Variable-length integer handling. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/doc.svg b/doc/api/doc.svg
deleted file mode 100644
index 296728b..0000000
--- a/doc/api/doc.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" width="16" height="24" viewBox="0 0 80 60" id="doc" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
-<g style="fill:#195794">
-<path d="m 14,-1.1445312 c -2.824372,0 -5.1445313,2.320159 -5.1445312,5.1445312 v 72 c 0,2.824372 2.3201592,5.144531 5.1445312,5.144531 h 52 c 2.824372,0 5.144531,-2.320159 5.144531,-5.144531 V 23.699219 a 1.1447968,1.1447968 0 0 0 -0.01563,-0.1875 C 70.977847,22.605363 70.406495,21.99048 70.007812,21.591797 L 48.208984,-0.20898438 C 47.606104,-0.81186474 46.804652,-1.1445313 46,-1.1445312 Z m 1.144531,6.2890624 H 42.855469 V 24 c 0,1.724372 1.420159,3.144531 3.144531,3.144531 H 64.855469 V 74.855469 H 15.144531 Z m 34,4.4179688 L 60.4375,20.855469 H 49.144531 Z"/>
-</g>
-<g style="fill:#BFD9F4;stroke-width:0">
-<path d="M 3.0307167,13.993174 V 7.0307167 h 2.7576792 2.7576792 v 1.8826151 c 0,1.2578262 0.0099,1.9287572 0.029818,2.0216512 0.03884,0.181105 0.168631,0.348218 0.33827,0.43554 l 0.1355017,0.06975 1.9598092,0.0079 1.959809,0.0078 v 4.749829 4.749829 H 8 3.0307167 Z" transform="matrix(5,0,0,5,0,-30)" />
-<path d="M 9.8293515,9.0581469 V 7.9456453 l 1.1058025,1.1055492 c 0.608191,0.6080521 1.105802,1.1086775 1.105802,1.1125015 0,0.0038 -0.497611,0.007 -1.105802,0.007 H 9.8293515 Z" transform="matrix(5,0,0,5,0,-30)" />
-</g>
-</svg>
diff --git a/doc/api/docd.svg b/doc/api/docd.svg
deleted file mode 100644
index 65cf4b5..0000000
--- a/doc/api/docd.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" width="16" height="24" viewBox="0 0 80 60" id="doc" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
-<g style="fill:#A0C7EE">
-<path d="m 14,-1.1445312 c -2.824372,0 -5.1445313,2.320159 -5.1445312,5.1445312 v 72 c 0,2.824372 2.3201592,5.144531 5.1445312,5.144531 h 52 c 2.824372,0 5.144531,-2.320159 5.144531,-5.144531 V 23.699219 a 1.1447968,1.1447968 0 0 0 -0.01563,-0.1875 C 70.977847,22.605363 70.406495,21.99048 70.007812,21.591797 L 48.208984,-0.20898438 C 47.606104,-0.81186474 46.804652,-1.1445313 46,-1.1445312 Z m 1.144531,6.2890624 H 42.855469 V 24 c 0,1.724372 1.420159,3.144531 3.144531,3.144531 H 64.855469 V 74.855469 H 15.144531 Z m 34,4.4179688 L 60.4375,20.855469 H 49.144531 Z"/>
-</g>
-<g style="fill:#195794;stroke-width:0">
-<path d="M 3.0307167,13.993174 V 7.0307167 h 2.7576792 2.7576792 v 1.8826151 c 0,1.2578262 0.0099,1.9287572 0.029818,2.0216512 0.03884,0.181105 0.168631,0.348218 0.33827,0.43554 l 0.1355017,0.06975 1.9598092,0.0079 1.959809,0.0078 v 4.749829 4.749829 H 8 3.0307167 Z" transform="matrix(5,0,0,5,0,-30)" />
-<path d="M 9.8293515,9.0581469 V 7.9456453 l 1.1058025,1.1055492 c 0.608191,0.6080521 1.105802,1.1086775 1.105802,1.1125015 0,0.0038 -0.497611,0.007 -1.105802,0.007 H 9.8293515 Z" transform="matrix(5,0,0,5,0,-30)" />
-</g>
-</svg>
diff --git a/doc/api/doxygen.css b/doc/api/doxygen.css
deleted file mode 100644
index 6ce2813..0000000
--- a/doc/api/doxygen.css
+++ /dev/null
@@ -1,2017 +0,0 @@
-/* The standard CSS for doxygen 1.9.7*/
-
-html {
-/* page base colors */
---page-background-color: white;
---page-foreground-color: black;
---page-link-color: #144779;
---page-visited-link-color: #195794;
-
-/* index */
---index-odd-item-bg-color: #F3F8FD;
---index-even-item-bg-color: white;
---index-header-color: black;
---index-separator-color: #A0A0A0;
-
-/* header */
---header-background-color: #F5F9FD;
---header-separator-color: #A0C7EE;
---header-gradient-image: url('nav_h.png');
---group-header-separator-color: #4491DE;
---group-header-color: #113B65;
---inherit-header-color: gray;
-
---footer-foreground-color: #0C2B4A;
---footer-logo-width: 104px;
---citation-label-color: #10375F;
---glow-color: cyan;
-
---title-background-color: white;
---title-separator-color: #1E67AF;
---directory-separator-color: #62A3E4;
---separator-color: #1B5D9E;
-
---blockquote-background-color: #F1F7FC;
---blockquote-border-color: #62A3E4;
-
---scrollbar-thumb-color: #62A3E4;
---scrollbar-background-color: #F5F9FD;
-
---icon-background-color: #257FD9;
---icon-foreground-color: white;
---icon-doc-image: url('doc.svg');
---icon-folder-open-image: url('folderopen.svg');
---icon-folder-closed-image: url('folderclosed.svg');
-
-/* brief member declaration list */
---memdecl-background-color: #F5F9FD;
---memdecl-separator-color: #C8DFF5;
---memdecl-foreground-color: #555;
---memdecl-template-color: #195794;
-
-/* detailed member list */
---memdef-border-color: #74ADE7;
---memdef-title-background-color: #D0E3F6;
---memdef-title-gradient-image: url('nav_f.png');
---memdef-proto-background-color: #CAE0F5;
---memdef-proto-text-color: #0A233D;
---memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
---memdef-doc-background-color: white;
---memdef-param-name-color: #602020;
---memdef-template-color: #195794;
-
-/* tables */
---table-cell-border-color: #0D2F50;
---table-header-background-color: #123E6A;
---table-header-foreground-color: #FFFFFF;
-
-/* labels */
---label-background-color: #257FD9;
---label-left-top-border-color: #1E67AF;
---label-right-bottom-border-color: #A0C7EE;
---label-foreground-color: white;
-
-/** navigation bar/tree/menu */
---nav-background-color: #F5F9FD;
---nav-foreground-color: #113C67;
---nav-gradient-image: url('tab_b.png');
---nav-gradient-hover-image: url('tab_h.png');
---nav-gradient-active-image: url('tab_a.png');
---nav-gradient-active-image-parent: url("../tab_a.png");
---nav-separator-image: url('tab_s.png');
---nav-breadcrumb-image: url('bc_s.png');
---nav-breadcrumb-border-color: #9CC5EE;
---nav-splitbar-image: url('splitbar.png');
---nav-font-size-level1: 13px;
---nav-font-size-level2: 10px;
---nav-font-size-level3: 9px;
---nav-text-normal-color: #0B2845;
---nav-text-hover-color: white;
---nav-text-active-color: white;
---nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
---nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
---nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
---nav-menu-button-color: #113C67;
---nav-menu-background-color: white;
---nav-menu-foreground-color: #555555;
---nav-menu-toggle-color: rgba(255, 255, 255, 0.5);
---nav-arrow-color: #62A3E4;
---nav-arrow-selected-color: #62A3E4;
-
-/* table of contents */
---toc-background-color: #EEF5FC;
---toc-border-color: #BFD9F4;
---toc-header-color: #195794;
---toc-down-arrow-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='10px' width='5px' fill='grey'><text x='0' y='5' font-size='10'>&%238595;</text></svg>");
-
-/** search field */
---search-background-color: white;
---search-foreground-color: #909090;
---search-magnification-image: url('mag.svg');
---search-magnification-select-image: url('mag_sel.svg');
---search-active-color: black;
---search-filter-background-color: #F5F9FD;
---search-filter-foreground-color: black;
---search-filter-border-color: #5098E0;
---search-filter-highlight-text-color: white;
---search-filter-highlight-bg-color: #144779;
---search-results-foreground-color: #174F86;
---search-results-background-color: #E2EEFA;
---search-results-border-color: black;
---search-box-shadow: inset 0.5px 0.5px 3px 0px #555;
-
-/** code fragments */
---code-keyword-color: #008000;
---code-type-keyword-color: #604020;
---code-flow-keyword-color: #E08000;
---code-comment-color: #800000;
---code-preprocessor-color: #806020;
---code-string-literal-color: #002080;
---code-char-literal-color: #008080;
---code-xml-cdata-color: black;
---code-vhdl-digit-color: #FF00FF;
---code-vhdl-char-color: #000000;
---code-vhdl-keyword-color: #700070;
---code-vhdl-logic-color: #FF0000;
---code-link-color: #195794;
---code-external-link-color: #195794;
---fragment-foreground-color: black;
---fragment-background-color: #F9FBFE;
---fragment-border-color: #A0C7EE;
---fragment-lineno-border-color: #00FF00;
---fragment-lineno-background-color: #E8E8E8;
---fragment-lineno-foreground-color: black;
---fragment-lineno-link-fg-color: #195794;
---fragment-lineno-link-bg-color: #D8D8D8;
---fragment-lineno-link-hover-fg-color: #195794;
---fragment-lineno-link-hover-bg-color: #C8C8C8;
---tooltip-foreground-color: black;
---tooltip-background-color: white;
---tooltip-border-color: gray;
---tooltip-doc-color: grey;
---tooltip-declaration-color: #006318;
---tooltip-link-color: #195794;
---tooltip-shadow: 1px 1px 7px gray;
-
-/** font-family */
---font-family-normal: Roboto,sans-serif;
---font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed;
---font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
---font-family-title: Tahoma,Arial,sans-serif;
---font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif;
---font-family-search: Arial,Verdana,sans-serif;
---font-family-icon: Arial,Helvetica;
---font-family-tooltip: Roboto,sans-serif;
-
-}
-
-@media (prefers-color-scheme: dark) {
- html:not(.dark-mode) {
- color-scheme: dark;
-
-/* page base colors */
---page-background-color: black;
---page-foreground-color: #C9D1D9;
---page-link-color: #5098E0;
---page-visited-link-color: #6DA9E5;
-
-/* index */
---index-odd-item-bg-color: #02070C;
---index-even-item-bg-color: black;
---index-header-color: #A0C7EE;
---index-separator-color: #10375F;
-
-/* header */
---header-background-color: #010407;
---header-separator-color: #040F1A;
---header-gradient-image: url('nav_hd.png');
---group-header-separator-color: #0B2845;
---group-header-color: #5098E0;
---inherit-header-color: #A0A0A0;
-
---footer-foreground-color: #206DBA;
---footer-logo-width: 60px;
---citation-label-color: #5098E0;
---glow-color: cyan;
-
---title-background-color: #010509;
---title-separator-color: #113A63;
---directory-separator-color: #0B2845;
---separator-color: #0B2845;
-
---blockquote-background-color: #030C14;
---blockquote-border-color: #0B2845;
-
---scrollbar-thumb-color: #0B2845;
---scrollbar-background-color: #010407;
-
---icon-background-color: #10375F;
---icon-foreground-color: #A0C7EE;
---icon-doc-image: url('docd.svg');
---icon-folder-open-image: url('folderopend.svg');
---icon-folder-closed-image: url('folderclosedd.svg');
-
-/* brief member declaration list */
---memdecl-background-color: #02070C;
---memdecl-separator-color: #0D2D4D;
---memdecl-foreground-color: #BBB;
---memdecl-template-color: #3488DC;
-
-/* detailed member list */
---memdef-border-color: #092138;
---memdef-title-background-color: #071829;
---memdef-title-gradient-image: url('nav_fd.png');
---memdef-proto-background-color: #061524;
---memdef-proto-text-color: #64A4E4;
---memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9);
---memdef-doc-background-color: black;
---memdef-param-name-color: #D28757;
---memdef-template-color: #3488DC;
-
-/* tables */
---table-cell-border-color: #0B2845;
---table-header-background-color: #0B2845;
---table-header-foreground-color: #A0C7EE;
-
-/* labels */
---label-background-color: #113B65;
---label-left-top-border-color: #195794;
---label-right-bottom-border-color: #0B2845;
---label-foreground-color: #CCCCCC;
-
-/** navigation bar/tree/menu */
---nav-background-color: #030C14;
---nav-foreground-color: #113C67;
---nav-gradient-image: url('tab_bd.png');
---nav-gradient-hover-image: url('tab_hd.png');
---nav-gradient-active-image: url('tab_ad.png');
---nav-gradient-active-image-parent: url("../tab_ad.png");
---nav-separator-image: url('tab_sd.png');
---nav-breadcrumb-image: url('bc_sd.png');
---nav-breadcrumb-border-color: #0C2B4A;
---nav-splitbar-image: url('splitbard.png');
---nav-font-size-level1: 13px;
---nav-font-size-level2: 10px;
---nav-font-size-level3: 9px;
---nav-text-normal-color: #8ABAEA;
---nav-text-hover-color: #C5DDF5;
---nav-text-active-color: #C5DDF5;
---nav-text-normal-shadow: 0px 1px 1px black;
---nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
---nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
---nav-menu-button-color: #8ABAEA;
---nav-menu-background-color: #000204;
---nav-menu-foreground-color: #BBBBBB;
---nav-menu-toggle-color: rgba(255, 255, 255, 0.2);
---nav-arrow-color: #10375F;
---nav-arrow-selected-color: #5098E0;
-
-/* table of contents */
---toc-background-color: #04101B;
---toc-border-color: #081D32;
---toc-header-color: #6DA9E5;
---toc-down-arrow-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='10px' width='5px'><text x='0' y='5' font-size='10' fill='grey'>&%238595;</text></svg>");
-
-/** search field */
---search-background-color: black;
---search-foreground-color: #C5C5C5;
---search-magnification-image: url('mag_d.svg');
---search-magnification-select-image: url('mag_seld.svg');
---search-active-color: #C5C5C5;
---search-filter-background-color: #030C14;
---search-filter-foreground-color: #5098E0;
---search-filter-border-color: #3488DC;
---search-filter-highlight-text-color: #93BFEC;
---search-filter-highlight-bg-color: #0B2845;
---search-results-background-color: #030C14;
---search-results-foreground-color: #5098E0;
---search-results-border-color: #3488DC;
---search-box-shadow: inset 0.5px 0.5px 3px 0px #0E3255;
-
-/** code fragments */
---code-keyword-color: #CC99CD;
---code-type-keyword-color: #AB99CD;
---code-flow-keyword-color: #E08000;
---code-comment-color: #717790;
---code-preprocessor-color: #65CABE;
---code-string-literal-color: #7EC699;
---code-char-literal-color: #00E0F0;
---code-xml-cdata-color: #C9D1D9;
---code-vhdl-digit-color: #FF00FF;
---code-vhdl-char-color: #000000;
---code-vhdl-keyword-color: #700070;
---code-vhdl-logic-color: #FF0000;
---code-link-color: #79C0FF;
---code-external-link-color: #79C0FF;
---fragment-foreground-color: #C9D1D9;
---fragment-background-color: black;
---fragment-border-color: #30363D;
---fragment-lineno-border-color: #30363D;
---fragment-lineno-background-color: black;
---fragment-lineno-foreground-color: #6E7681;
---fragment-lineno-link-fg-color: #6E7681;
---fragment-lineno-link-bg-color: #303030;
---fragment-lineno-link-hover-fg-color: #8E96A1;
---fragment-lineno-link-hover-bg-color: #505050;
---tooltip-foreground-color: #C9D1D9;
---tooltip-background-color: #202020;
---tooltip-border-color: #C9D1D9;
---tooltip-doc-color: #D9E1E9;
---tooltip-declaration-color: #20C348;
---tooltip-link-color: #79C0FF;
---tooltip-shadow: none;
-
-/** font-family */
---font-family-normal: Roboto,sans-serif;
---font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed;
---font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
---font-family-title: Tahoma,Arial,sans-serif;
---font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif;
---font-family-search: Arial,Verdana,sans-serif;
---font-family-icon: Arial,Helvetica;
---font-family-tooltip: Roboto,sans-serif;
-
-}}
-body {
- background-color: var(--page-background-color);
- color: var(--page-foreground-color);
-}
-
-body, table, div, p, dl {
- font-weight: 400;
- font-size: 14px;
- font-family: var(--font-family-normal);
- line-height: 22px;
-}
-
-/* @group Heading Levels */
-
-.title {
- font-weight: 400;
- font-size: 14px;
- font-family: var(--font-family-normal);
- line-height: 28px;
- font-size: 150%;
- font-weight: bold;
- margin: 10px 2px;
-}
-
-h1.groupheader {
- font-size: 150%;
-}
-
-h2.groupheader {
- border-bottom: 1px solid var(--group-header-separator-color);
- color: var(--group-header-color);
- font-size: 150%;
- font-weight: normal;
- margin-top: 1.75em;
- padding-top: 8px;
- padding-bottom: 4px;
- width: 100%;
-}
-
-h3.groupheader {
- font-size: 100%;
-}
-
-h1, h2, h3, h4, h5, h6 {
- -webkit-transition: text-shadow 0.5s linear;
- -moz-transition: text-shadow 0.5s linear;
- -ms-transition: text-shadow 0.5s linear;
- -o-transition: text-shadow 0.5s linear;
- transition: text-shadow 0.5s linear;
- margin-right: 15px;
-}
-
-h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
- text-shadow: 0 0 15px var(--glow-color);
-}
-
-dt {
- font-weight: bold;
-}
-
-p.startli, p.startdd {
- margin-top: 2px;
-}
-
-th p.starttd, th p.intertd, th p.endtd {
- font-size: 100%;
- font-weight: 700;
-}
-
-p.starttd {
- margin-top: 0px;
-}
-
-p.endli {
- margin-bottom: 0px;
-}
-
-p.enddd {
- margin-bottom: 4px;
-}
-
-p.endtd {
- margin-bottom: 2px;
-}
-
-p.interli {
-}
-
-p.interdd {
-}
-
-p.intertd {
-}
-
-/* @end */
-
-caption {
- font-weight: bold;
-}
-
-span.legend {
- font-size: 70%;
- text-align: center;
-}
-
-h3.version {
- font-size: 90%;
- text-align: center;
-}
-
-div.navtab {
- padding-right: 15px;
- text-align: right;
- line-height: 110%;
-}
-
-div.navtab table {
- border-spacing: 0;
-}
-
-td.navtab {
- padding-right: 6px;
- padding-left: 6px;
-}
-
-td.navtabHL {
- background-image: var(--nav-gradient-active-image);
- background-repeat:repeat-x;
- padding-right: 6px;
- padding-left: 6px;
-}
-
-td.navtabHL a, td.navtabHL a:visited {
- color: var(--nav-text-hover-color);
- text-shadow: var(--nav-text-hover-shadow);
-}
-
-a.navtab {
- font-weight: bold;
-}
-
-div.qindex{
- text-align: center;
- width: 100%;
- line-height: 140%;
- font-size: 130%;
- color: var(--index-separator-color);
-}
-
-dt.alphachar{
- font-size: 180%;
- font-weight: bold;
-}
-
-.alphachar a{
- color: var(--index-header-color);
-}
-
-.alphachar a:hover, .alphachar a:visited{
- text-decoration: none;
-}
-
-.classindex dl {
- padding: 25px;
- column-count:1
-}
-
-.classindex dd {
- display:inline-block;
- margin-left: 50px;
- width: 90%;
- line-height: 1.15em;
-}
-
-.classindex dl.even {
- background-color: var(--index-even-item-bg-color);
-}
-
-.classindex dl.odd {
- background-color: var(--index-odd-item-bg-color);
-}
-
-@media(min-width: 1120px) {
- .classindex dl {
- column-count:2
- }
-}
-
-@media(min-width: 1320px) {
- .classindex dl {
- column-count:3
- }
-}
-
-
-/* @group Link Styling */
-
-a {
- color: var(--page-link-color);
- font-weight: normal;
- text-decoration: none;
-}
-
-.contents a:visited {
- color: var(--page-visited-link-color);
-}
-
-a:hover {
- text-decoration: underline;
-}
-
-a.el {
- font-weight: bold;
-}
-
-a.elRef {
-}
-
-a.code, a.code:visited, a.line, a.line:visited {
- color: var(--code-link-color);
-}
-
-a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
- color: var(--code-external-link-color);
-}
-
-a.code.hl_class { /* style for links to class names in code snippets */ }
-a.code.hl_struct { /* style for links to struct names in code snippets */ }
-a.code.hl_union { /* style for links to union names in code snippets */ }
-a.code.hl_interface { /* style for links to interface names in code snippets */ }
-a.code.hl_protocol { /* style for links to protocol names in code snippets */ }
-a.code.hl_category { /* style for links to category names in code snippets */ }
-a.code.hl_exception { /* style for links to exception names in code snippets */ }
-a.code.hl_service { /* style for links to service names in code snippets */ }
-a.code.hl_singleton { /* style for links to singleton names in code snippets */ }
-a.code.hl_concept { /* style for links to concept names in code snippets */ }
-a.code.hl_namespace { /* style for links to namespace names in code snippets */ }
-a.code.hl_package { /* style for links to package names in code snippets */ }
-a.code.hl_define { /* style for links to macro names in code snippets */ }
-a.code.hl_function { /* style for links to function names in code snippets */ }
-a.code.hl_variable { /* style for links to variable names in code snippets */ }
-a.code.hl_typedef { /* style for links to typedef names in code snippets */ }
-a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }
-a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }
-a.code.hl_signal { /* style for links to Qt signal names in code snippets */ }
-a.code.hl_slot { /* style for links to Qt slot names in code snippets */ }
-a.code.hl_friend { /* style for links to friend names in code snippets */ }
-a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }
-a.code.hl_property { /* style for links to property names in code snippets */ }
-a.code.hl_event { /* style for links to event names in code snippets */ }
-a.code.hl_sequence { /* style for links to sequence names in code snippets */ }
-a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ }
-
-/* @end */
-
-dl.el {
- margin-left: -1cm;
-}
-
-ul {
- overflow: visible;
-}
-
-ul.multicol {
- -moz-column-gap: 1em;
- -webkit-column-gap: 1em;
- column-gap: 1em;
- -moz-column-count: 3;
- -webkit-column-count: 3;
- column-count: 3;
- list-style-type: none;
-}
-
-#side-nav ul {
- overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
-}
-
-#main-nav ul {
- overflow: visible; /* reset ul rule for the navigation bar drop down lists */
-}
-
-.fragment {
- text-align: left;
- direction: ltr;
- overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
- overflow-y: hidden;
-}
-
-pre.fragment {
- border: 1px solid var(--fragment-border-color);
- background-color: var(--fragment-background-color);
- color: var(--fragment-foreground-color);
- padding: 4px 6px;
- margin: 4px 8px 4px 2px;
- overflow: auto;
- word-wrap: break-word;
- font-size: 9pt;
- line-height: 125%;
- font-family: var(--font-family-monospace);
- font-size: 105%;
-}
-
-div.fragment {
- padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
- margin: 4px 8px 4px 2px;
- color: var(--fragment-foreground-color);
- background-color: var(--fragment-background-color);
- border: 1px solid var(--fragment-border-color);
-}
-
-div.line {
- font-family: var(--font-family-monospace);
- font-size: 13px;
- min-height: 13px;
- line-height: 1.2;
- text-wrap: unrestricted;
- white-space: -moz-pre-wrap; /* Moz */
- white-space: -pre-wrap; /* Opera 4-6 */
- white-space: -o-pre-wrap; /* Opera 7 */
- white-space: pre-wrap; /* CSS3 */
- word-wrap: break-word; /* IE 5.5+ */
- text-indent: -53px;
- padding-left: 53px;
- padding-bottom: 0px;
- margin: 0px;
- -webkit-transition-property: background-color, box-shadow;
- -webkit-transition-duration: 0.5s;
- -moz-transition-property: background-color, box-shadow;
- -moz-transition-duration: 0.5s;
- -ms-transition-property: background-color, box-shadow;
- -ms-transition-duration: 0.5s;
- -o-transition-property: background-color, box-shadow;
- -o-transition-duration: 0.5s;
- transition-property: background-color, box-shadow;
- transition-duration: 0.5s;
-}
-
-div.line:after {
- content:"\000A";
- white-space: pre;
-}
-
-div.line.glow {
- background-color: var(--glow-color);
- box-shadow: 0 0 10px var(--glow-color);
-}
-
-
-span.lineno {
- padding-right: 4px;
- margin-right: 9px;
- text-align: right;
- border-right: 2px solid var(--fragment-lineno-border-color);
- color: var(--fragment-lineno-foreground-color);
- background-color: var(--fragment-lineno-background-color);
- white-space: pre;
-}
-span.lineno a, span.lineno a:visited {
- color: var(--fragment-lineno-link-fg-color);
- background-color: var(--fragment-lineno-link-bg-color);
-}
-
-span.lineno a:hover {
- color: var(--fragment-lineno-link-hover-fg-color);
- background-color: var(--fragment-lineno-link-hover-bg-color);
-}
-
-.lineno {
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-div.classindex ul {
- list-style: none;
- padding-left: 0;
-}
-
-div.classindex span.ai {
- display: inline-block;
-}
-
-div.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- font-weight: bold;
-}
-
-div.groupText {
- margin-left: 16px;
- font-style: italic;
-}
-
-body {
- color: var(--page-foreground-color);
- margin: 0;
-}
-
-div.contents {
- margin-top: 10px;
- margin-left: 12px;
- margin-right: 8px;
-}
-
-p.formulaDsp {
- text-align: center;
-}
-
-img.dark-mode-visible {
- display: none;
-}
-img.light-mode-visible {
- display: none;
-}
-
-img.formulaDsp {
-
-}
-
-img.formulaInl, img.inline {
- vertical-align: middle;
-}
-
-div.center {
- text-align: center;
- margin-top: 0px;
- margin-bottom: 0px;
- padding: 0px;
-}
-
-div.center img {
- border: 0px;
-}
-
-address.footer {
- text-align: right;
- padding-right: 12px;
-}
-
-img.footer {
- border: 0px;
- vertical-align: middle;
- width: var(--footer-logo-width);
-}
-
-.compoundTemplParams {
- color: var(--memdecl-template-color);
- font-size: 80%;
- line-height: 120%;
-}
-
-/* @group Code Colorization */
-
-span.keyword {
- color: var(--code-keyword-color);
-}
-
-span.keywordtype {
- color: var(--code-type-keyword-color);
-}
-
-span.keywordflow {
- color: var(--code-flow-keyword-color);
-}
-
-span.comment {
- color: var(--code-comment-color);
-}
-
-span.preprocessor {
- color: var(--code-preprocessor-color);
-}
-
-span.stringliteral {
- color: var(--code-string-literal-color);
-}
-
-span.charliteral {
- color: var(--code-char-literal-color);
-}
-
-span.xmlcdata {
- color: var(--code-xml-cdata-color);
-}
-
-span.vhdldigit {
- color: var(--code-vhdl-digit-color);
-}
-
-span.vhdlchar {
- color: var(--code-vhdl-char-color);
-}
-
-span.vhdlkeyword {
- color: var(--code-vhdl-keyword-color);
-}
-
-span.vhdllogic {
- color: var(--code-vhdl-logic-color);
-}
-
-blockquote {
- background-color: var(--blockquote-background-color);
- border-left: 2px solid var(--blockquote-border-color);
- margin: 0 24px 0 4px;
- padding: 0 12px 0 16px;
-}
-
-/* @end */
-
-td.tiny {
- font-size: 75%;
-}
-
-.dirtab {
- padding: 4px;
- border-collapse: collapse;
- border: 1px solid var(--table-cell-border-color);
-}
-
-th.dirtab {
- background-color: var(--table-header-background-color);
- color: var(--table-header-foreground-color);
- font-weight: bold;
-}
-
-hr {
- height: 0px;
- border: none;
- border-top: 1px solid var(--separator-color);
-}
-
-hr.footer {
- height: 1px;
-}
-
-/* @group Member Descriptions */
-
-table.memberdecls {
- border-spacing: 0px;
- padding: 0px;
-}
-
-.memberdecls td, .fieldtable tr {
- -webkit-transition-property: background-color, box-shadow;
- -webkit-transition-duration: 0.5s;
- -moz-transition-property: background-color, box-shadow;
- -moz-transition-duration: 0.5s;
- -ms-transition-property: background-color, box-shadow;
- -ms-transition-duration: 0.5s;
- -o-transition-property: background-color, box-shadow;
- -o-transition-duration: 0.5s;
- transition-property: background-color, box-shadow;
- transition-duration: 0.5s;
-}
-
-.memberdecls td.glow, .fieldtable tr.glow {
- background-color: var(--glow-color);
- box-shadow: 0 0 15px var(--glow-color);
-}
-
-.mdescLeft, .mdescRight,
-.memItemLeft, .memItemRight,
-.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
- background-color: var(--memdecl-background-color);
- border: none;
- margin: 4px;
- padding: 1px 0 0 8px;
-}
-
-.mdescLeft, .mdescRight {
- padding: 0px 8px 4px 8px;
- color: var(--memdecl-foreground-color);
-}
-
-.memSeparator {
- border-bottom: 1px solid var(--memdecl-separator-color);
- line-height: 1px;
- margin: 0px;
- padding: 0px;
-}
-
-.memItemLeft, .memTemplItemLeft {
- white-space: nowrap;
-}
-
-.memItemRight, .memTemplItemRight {
- width: 100%;
-}
-
-.memTemplParams {
- color: var(--memdecl-template-color);
- white-space: nowrap;
- font-size: 80%;
-}
-
-/* @end */
-
-/* @group Member Details */
-
-/* Styles for detailed member documentation */
-
-.memtitle {
- padding: 8px;
- border-top: 1px solid var(--memdef-border-color);
- border-left: 1px solid var(--memdef-border-color);
- border-right: 1px solid var(--memdef-border-color);
- border-top-right-radius: 4px;
- border-top-left-radius: 4px;
- margin-bottom: -1px;
- background-image: var(--memdef-title-gradient-image);
- background-repeat: repeat-x;
- background-color: var(--memdef-title-background-color);
- line-height: 1.25;
- font-weight: 300;
- float:left;
-}
-
-.permalink
-{
- font-size: 65%;
- display: inline-block;
- vertical-align: middle;
-}
-
-.memtemplate {
- font-size: 80%;
- color: var(--memdef-template-color);
- font-weight: normal;
- margin-left: 9px;
-}
-
-.mempage {
- width: 100%;
-}
-
-.memitem {
- padding: 0;
- margin-bottom: 10px;
- margin-right: 5px;
- -webkit-transition: box-shadow 0.5s linear;
- -moz-transition: box-shadow 0.5s linear;
- -ms-transition: box-shadow 0.5s linear;
- -o-transition: box-shadow 0.5s linear;
- transition: box-shadow 0.5s linear;
- display: table !important;
- width: 100%;
-}
-
-.memitem.glow {
- box-shadow: 0 0 15px var(--glow-color);
-}
-
-.memname {
- font-weight: 400;
- margin-left: 6px;
-}
-
-.memname td {
- vertical-align: bottom;
-}
-
-.memproto, dl.reflist dt {
- border-top: 1px solid var(--memdef-border-color);
- border-left: 1px solid var(--memdef-border-color);
- border-right: 1px solid var(--memdef-border-color);
- padding: 6px 0px 6px 0px;
- color: var(--memdef-proto-text-color);
- font-weight: bold;
- text-shadow: var(--memdef-proto-text-shadow);
- background-color: var(--memdef-proto-background-color);
- box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
- border-top-right-radius: 4px;
-}
-
-.overload {
- font-family: var(--font-family-monospace);
- font-size: 65%;
-}
-
-.memdoc, dl.reflist dd {
- border-bottom: 1px solid var(--memdef-border-color);
- border-left: 1px solid var(--memdef-border-color);
- border-right: 1px solid var(--memdef-border-color);
- padding: 6px 10px 2px 10px;
- border-top-width: 0;
- background-image:url('nav_g.png');
- background-repeat:repeat-x;
- background-color: var(--memdef-doc-background-color);
- /* opera specific markup */
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px;
- box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
- /* firefox specific markup */
- -moz-border-radius-bottomleft: 4px;
- -moz-border-radius-bottomright: 4px;
- -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
- /* webkit specific markup */
- -webkit-border-bottom-left-radius: 4px;
- -webkit-border-bottom-right-radius: 4px;
- -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-}
-
-dl.reflist dt {
- padding: 5px;
-}
-
-dl.reflist dd {
- margin: 0px 0px 10px 0px;
- padding: 5px;
-}
-
-.paramkey {
- text-align: right;
-}
-
-.paramtype {
- white-space: nowrap;
-}
-
-.paramname {
- color: var(--memdef-param-name-color);
- white-space: nowrap;
-}
-.paramname em {
- font-style: normal;
-}
-.paramname code {
- line-height: 14px;
-}
-
-.params, .retval, .exception, .tparams {
- margin-left: 0px;
- padding-left: 0px;
-}
-
-.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
- font-weight: bold;
- vertical-align: top;
-}
-
-.params .paramtype, .tparams .paramtype {
- font-style: italic;
- vertical-align: top;
-}
-
-.params .paramdir, .tparams .paramdir {
- font-family: var(--font-family-monospace);
- vertical-align: top;
-}
-
-table.mlabels {
- border-spacing: 0px;
-}
-
-td.mlabels-left {
- width: 100%;
- padding: 0px;
-}
-
-td.mlabels-right {
- vertical-align: bottom;
- padding: 0px;
- white-space: nowrap;
-}
-
-span.mlabels {
- margin-left: 8px;
-}
-
-span.mlabel {
- background-color: var(--label-background-color);
- border-top:1px solid var(--label-left-top-border-color);
- border-left:1px solid var(--label-left-top-border-color);
- border-right:1px solid var(--label-right-bottom-border-color);
- border-bottom:1px solid var(--label-right-bottom-border-color);
- text-shadow: none;
- color: var(--label-foreground-color);
- margin-right: 4px;
- padding: 2px 3px;
- border-radius: 3px;
- font-size: 7pt;
- white-space: nowrap;
- vertical-align: middle;
-}
-
-
-
-/* @end */
-
-/* these are for tree view inside a (index) page */
-
-div.directory {
- margin: 10px 0px;
- border-top: 1px solid var(--directory-separator-color);
- border-bottom: 1px solid var(--directory-separator-color);
- width: 100%;
-}
-
-.directory table {
- border-collapse:collapse;
-}
-
-.directory td {
- margin: 0px;
- padding: 0px;
- vertical-align: top;
-}
-
-.directory td.entry {
- white-space: nowrap;
- padding-right: 6px;
- padding-top: 3px;
-}
-
-.directory td.entry a {
- outline:none;
-}
-
-.directory td.entry a img {
- border: none;
-}
-
-.directory td.desc {
- width: 100%;
- padding-left: 6px;
- padding-right: 6px;
- padding-top: 3px;
- border-left: 1px solid rgba(0,0,0,0.05);
-}
-
-.directory tr.odd {
- padding-left: 6px;
- background-color: var(--index-odd-item-bg-color);
-}
-
-.directory tr.even {
- padding-left: 6px;
- background-color: var(--index-even-item-bg-color);
-}
-
-.directory img {
- vertical-align: -30%;
-}
-
-.directory .levels {
- white-space: nowrap;
- width: 100%;
- text-align: right;
- font-size: 9pt;
-}
-
-.directory .levels span {
- cursor: pointer;
- padding-left: 2px;
- padding-right: 2px;
- color: var(--page-link-color);
-}
-
-.arrow {
- color: var(--nav-arrow-color);
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- cursor: pointer;
- font-size: 80%;
- display: inline-block;
- width: 16px;
- height: 22px;
-}
-
-.icon {
- font-family: var(--font-family-icon);
- line-height: normal;
- font-weight: bold;
- font-size: 12px;
- height: 14px;
- width: 16px;
- display: inline-block;
- background-color: var(--icon-background-color);
- color: var(--icon-foreground-color);
- text-align: center;
- border-radius: 4px;
- margin-left: 2px;
- margin-right: 2px;
-}
-
-.icona {
- width: 24px;
- height: 22px;
- display: inline-block;
-}
-
-.iconfopen {
- width: 24px;
- height: 18px;
- margin-bottom: 4px;
- background-image:var(--icon-folder-open-image);
- background-repeat: repeat-y;
- vertical-align:top;
- display: inline-block;
-}
-
-.iconfclosed {
- width: 24px;
- height: 18px;
- margin-bottom: 4px;
- background-image:var(--icon-folder-closed-image);
- background-repeat: repeat-y;
- vertical-align:top;
- display: inline-block;
-}
-
-.icondoc {
- width: 24px;
- height: 18px;
- margin-bottom: 4px;
- background-image:var(--icon-doc-image);
- background-position: 0px -4px;
- background-repeat: repeat-y;
- vertical-align:top;
- display: inline-block;
-}
-
-/* @end */
-
-div.dynheader {
- margin-top: 8px;
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-address {
- font-style: normal;
- color: var(--footer-foreground-color);
-}
-
-table.doxtable caption {
- caption-side: top;
-}
-
-table.doxtable {
- border-collapse:collapse;
- margin-top: 4px;
- margin-bottom: 4px;
-}
-
-table.doxtable td, table.doxtable th {
- border: 1px solid var(--table-cell-border-color);
- padding: 3px 7px 2px;
-}
-
-table.doxtable th {
- background-color: var(--table-header-background-color);
- color: var(--table-header-foreground-color);
- font-size: 110%;
- padding-bottom: 4px;
- padding-top: 5px;
-}
-
-table.fieldtable {
- margin-bottom: 10px;
- border: 1px solid var(--memdef-border-color);
- border-spacing: 0px;
- border-radius: 4px;
- box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
-}
-
-.fieldtable td, .fieldtable th {
- padding: 3px 7px 2px;
-}
-
-.fieldtable td.fieldtype, .fieldtable td.fieldname {
- white-space: nowrap;
- border-right: 1px solid var(--memdef-border-color);
- border-bottom: 1px solid var(--memdef-border-color);
- vertical-align: top;
-}
-
-.fieldtable td.fieldname {
- padding-top: 3px;
-}
-
-.fieldtable td.fielddoc {
- border-bottom: 1px solid var(--memdef-border-color);
-}
-
-.fieldtable td.fielddoc p:first-child {
- margin-top: 0px;
-}
-
-.fieldtable td.fielddoc p:last-child {
- margin-bottom: 2px;
-}
-
-.fieldtable tr:last-child td {
- border-bottom: none;
-}
-
-.fieldtable th {
- background-image: var(--memdef-title-gradient-image);
- background-repeat:repeat-x;
- background-color: var(--memdef-title-background-color);
- font-size: 90%;
- color: var(--memdef-proto-text-color);
- padding-bottom: 4px;
- padding-top: 5px;
- text-align:left;
- font-weight: 400;
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
- border-bottom: 1px solid var(--memdef-border-color);
-}
-
-
-.tabsearch {
- top: 0px;
- left: 10px;
- height: 36px;
- background-image: var(--nav-gradient-image);
- z-index: 101;
- overflow: hidden;
- font-size: 13px;
-}
-
-.navpath ul
-{
- font-size: 11px;
- background-image: var(--nav-gradient-image);
- background-repeat:repeat-x;
- background-position: 0 -5px;
- height:30px;
- line-height:30px;
- color:var(--nav-text-normal-color);
- border:solid 1px var(--nav-breadcrumb-border-color);
- overflow:hidden;
- margin:0px;
- padding:0px;
-}
-
-.navpath li
-{
- list-style-type:none;
- float:left;
- padding-left:10px;
- padding-right:15px;
- background-image:var(--nav-breadcrumb-image);
- background-repeat:no-repeat;
- background-position:right;
- color: var(--nav-foreground-color);
-}
-
-.navpath li.navelem a
-{
- height:32px;
- display:block;
- text-decoration: none;
- outline: none;
- color: var(--nav-text-normal-color);
- font-family: var(--font-family-nav);
- text-shadow: var(--nav-text-normal-shadow);
- text-decoration: none;
-}
-
-.navpath li.navelem a:hover
-{
- color: var(--nav-text-hover-color);
- text-shadow: var(--nav-text-hover-shadow);
-}
-
-.navpath li.footer
-{
- list-style-type:none;
- float:right;
- padding-left:10px;
- padding-right:15px;
- background-image:none;
- background-repeat:no-repeat;
- background-position:right;
- color: var(--footer-foreground-color);
- font-size: 8pt;
-}
-
-
-div.summary
-{
- float: right;
- font-size: 8pt;
- padding-right: 5px;
- width: 50%;
- text-align: right;
-}
-
-div.summary a
-{
- white-space: nowrap;
-}
-
-table.classindex
-{
- margin: 10px;
- white-space: nowrap;
- margin-left: 3%;
- margin-right: 3%;
- width: 94%;
- border: 0;
- border-spacing: 0;
- padding: 0;
-}
-
-div.ingroups
-{
- font-size: 8pt;
- width: 50%;
- text-align: left;
-}
-
-div.ingroups a
-{
- white-space: nowrap;
-}
-
-div.header
-{
- background-image: var(--header-gradient-image);
- background-repeat:repeat-x;
- background-color: var(--header-background-color);
- margin: 0px;
- border-bottom: 1px solid var(--header-separator-color);
-}
-
-div.headertitle
-{
- padding: 5px 5px 5px 10px;
-}
-
-.PageDocRTL-title div.headertitle {
- text-align: right;
- direction: rtl;
-}
-
-dl {
- padding: 0 0 0 0;
-}
-
-/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
-dl.section {
- margin-left: 0px;
- padding-left: 0px;
-}
-
-dl.note {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #D0C000;
-}
-
-dl.warning, dl.attention {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #FF0000;
-}
-
-dl.pre, dl.post, dl.invariant {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #00D000;
-}
-
-dl.deprecated {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #505050;
-}
-
-dl.todo {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #00C0E0;
-}
-
-dl.test {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #3030E0;
-}
-
-dl.bug {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #C08050;
-}
-
-dl.section dd {
- margin-bottom: 6px;
-}
-
-
-#projectrow
-{
- height: 56px;
-}
-
-#projectlogo
-{
- text-align: center;
- vertical-align: bottom;
- border-collapse: separate;
-}
-
-#projectlogo img
-{
- border: 0px none;
-}
-
-#projectalign
-{
- vertical-align: middle;
- padding-left: 0.5em;
-}
-
-#projectname
-{
- font-size: 200%;
- font-family: var(--font-family-title);
- margin: 0px;
- padding: 2px 0px;
-}
-
-#projectbrief
-{
- font-size: 90%;
- font-family: var(--font-family-title);
- margin: 0px;
- padding: 0px;
-}
-
-#projectnumber
-{
- font-size: 50%;
- font-family: 50% var(--font-family-title);
- margin: 0px;
- padding: 0px;
-}
-
-#titlearea
-{
- padding: 0px;
- margin: 0px;
- width: 100%;
- border-bottom: 1px solid var(--title-separator-color);
- background-color: var(--title-background-color);
-}
-
-.image
-{
- text-align: center;
-}
-
-.dotgraph
-{
- text-align: center;
-}
-
-.mscgraph
-{
- text-align: center;
-}
-
-.plantumlgraph
-{
- text-align: center;
-}
-
-.diagraph
-{
- text-align: center;
-}
-
-.caption
-{
- font-weight: bold;
-}
-
-dl.citelist {
- margin-bottom:50px;
-}
-
-dl.citelist dt {
- color:var(--citation-label-color);
- float:left;
- font-weight:bold;
- margin-right:10px;
- padding:5px;
- text-align:right;
- width:52px;
-}
-
-dl.citelist dd {
- margin:2px 0 2px 72px;
- padding:5px 0;
-}
-
-div.toc {
- padding: 14px 25px;
- background-color: var(--toc-background-color);
- border: 1px solid var(--toc-border-color);
- border-radius: 7px 7px 7px 7px;
- float: right;
- height: auto;
- margin: 0 8px 10px 10px;
- width: 200px;
-}
-
-div.toc li {
- background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent;
- font: 10px/1.2 var(--font-family-toc);
- margin-top: 5px;
- padding-left: 10px;
- padding-top: 2px;
-}
-
-div.toc h3 {
- font: bold 12px/1.2 var(--font-family-toc);
- color: var(--toc-header-color);
- border-bottom: 0 none;
- margin: 0;
-}
-
-div.toc ul {
- list-style: none outside none;
- border: medium none;
- padding: 0px;
-}
-
-div.toc li.level1 {
- margin-left: 0px;
-}
-
-div.toc li.level2 {
- margin-left: 15px;
-}
-
-div.toc li.level3 {
- margin-left: 15px;
-}
-
-div.toc li.level4 {
- margin-left: 15px;
-}
-
-span.emoji {
- /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html
- * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
- */
-}
-
-span.obfuscator {
- display: none;
-}
-
-.inherit_header {
- font-weight: bold;
- color: var(--inherit-header-color);
- cursor: pointer;
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.inherit_header td {
- padding: 6px 0px 2px 5px;
-}
-
-.inherit {
- display: none;
-}
-
-tr.heading h2 {
- margin-top: 12px;
- margin-bottom: 4px;
-}
-
-/* tooltip related style info */
-
-.ttc {
- position: absolute;
- display: none;
-}
-
-#powerTip {
- cursor: default;
- /*white-space: nowrap;*/
- color: var(--tooltip-foreground-color);
- background-color: var(--tooltip-background-color);
- border: 1px solid var(--tooltip-border-color);
- border-radius: 4px 4px 4px 4px;
- box-shadow: var(--tooltip-shadow);
- display: none;
- font-size: smaller;
- max-width: 80%;
- opacity: 0.9;
- padding: 1ex 1em 1em;
- position: absolute;
- z-index: 2147483647;
-}
-
-#powerTip div.ttdoc {
- color: var(--tooltip-doc-color);
- font-style: italic;
-}
-
-#powerTip div.ttname a {
- font-weight: bold;
-}
-
-#powerTip a {
- color: var(--tooltip-link-color);
-}
-
-#powerTip div.ttname {
- font-weight: bold;
-}
-
-#powerTip div.ttdeci {
- color: var(--tooltip-declaration-color);
-}
-
-#powerTip div {
- margin: 0px;
- padding: 0px;
- font-size: 12px;
- font-family: var(--font-family-tooltip);
- line-height: 16px;
-}
-
-#powerTip:before, #powerTip:after {
- content: "";
- position: absolute;
- margin: 0px;
-}
-
-#powerTip.n:after, #powerTip.n:before,
-#powerTip.s:after, #powerTip.s:before,
-#powerTip.w:after, #powerTip.w:before,
-#powerTip.e:after, #powerTip.e:before,
-#powerTip.ne:after, #powerTip.ne:before,
-#powerTip.se:after, #powerTip.se:before,
-#powerTip.nw:after, #powerTip.nw:before,
-#powerTip.sw:after, #powerTip.sw:before {
- border: solid transparent;
- content: " ";
- height: 0;
- width: 0;
- position: absolute;
-}
-
-#powerTip.n:after, #powerTip.s:after,
-#powerTip.w:after, #powerTip.e:after,
-#powerTip.nw:after, #powerTip.ne:after,
-#powerTip.sw:after, #powerTip.se:after {
- border-color: rgba(255, 255, 255, 0);
-}
-
-#powerTip.n:before, #powerTip.s:before,
-#powerTip.w:before, #powerTip.e:before,
-#powerTip.nw:before, #powerTip.ne:before,
-#powerTip.sw:before, #powerTip.se:before {
- border-color: rgba(128, 128, 128, 0);
-}
-
-#powerTip.n:after, #powerTip.n:before,
-#powerTip.ne:after, #powerTip.ne:before,
-#powerTip.nw:after, #powerTip.nw:before {
- top: 100%;
-}
-
-#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
- border-top-color: var(--tooltip-background-color);
- border-width: 10px;
- margin: 0px -10px;
-}
-#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before {
- border-top-color: var(--tooltip-border-color);
- border-width: 11px;
- margin: 0px -11px;
-}
-#powerTip.n:after, #powerTip.n:before {
- left: 50%;
-}
-
-#powerTip.nw:after, #powerTip.nw:before {
- right: 14px;
-}
-
-#powerTip.ne:after, #powerTip.ne:before {
- left: 14px;
-}
-
-#powerTip.s:after, #powerTip.s:before,
-#powerTip.se:after, #powerTip.se:before,
-#powerTip.sw:after, #powerTip.sw:before {
- bottom: 100%;
-}
-
-#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
- border-bottom-color: var(--tooltip-background-color);
- border-width: 10px;
- margin: 0px -10px;
-}
-
-#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
- border-bottom-color: var(--tooltip-border-color);
- border-width: 11px;
- margin: 0px -11px;
-}
-
-#powerTip.s:after, #powerTip.s:before {
- left: 50%;
-}
-
-#powerTip.sw:after, #powerTip.sw:before {
- right: 14px;
-}
-
-#powerTip.se:after, #powerTip.se:before {
- left: 14px;
-}
-
-#powerTip.e:after, #powerTip.e:before {
- left: 100%;
-}
-#powerTip.e:after {
- border-left-color: var(--tooltip-border-color);
- border-width: 10px;
- top: 50%;
- margin-top: -10px;
-}
-#powerTip.e:before {
- border-left-color: var(--tooltip-border-color);
- border-width: 11px;
- top: 50%;
- margin-top: -11px;
-}
-
-#powerTip.w:after, #powerTip.w:before {
- right: 100%;
-}
-#powerTip.w:after {
- border-right-color: var(--tooltip-border-color);
- border-width: 10px;
- top: 50%;
- margin-top: -10px;
-}
-#powerTip.w:before {
- border-right-color: var(--tooltip-border-color);
- border-width: 11px;
- top: 50%;
- margin-top: -11px;
-}
-
-@media print
-{
- #top { display: none; }
- #side-nav { display: none; }
- #nav-path { display: none; }
- body { overflow:visible; }
- h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
- .summary { display: none; }
- .memitem { page-break-inside: avoid; }
- #doc-content
- {
- margin-left:0 !important;
- height:auto !important;
- width:auto !important;
- overflow:inherit;
- display:inline;
- }
-}
-
-/* @group Markdown */
-
-table.markdownTable {
- border-collapse:collapse;
- margin-top: 4px;
- margin-bottom: 4px;
-}
-
-table.markdownTable td, table.markdownTable th {
- border: 1px solid var(--table-cell-border-color);
- padding: 3px 7px 2px;
-}
-
-table.markdownTable tr {
-}
-
-th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
- background-color: var(--table-header-background-color);
- color: var(--table-header-foreground-color);
- font-size: 110%;
- padding-bottom: 4px;
- padding-top: 5px;
-}
-
-th.markdownTableHeadLeft, td.markdownTableBodyLeft {
- text-align: left
-}
-
-th.markdownTableHeadRight, td.markdownTableBodyRight {
- text-align: right
-}
-
-th.markdownTableHeadCenter, td.markdownTableBodyCenter {
- text-align: center
-}
-
-tt, code, kbd, samp
-{
- display: inline-block;
-}
-/* @end */
-
-u {
- text-decoration: underline;
-}
-
-details>summary {
- list-style-type: none;
-}
-
-details > summary::-webkit-details-marker {
- display: none;
-}
-
-details>summary::before {
- content: "\25ba";
- padding-right:4px;
- font-size: 80%;
-}
-
-details[open]>summary::before {
- content: "\25bc";
- padding-right:4px;
- font-size: 80%;
-}
-
-body {
- scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color);
-}
-
-::-webkit-scrollbar {
- background-color: var(--scrollbar-background-color);
- height: 12px;
- width: 12px;
-}
-::-webkit-scrollbar-thumb {
- border-radius: 6px;
- box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color);
- border: solid 2px transparent;
-}
-::-webkit-scrollbar-corner {
- background-color: var(--scrollbar-background-color);
-}
-
diff --git a/doc/api/doxygen.svg b/doc/api/doxygen.svg
deleted file mode 100644
index 363aa45..0000000
--- a/doc/api/doxygen.svg
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" viewBox="0 0 104 31" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <defs>
- <linearGradient id="a">
- <stop stop-color="#1E67AF" offset="0"/>
- <stop stop-color="#3488DC" offset="1"/>
- </linearGradient>
- <linearGradient id="d" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
- <linearGradient id="c" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientTransform="matrix(.6816 0 0 1.0248 72.391 -.91809)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
- <linearGradient id="b" x1="56.295" x2="56.295" y1="24.622" y2="26.574" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
- <linearGradient id="e" x1="49.067" x2="48.956" y1="19.719" y2="9.5227" gradientTransform="matrix(.97968 0 0 1.0207 -.25579 -.25579)" gradientUnits="userSpaceOnUse">
- <stop stop-color="#98C3ED" offset="0"/>
- <stop stop-color="#E2EEFA" offset="1"/>
- </linearGradient>
- <filter id="f" x="-.010676" y="-.045304" width="1.0214" height="1.0906" color-interpolation-filters="sRGB">
- <feGaussianBlur stdDeviation="0.45293203"/>
- </filter>
- </defs>
- <g>
- <path transform="translate(-2.5759 -27.848)" d="m13.609 32.203v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23645 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88018-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35277 3.7988-1.0566 1.0471-0.70387 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.92299-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.4611 0.28066 1.7988 0.84375 0.33777 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5976v-8.3926c0-0.84464-0.0765-1.6106-0.22851-2.2969-0.13511-0.70387-0.37971-1.2925-0.73438-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.063 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07028-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06051 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3438h-0.05078l-2.9648-9.3438zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914 0.38844 0.24635 0.6991 0.57184 0.93555 0.97656 0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13253 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10134 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88814-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70105 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.4927-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89025 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74023 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" filter="url(#f)" opacity=".3" stroke="#969696"/>
- <path d="m0.97202 24.161 43.605-0.0019 0.0508 3.3061-43.6 0.04174z" fill="url(#d)" stroke="#000" stroke-width=".5"/>
- <path d="m10.283 3.5547v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23644 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88017-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35278 3.7988-1.0566 1.0471-0.70386 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.923-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.461 0.28066 1.7988 0.84375 0.33778 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5977v-8.3926c0-0.84464-0.0765-1.6106-0.22852-2.2969-0.13511-0.70387-0.3797-1.2925-0.73437-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.062 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07027-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06052 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3437h-0.05078l-2.9648-9.3437zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914s0.6991 0.57184 0.93555 0.97656c0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13254 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10133 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88813-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70106 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.49271-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89026 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74024 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" fill="url(#e)" stroke="#195794" stroke-width=".7"/>
- <path d="m52.988 27.291c0.99602-1.0359 1.3944-1.8725 1.7928-3.1076l3.8247-0.03984c0.3113 1.6096 0.82413 2.5137 1.6335 3.1474z" fill="url(#b)" stroke="#000" stroke-width=".5"/>
- <path d="m73.89 24.04 28.885-0.2011-0.12476 3.3879-31.033 0.16229c1.2621-1.0234 1.9665-2.2859 2.2724-3.3491z" fill="url(#c)" stroke="#000" stroke-width=".41788"/>
- </g>
-</svg>
diff --git a/doc/api/files.html b/doc/api/files.html
deleted file mode 100644
index 459665c..0000000
--- a/doc/api/files.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): File List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle"><div class="title">File List</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
-<div class="levels">[detail level <span >1</span><span >2</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" >&#9660;</span><span id="img_0_" class="iconfopen" >&#160;</span><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html" target="_self">lzma</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="base_8h.html" target="_self">base.h</a></td><td class="desc">Data types and functions used in many places in liblzma API </td></tr>
-<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bcj_8h.html" target="_self">bcj.h</a></td><td class="desc">Branch/Call/Jump conversion filters </td></tr>
-<tr id="row_0_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="block_8h.html" target="_self">block.h</a></td><td class="desc">.xz Block handling </td></tr>
-<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="check_8h.html" target="_self">check.h</a></td><td class="desc">Integrity checks </td></tr>
-<tr id="row_0_4_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="container_8h.html" target="_self">container.h</a></td><td class="desc">File formats </td></tr>
-<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="delta_8h.html" target="_self">delta.h</a></td><td class="desc">Delta filter </td></tr>
-<tr id="row_0_6_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="filter_8h.html" target="_self">filter.h</a></td><td class="desc">Common filter related types and functions </td></tr>
-<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="hardware_8h.html" target="_self">hardware.h</a></td><td class="desc">Hardware information </td></tr>
-<tr id="row_0_8_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="index_8h.html" target="_self">index.h</a></td><td class="desc">Handling of .xz Index and related information </td></tr>
-<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="index__hash_8h.html" target="_self">index_hash.h</a></td><td class="desc">Validate Index by using a hash function </td></tr>
-<tr id="row_0_10_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lzma12_8h.html" target="_self">lzma12.h</a></td><td class="desc">LZMA1 and LZMA2 filters </td></tr>
-<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="stream__flags_8h.html" target="_self">stream_flags.h</a></td><td class="desc">.xz Stream Header and Stream Footer encoder and decoder </td></tr>
-<tr id="row_0_12_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="version_8h.html" target="_self">version.h</a></td><td class="desc">Version number </td></tr>
-<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="vli_8h.html" target="_self">vli.h</a></td><td class="desc">Variable-length integer handling </td></tr>
-<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lzma_8h.html" target="_self">lzma.h</a></td><td class="desc">The public API of liblzma data compression library </td></tr>
-</table>
-</div><!-- directory -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/filter_8h.html b/doc/api/filter_8h.html
deleted file mode 100644
index 7f2ffaa..0000000
--- a/doc/api/filter_8h.html
+++ /dev/null
@@ -1,1342 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/filter.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> &#124;
-<a href="#define-members">Macros</a> &#124;
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle"><div class="title">filter.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Common filter related types and functions.
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__filter.html">lzma_filter</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter options. <a href="structlzma__filter.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:ab33c0cc1728bf390e5b84f8bce1928ba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#ab33c0cc1728bf390e5b84f8bce1928ba">LZMA_FILTERS_MAX</a>&#160;&#160;&#160;4</td></tr>
-<tr class="memdesc:ab33c0cc1728bf390e5b84f8bce1928ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of filters in a chain. <br /></td></tr>
-<tr class="separator:ab33c0cc1728bf390e5b84f8bce1928ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a41aa51eeb53190404439c31d8e9c97cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a41aa51eeb53190404439c31d8e9c97cd">LZMA_STR_ALL_FILTERS</a>&#160;&#160;&#160;UINT32_C(0x01)</td></tr>
-<tr class="memdesc:a41aa51eeb53190404439c31d8e9c97cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow or show all filters. <br /></td></tr>
-<tr class="separator:a41aa51eeb53190404439c31d8e9c97cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adc33f4c0c7b5d3ae36acc0437a904339"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#adc33f4c0c7b5d3ae36acc0437a904339">LZMA_STR_NO_VALIDATION</a>&#160;&#160;&#160;UINT32_C(0x02)</td></tr>
-<tr class="memdesc:adc33f4c0c7b5d3ae36acc0437a904339"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do not validate the filter chain in <a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30" title="Convert a string to a filter chain.">lzma_str_to_filters()</a> <br /></td></tr>
-<tr class="separator:adc33f4c0c7b5d3ae36acc0437a904339"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a09a775f6a78d28ca136acfb51ad5fa02"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a09a775f6a78d28ca136acfb51ad5fa02">LZMA_STR_ENCODER</a>&#160;&#160;&#160;UINT32_C(0x10)</td></tr>
-<tr class="memdesc:a09a775f6a78d28ca136acfb51ad5fa02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stringify encoder options. <br /></td></tr>
-<tr class="separator:a09a775f6a78d28ca136acfb51ad5fa02"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8a0f3fc03bdb84a294cdd53a98783104"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a8a0f3fc03bdb84a294cdd53a98783104">LZMA_STR_DECODER</a>&#160;&#160;&#160;UINT32_C(0x20)</td></tr>
-<tr class="memdesc:a8a0f3fc03bdb84a294cdd53a98783104"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stringify decoder options. <br /></td></tr>
-<tr class="separator:a8a0f3fc03bdb84a294cdd53a98783104"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a87e9ac4ae5829b092262223256141a29"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a87e9ac4ae5829b092262223256141a29">LZMA_STR_GETOPT_LONG</a>&#160;&#160;&#160;UINT32_C(0x40)</td></tr>
-<tr class="memdesc:a87e9ac4ae5829b092262223256141a29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produce xz-compatible getopt_long() syntax. <br /></td></tr>
-<tr class="separator:a87e9ac4ae5829b092262223256141a29"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac0113c47caf98a735db2297936c5e857"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#ac0113c47caf98a735db2297936c5e857">LZMA_STR_NO_SPACES</a>&#160;&#160;&#160;UINT32_C(0x80)</td></tr>
-<tr class="memdesc:ac0113c47caf98a735db2297936c5e857"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use two dashes "--" instead of a space to separate filters. <br /></td></tr>
-<tr class="separator:ac0113c47caf98a735db2297936c5e857"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a3db3c36cd6e57658a74c53e4daa2bef6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a3db3c36cd6e57658a74c53e4daa2bef6">lzma_filter_encoder_is_supported</a> (<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> id) lzma_nothrow lzma_attr_const</td></tr>
-<tr class="memdesc:a3db3c36cd6e57658a74c53e4daa2bef6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if the given Filter ID is supported for encoding. <br /></td></tr>
-<tr class="separator:a3db3c36cd6e57658a74c53e4daa2bef6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acab0c67bf5b3a76f2b474c8e1da98938"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#acab0c67bf5b3a76f2b474c8e1da98938">lzma_filter_decoder_is_supported</a> (<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> id) lzma_nothrow lzma_attr_const</td></tr>
-<tr class="memdesc:acab0c67bf5b3a76f2b474c8e1da98938"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if the given Filter ID is supported for decoding. <br /></td></tr>
-<tr class="separator:acab0c67bf5b3a76f2b474c8e1da98938"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a611fe1176eeeda187b1bd8aef45040aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a611fe1176eeeda187b1bd8aef45040aa">lzma_filters_copy</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *src, <a class="el" href="structlzma__filter.html">lzma_filter</a> *dest, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a611fe1176eeeda187b1bd8aef45040aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the filters array. <br /></td></tr>
-<tr class="separator:a611fe1176eeeda187b1bd8aef45040aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae06979d219897f5f4c29cbc7a96a8892"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#ae06979d219897f5f4c29cbc7a96a8892">lzma_filters_free</a> (<a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow</td></tr>
-<tr class="memdesc:ae06979d219897f5f4c29cbc7a96a8892"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the options in the array of <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> structures. <br /></td></tr>
-<tr class="separator:ae06979d219897f5f4c29cbc7a96a8892"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a730f9391e85a5979bcd1b32643ae7176"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a730f9391e85a5979bcd1b32643ae7176">lzma_raw_encoder_memusage</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a730f9391e85a5979bcd1b32643ae7176"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate approximate memory requirements for raw encoder. <br /></td></tr>
-<tr class="separator:a730f9391e85a5979bcd1b32643ae7176"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a58511249ae9206d7de7c5d1f05842297"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a58511249ae9206d7de7c5d1f05842297">lzma_raw_decoder_memusage</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a58511249ae9206d7de7c5d1f05842297"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate approximate memory requirements for raw decoder. <br /></td></tr>
-<tr class="separator:a58511249ae9206d7de7c5d1f05842297"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2368e4129032345eb0738b0c6e085703"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a2368e4129032345eb0738b0c6e085703">lzma_raw_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a2368e4129032345eb0738b0c6e085703"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize raw encoder. <br /></td></tr>
-<tr class="separator:a2368e4129032345eb0738b0c6e085703"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae77b3b6c5eccd9d77bbafef0a8a203c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#ae77b3b6c5eccd9d77bbafef0a8a203c1">lzma_raw_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:ae77b3b6c5eccd9d77bbafef0a8a203c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize raw decoder. <br /></td></tr>
-<tr class="separator:ae77b3b6c5eccd9d77bbafef0a8a203c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a8fd969df001e449ebe4421ab33bba5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a4a8fd969df001e449ebe4421ab33bba5">lzma_filters_update</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters) lzma_nothrow</td></tr>
-<tr class="memdesc:a4a8fd969df001e449ebe4421ab33bba5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the filter chain in the encoder. <br /></td></tr>
-<tr class="separator:a4a8fd969df001e449ebe4421ab33bba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a226724ab3391b410281fdf656cc7c432"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a226724ab3391b410281fdf656cc7c432">lzma_raw_buffer_encode</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow</td></tr>
-<tr class="memdesc:a226724ab3391b410281fdf656cc7c432"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call raw encoder. <br /></td></tr>
-<tr class="separator:a226724ab3391b410281fdf656cc7c432"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3b942df507e4f9a6d7525e5a4c6864e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a3b942df507e4f9a6d7525e5a4c6864e5">lzma_raw_buffer_decode</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t *in_pos, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow</td></tr>
-<tr class="memdesc:a3b942df507e4f9a6d7525e5a4c6864e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call raw decoder. <br /></td></tr>
-<tr class="separator:a3b942df507e4f9a6d7525e5a4c6864e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aee038818cf7bbe044c3f7a7c86998c1b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#aee038818cf7bbe044c3f7a7c86998c1b">lzma_properties_size</a> (uint32_t *size, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filter) lzma_nothrow</td></tr>
-<tr class="memdesc:aee038818cf7bbe044c3f7a7c86998c1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the Filter Properties field. <br /></td></tr>
-<tr class="separator:aee038818cf7bbe044c3f7a7c86998c1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8e00887086df5a44084ac22e48415de3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a8e00887086df5a44084ac22e48415de3">lzma_properties_encode</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filter, uint8_t *props) lzma_nothrow</td></tr>
-<tr class="memdesc:a8e00887086df5a44084ac22e48415de3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode the Filter Properties field. <br /></td></tr>
-<tr class="separator:a8e00887086df5a44084ac22e48415de3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a88d2e864b2039ac82802cc202278d478"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a88d2e864b2039ac82802cc202278d478">lzma_properties_decode</a> (<a class="el" href="structlzma__filter.html">lzma_filter</a> *filter, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *props, size_t props_size) lzma_nothrow</td></tr>
-<tr class="memdesc:a88d2e864b2039ac82802cc202278d478"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode the Filter Properties field. <br /></td></tr>
-<tr class="separator:a88d2e864b2039ac82802cc202278d478"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a996c9c21840ed54e37bd1f664a79d940"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a996c9c21840ed54e37bd1f664a79d940">lzma_filter_flags_size</a> (uint32_t *size, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filter) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a996c9c21840ed54e37bd1f664a79d940"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate encoded size of a Filter Flags field. <br /></td></tr>
-<tr class="separator:a996c9c21840ed54e37bd1f664a79d940"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a96f23309bc21398fece18c00ebe7db98"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a96f23309bc21398fece18c00ebe7db98">lzma_filter_flags_encode</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filter, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a96f23309bc21398fece18c00ebe7db98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode Filter Flags into given buffer. <br /></td></tr>
-<tr class="separator:a96f23309bc21398fece18c00ebe7db98"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4cba9a4c658cce0ff01fd102b31ea1a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a4cba9a4c658cce0ff01fd102b31ea1a7">lzma_filter_flags_decode</a> (<a class="el" href="structlzma__filter.html">lzma_filter</a> *filter, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a4cba9a4c658cce0ff01fd102b31ea1a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode Filter Flags from given buffer. <br /></td></tr>
-<tr class="separator:a4cba9a4c658cce0ff01fd102b31ea1a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa042cf11749bc2183b27de1c3142da30"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30">lzma_str_to_filters</a> (const char *str, int *error_pos, <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, uint32_t flags, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:aa042cf11749bc2183b27de1c3142da30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a string to a filter chain. <br /></td></tr>
-<tr class="separator:aa042cf11749bc2183b27de1c3142da30"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7deeb86ef59a9111b8033681290e0fb0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a7deeb86ef59a9111b8033681290e0fb0">lzma_str_from_filters</a> (char **str, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, uint32_t flags, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a7deeb86ef59a9111b8033681290e0fb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a filter chain to a string. <br /></td></tr>
-<tr class="separator:a7deeb86ef59a9111b8033681290e0fb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab51585b68796ce0270f87e615b923809"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#ab51585b68796ce0270f87e615b923809">lzma_str_list_filters</a> (char **str, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> filter_id, uint32_t flags, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:ab51585b68796ce0270f87e615b923809"><td class="mdescLeft">&#160;</td><td class="mdescRight">List available filters and/or their options (for help message) <br /></td></tr>
-<tr class="separator:ab51585b68796ce0270f87e615b923809"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Common filter related types and functions. </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ab33c0cc1728bf390e5b84f8bce1928ba" name="ab33c0cc1728bf390e5b84f8bce1928ba"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab33c0cc1728bf390e5b84f8bce1928ba">&#9670;&#160;</a></span>LZMA_FILTERS_MAX</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_FILTERS_MAX&#160;&#160;&#160;4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum number of filters in a chain. </p>
-<p>A filter chain can have 1-4 filters, of which three are allowed to change the size of the data. Usually only one or two filters are needed. </p>
-
-</div>
-</div>
-<a id="a41aa51eeb53190404439c31d8e9c97cd" name="a41aa51eeb53190404439c31d8e9c97cd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a41aa51eeb53190404439c31d8e9c97cd">&#9670;&#160;</a></span>LZMA_STR_ALL_FILTERS</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_STR_ALL_FILTERS&#160;&#160;&#160;UINT32_C(0x01)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Allow or show all filters. </p>
-<p>By default only the filters supported in the .xz format are accept by <a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30" title="Convert a string to a filter chain.">lzma_str_to_filters()</a> or shown by <a class="el" href="filter_8h.html#ab51585b68796ce0270f87e615b923809" title="List available filters and/or their options (for help message)">lzma_str_list_filters()</a>. </p>
-
-</div>
-</div>
-<a id="adc33f4c0c7b5d3ae36acc0437a904339" name="adc33f4c0c7b5d3ae36acc0437a904339"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#adc33f4c0c7b5d3ae36acc0437a904339">&#9670;&#160;</a></span>LZMA_STR_NO_VALIDATION</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_STR_NO_VALIDATION&#160;&#160;&#160;UINT32_C(0x02)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Do not validate the filter chain in <a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30" title="Convert a string to a filter chain.">lzma_str_to_filters()</a> </p>
-<p>By default <a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30" title="Convert a string to a filter chain.">lzma_str_to_filters()</a> can return an error if the filter chain as a whole isn't usable in the .xz format or in the raw encoder or decoder. With this flag, this validation is skipped. This flag doesn't affect the handling of the individual filter options. To allow non-.xz filters also LZMA_STR_ALL_FILTERS is needed. </p>
-
-</div>
-</div>
-<a id="a09a775f6a78d28ca136acfb51ad5fa02" name="a09a775f6a78d28ca136acfb51ad5fa02"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a09a775f6a78d28ca136acfb51ad5fa02">&#9670;&#160;</a></span>LZMA_STR_ENCODER</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_STR_ENCODER&#160;&#160;&#160;UINT32_C(0x10)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Stringify encoder options. </p>
-<p>Show the filter-specific options that the encoder will use. This may be useful for verbose diagnostic messages.</p>
-<p>Note that if options were decoded from .xz headers then the encoder options may be undefined. This flag shouldn't be used in such a situation. </p>
-
-</div>
-</div>
-<a id="a8a0f3fc03bdb84a294cdd53a98783104" name="a8a0f3fc03bdb84a294cdd53a98783104"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8a0f3fc03bdb84a294cdd53a98783104">&#9670;&#160;</a></span>LZMA_STR_DECODER</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_STR_DECODER&#160;&#160;&#160;UINT32_C(0x20)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Stringify decoder options. </p>
-<p>Show the filter-specific options that the decoder will use. This may be useful for showing what filter options were decoded from file headers. </p>
-
-</div>
-</div>
-<a id="a87e9ac4ae5829b092262223256141a29" name="a87e9ac4ae5829b092262223256141a29"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a87e9ac4ae5829b092262223256141a29">&#9670;&#160;</a></span>LZMA_STR_GETOPT_LONG</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_STR_GETOPT_LONG&#160;&#160;&#160;UINT32_C(0x40)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Produce xz-compatible getopt_long() syntax. </p>
-<p>That is, "delta:dist=2 lzma2:dict=4MiB,pb=1,lp=1" becomes "--delta=dist=2 --lzma2=dict=4MiB,pb=1,lp=1".</p>
-<p>This syntax is compatible with xz 5.0.0 as long as the filters and their options are supported too. </p>
-
-</div>
-</div>
-<a id="ac0113c47caf98a735db2297936c5e857" name="ac0113c47caf98a735db2297936c5e857"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac0113c47caf98a735db2297936c5e857">&#9670;&#160;</a></span>LZMA_STR_NO_SPACES</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_STR_NO_SPACES&#160;&#160;&#160;UINT32_C(0x80)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Use two dashes "--" instead of a space to separate filters. </p>
-<p>That is, "delta:dist=2 lzma2:pb=1,lp=1" becomes "delta:dist=2--lzma2:pb=1,lp=1". This looks slightly odd but this kind of strings should be usable on the command line without quoting. However, it is possible that future versions with new filter options might produce strings that require shell quoting anyway as the exact set of possible characters isn't frozen for now.</p>
-<p>It is guaranteed that the single quote (') will never be used in filter chain strings (even if LZMA_STR_NO_SPACES isn't used). </p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="a3db3c36cd6e57658a74c53e4daa2bef6" name="a3db3c36cd6e57658a74c53e4daa2bef6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3db3c36cd6e57658a74c53e4daa2bef6">&#9670;&#160;</a></span>lzma_filter_encoder_is_supported()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_filter_encoder_is_supported </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>id</em></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Test if the given Filter ID is supported for encoding. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">id</td><td>Filter ID</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
-<li>true if the Filter ID is supported for encoding by this liblzma build.</li>
-<li>false otherwise. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="acab0c67bf5b3a76f2b474c8e1da98938" name="acab0c67bf5b3a76f2b474c8e1da98938"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acab0c67bf5b3a76f2b474c8e1da98938">&#9670;&#160;</a></span>lzma_filter_decoder_is_supported()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_filter_decoder_is_supported </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>id</em></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Test if the given Filter ID is supported for decoding. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">id</td><td>Filter ID</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
-<li>true if the Filter ID is supported for decoding by this liblzma build.</li>
-<li>false otherwise. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a611fe1176eeeda187b1bd8aef45040aa" name="a611fe1176eeeda187b1bd8aef45040aa"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a611fe1176eeeda187b1bd8aef45040aa">&#9670;&#160;</a></span>lzma_filters_copy()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_filters_copy </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>src</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>dest</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Copy the filters array. </p>
-<p>Copy the Filter IDs and filter-specific options from src to dest. Up to LZMA_FILTERS_MAX filters are copied, plus the terminating .id == LZMA_VLI_UNKNOWN. Thus, dest should have at least LZMA_FILTERS_MAX + 1 elements space unless the caller knows that src is smaller than that.</p>
-<p>Unless the filter-specific options is NULL, the Filter ID has to be supported by liblzma, because liblzma needs to know the size of every filter-specific options structure. The filter-specific options are not validated. If options is NULL, any unsupported Filter IDs are copied without returning an error.</p>
-<p>Old filter-specific options in dest are not freed, so dest doesn't need to be initialized by the caller in any way.</p>
-<p>If an error occurs, memory possibly already allocated by this function is always freed. liblzma versions older than 5.2.7 may modify the dest array and leave its contents in an undefined state if an error occurs. liblzma 5.2.7 and newer only modify the dest array when returning LZMA_OK.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">src</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">dest</td><td>Destination filter array </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_OPTIONS_ERROR: Unsupported Filter ID and its options is not NULL.</li>
-<li>LZMA_PROG_ERROR: src or dest is NULL. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="ae06979d219897f5f4c29cbc7a96a8892" name="ae06979d219897f5f4c29cbc7a96a8892"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae06979d219897f5f4c29cbc7a96a8892">&#9670;&#160;</a></span>lzma_filters_free()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void lzma_filters_free </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filters</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Free the options in the array of <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> structures. </p>
-<p>This frees the filter chain options. The filters array itself is not freed.</p>
-<p>The filters array must have at most LZMA_FILTERS_MAX + 1 elements including the terminating element which must have .id = LZMA_VLI_UNKNOWN. For all elements before the terminating element:</p><ul>
-<li>options will be freed using the given <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> or, if allocator is NULL, using free().</li>
-<li>options will be set to NULL.</li>
-<li>id will be set to LZMA_VLI_UNKNOWN.</li>
-</ul>
-<p>If filters is NULL, this does nothing. Again, this never frees the filters array itself.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. </td></tr>
- <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a id="a730f9391e85a5979bcd1b32643ae7176" name="a730f9391e85a5979bcd1b32643ae7176"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a730f9391e85a5979bcd1b32643ae7176">&#9670;&#160;</a></span>lzma_raw_encoder_memusage()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_raw_encoder_memusage </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filters</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate approximate memory requirements for raw encoder. </p>
-<p>This function can be used to calculate the memory requirements for Block and Stream encoders too because Block and Stream encoders don't need significantly more memory than raw encoder.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Number of bytes of memory required for the given filter chain when encoding or UINT64_MAX on error. </dd></dl>
-
-</div>
-</div>
-<a id="a58511249ae9206d7de7c5d1f05842297" name="a58511249ae9206d7de7c5d1f05842297"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a58511249ae9206d7de7c5d1f05842297">&#9670;&#160;</a></span>lzma_raw_decoder_memusage()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_raw_decoder_memusage </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filters</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate approximate memory requirements for raw decoder. </p>
-<p>This function can be used to calculate the memory requirements for Block and Stream decoders too because Block and Stream decoders don't need significantly more memory than raw decoder.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Number of bytes of memory required for the given filter chain when decoding or UINT64_MAX on error. </dd></dl>
-
-</div>
-</div>
-<a id="a2368e4129032345eb0738b0c6e085703" name="a2368e4129032345eb0738b0c6e085703"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2368e4129032345eb0738b0c6e085703">&#9670;&#160;</a></span>lzma_raw_encoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_raw_encoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filters</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize raw encoder. </p>
-<p>This function may be useful when implementing custom file formats.</p>
-<p>The `action' with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> can be LZMA_RUN, LZMA_SYNC_FLUSH (if the filter chain supports it), or LZMA_FINISH.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="ae77b3b6c5eccd9d77bbafef0a8a203c1" name="ae77b3b6c5eccd9d77bbafef0a8a203c1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae77b3b6c5eccd9d77bbafef0a8a203c1">&#9670;&#160;</a></span>lzma_raw_decoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_raw_decoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filters</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize raw decoder. </p>
-<p>The initialization of raw decoder goes similarly to raw encoder.</p>
-<p>The `action' with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> can be LZMA_RUN or LZMA_FINISH. Using LZMA_FINISH is not required, it is supported just for convenience.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a4a8fd969df001e449ebe4421ab33bba5" name="a4a8fd969df001e449ebe4421ab33bba5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4a8fd969df001e449ebe4421ab33bba5">&#9670;&#160;</a></span>lzma_filters_update()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_filters_update </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filters</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Update the filter chain in the encoder. </p>
-<p>This function may be called after <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> has returned LZMA_STREAM_END when LZMA_FULL_BARRIER, LZMA_FULL_FLUSH, or LZMA_SYNC_FLUSH was used:</p>
-<ul>
-<li>After LZMA_FULL_BARRIER or LZMA_FULL_FLUSH: Single-threaded .xz Stream encoder (<a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52" title="Initialize .xz Stream encoder using a custom filter chain.">lzma_stream_encoder()</a>) and (since liblzma 5.4.0) multi-threaded Stream encoder (<a class="el" href="container_8h.html#a3f8793518711ee84d1abf12ea3aaba42" title="Initialize multithreaded .xz Stream encoder.">lzma_stream_encoder_mt()</a>) allow setting a new filter chain to be used for the next Block(s).</li>
-<li>After LZMA_SYNC_FLUSH: Raw encoder (<a class="el" href="filter_8h.html#a2368e4129032345eb0738b0c6e085703" title="Initialize raw encoder.">lzma_raw_encoder()</a>), Block encoder (<a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a>), and single-threaded .xz Stream encoder (<a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52" title="Initialize .xz Stream encoder using a custom filter chain.">lzma_stream_encoder()</a>) allow changing certain filter-specific options in the middle of encoding. The actual filters in the chain (Filter IDs) must not be changed! Currently only the lc, lp, and pb options of LZMA2 (not LZMA1) can be changed this way.</li>
-<li>In the future some filters might allow changing some of their options without any barrier or flushing but currently such filters don't exist.</li>
-</ul>
-<p>This function may also be called when no data has been compressed yet although this is rarely useful. In that case, this function will behave as if LZMA_FULL_FLUSH (Stream encoders) or LZMA_SYNC_FLUSH (Raw or Block encoder) had been used right before calling this function.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
- <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_MEMLIMIT_ERROR</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a226724ab3391b410281fdf656cc7c432" name="a226724ab3391b410281fdf656cc7c432"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a226724ab3391b410281fdf656cc7c432">&#9670;&#160;</a></span>lzma_raw_buffer_encode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_raw_buffer_encode </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filters</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>in_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>out_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>out_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-call raw encoder. </p>
-<dl class="section note"><dt>Note</dt><dd>There is no function to calculate how big output buffer would surely be big enough. (<a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e" title="Calculate output buffer size for single-call Stream encoder.">lzma_stream_buffer_bound()</a> works only for <a class="el" href="container_8h.html#a6e645ccaeace3b13a6981e03c6e190ad" title="Single-call .xz Stream encoder.">lzma_stream_buffer_encode()</a>; raw encoder won't necessarily meet that bound.)</dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Encoding was successful.</li>
-<li>LZMA_BUF_ERROR: Not enough output buffer space.</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_DATA_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a3b942df507e4f9a6d7525e5a4c6864e5" name="a3b942df507e4f9a6d7525e5a4c6864e5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3b942df507e4f9a6d7525e5a4c6864e5">&#9670;&#160;</a></span>lzma_raw_buffer_decode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_raw_buffer_decode </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filters</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>in_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>in_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>out_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>out_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-call raw decoder. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_pos</td><td>The next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer; the first byte that won't be read is in[in_size]. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Decoding was successful.</li>
-<li>LZMA_BUF_ERROR: Not enough output buffer space.</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_DATA_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="aee038818cf7bbe044c3f7a7c86998c1b" name="aee038818cf7bbe044c3f7a7c86998c1b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aee038818cf7bbe044c3f7a7c86998c1b">&#9670;&#160;</a></span>lzma_properties_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_properties_size </td>
- <td>(</td>
- <td class="paramtype">uint32_t *&#160;</td>
- <td class="paramname"><em>size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filter</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the size of the Filter Properties field. </p>
-<p>This function may be useful when implementing custom file formats using the raw encoder and decoder.</p>
-<dl class="section note"><dt>Note</dt><dd>This function validates the Filter ID, but does not necessarily validate the options. Thus, it is possible that this returns LZMA_OK while the following call to <a class="el" href="filter_8h.html#a8e00887086df5a44084ac22e48415de3" title="Encode the Filter Properties field.">lzma_properties_encode()</a> returns LZMA_OPTIONS_ERROR.</dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>Pointer to uint32_t to hold the size of the properties </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">filter</td><td>Filter ID and options (the size of the properties may vary depending on the options)</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a8e00887086df5a44084ac22e48415de3" name="a8e00887086df5a44084ac22e48415de3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8e00887086df5a44084ac22e48415de3">&#9670;&#160;</a></span>lzma_properties_encode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_properties_encode </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>props</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Encode the Filter Properties field. </p>
-<dl class="section note"><dt>Note</dt><dd>Even this function won't validate more options than actually necessary. Thus, it is possible that encoding the properties succeeds but using the same options to initialize the encoder will fail.</dd>
-<dd>
-If <a class="el" href="filter_8h.html#aee038818cf7bbe044c3f7a7c86998c1b" title="Get the size of the Filter Properties field.">lzma_properties_size()</a> indicated that the size of the Filter Properties field is zero, calling <a class="el" href="filter_8h.html#a8e00887086df5a44084ac22e48415de3" title="Encode the Filter Properties field.">lzma_properties_encode()</a> is not required, but it won't do any harm either.</dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">filter</td><td>Filter ID and options </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">props</td><td>Buffer to hold the encoded options. The size of the buffer must have been already determined with <a class="el" href="filter_8h.html#aee038818cf7bbe044c3f7a7c86998c1b" title="Get the size of the Filter Properties field.">lzma_properties_size()</a>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a88d2e864b2039ac82802cc202278d478" name="a88d2e864b2039ac82802cc202278d478"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a88d2e864b2039ac82802cc202278d478">&#9670;&#160;</a></span>lzma_properties_decode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_properties_decode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>props</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>props_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Decode the Filter Properties field. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">filter</td><td>filter-&gt;id must have been set to the correct Filter ID. filter-&gt;options doesn't need to be initialized (it's not freed by this function). The decoded options will be stored in filter-&gt;options; it's application's responsibility to free it when appropriate. filter-&gt;options is set to NULL if there are no properties or if an error occurs. </td></tr>
- <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). and in case of an error, also free(). </td></tr>
- <tr><td class="paramname">props</td><td>Input buffer containing the properties. </td></tr>
- <tr><td class="paramname">props_size</td><td>Size of the properties. This must be the exact size; giving too much or too little input will return LZMA_OPTIONS_ERROR.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_MEM_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a996c9c21840ed54e37bd1f664a79d940" name="a996c9c21840ed54e37bd1f664a79d940"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a996c9c21840ed54e37bd1f664a79d940">&#9670;&#160;</a></span>lzma_filter_flags_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_filter_flags_size </td>
- <td>(</td>
- <td class="paramtype">uint32_t *&#160;</td>
- <td class="paramname"><em>size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filter</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate encoded size of a Filter Flags field. </p>
-<p>Knowing the size of Filter Flags is useful to know when allocating memory to hold the encoded Filter Flags.</p>
-<dl class="section note"><dt>Note</dt><dd>If you need to calculate size of List of Filter Flags, you need to loop over every <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> entry.</dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>Pointer to integer to hold the calculated size </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">filter</td><td>Filter ID and associated options whose encoded size is to be calculated</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: *size set successfully. Note that this doesn't guarantee that filter-&gt;options is valid, thus <a class="el" href="filter_8h.html#a96f23309bc21398fece18c00ebe7db98" title="Encode Filter Flags into given buffer.">lzma_filter_flags_encode()</a> may still fail.</li>
-<li>LZMA_OPTIONS_ERROR: Unknown Filter ID or unsupported options.</li>
-<li>LZMA_PROG_ERROR: Invalid options </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a96f23309bc21398fece18c00ebe7db98" name="a96f23309bc21398fece18c00ebe7db98"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a96f23309bc21398fece18c00ebe7db98">&#9670;&#160;</a></span>lzma_filter_flags_encode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_filter_flags_encode </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>out_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>out_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Encode Filter Flags into given buffer. </p>
-<p>In contrast to some functions, this doesn't allocate the needed buffer. This is due to how this function is used internally by liblzma.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">filter</td><td>Filter ID and options to be encoded </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>out[*out_pos] is the next write position. This is updated by the encoder. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>out[out_size] is the first byte to not write.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Encoding was successful.</li>
-<li>LZMA_OPTIONS_ERROR: Invalid or unsupported options.</li>
-<li>LZMA_PROG_ERROR: Invalid options or not enough output buffer space (you should have checked it with <a class="el" href="filter_8h.html#a996c9c21840ed54e37bd1f664a79d940" title="Calculate encoded size of a Filter Flags field.">lzma_filter_flags_size()</a>). </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a4cba9a4c658cce0ff01fd102b31ea1a7" name="a4cba9a4c658cce0ff01fd102b31ea1a7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4cba9a4c658cce0ff01fd102b31ea1a7">&#9670;&#160;</a></span>lzma_filter_flags_decode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_filter_flags_decode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>in_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>in_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Decode Filter Flags from given buffer. </p>
-<p>The decoded result is stored into *filter. The old value of filter-&gt;options is not free()d. If anything other than LZMA_OK is returned, filter-&gt;options is set to NULL.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">filter</td><td>Destination filter. The decoded Filter ID will be stored in filter-&gt;id. If options are needed they will be allocated and the pointer will be stored in filter-&gt;options. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">in_pos</td><td>The next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer; the first byte that won't be read is in[in_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_OPTIONS_ERROR</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_DATA_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="aa042cf11749bc2183b27de1c3142da30" name="aa042cf11749bc2183b27de1c3142da30"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa042cf11749bc2183b27de1c3142da30">&#9670;&#160;</a></span>lzma_str_to_filters()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const char * lzma_str_to_filters </td>
- <td>(</td>
- <td class="paramtype">const char *&#160;</td>
- <td class="paramname"><em>str</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int *&#160;</td>
- <td class="paramname"><em>error_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filters</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>flags</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Convert a string to a filter chain. </p>
-<p>This tries to make it easier to write applications that allow users to set custom compression options. This only handles the filter configuration (including presets) but not the number of threads, block size, check type, or memory limits.</p>
-<p>The input string can be either a preset or a filter chain. Presets begin with a digit 0-9 and may be followed by zero or more flags which are lower-case letters. Currently only "e" is supported, matching LZMA_PRESET_EXTREME. For partial xz command line syntax compatibility, a preset string may start with a single dash "-".</p>
-<p>A filter chain consists of one or more "filtername:opt1=value1,opt2=value2" strings separated by one or more spaces. Leading and trailing spaces are ignored. All names and values must be lower-case. Extra commas in the option list are ignored. The order of filters is significant: when encoding, the uncompressed input data goes to the leftmost filter first. Normally "lzma2" is the last filter in the chain.</p>
-<p>If one wishes to avoid spaces, for example, to avoid shell quoting, it is possible to use two dashes "--" instead of spaces to separate the filters.</p>
-<p>For xz command line compatibility, each filter may be prefixed with two dashes "--" and the colon ":" separating the filter name from the options may be replaced with an equals sign "=".</p>
-<p>By default, only filters that can be used in the .xz format are accepted. To allow all filters (LZMA1) use the flag LZMA_STR_ALL_FILTERS.</p>
-<p>By default, very basic validation is done for the filter chain as a whole, for example, that LZMA2 is only used as the last filter in the chain. The validation isn't perfect though and it's possible that this function succeeds but using the filter chain for encoding or decoding will still result in LZMA_OPTIONS_ERROR. To disable this validation, use the flag LZMA_STR_NO_VALIDATION.</p>
-<p>The available filter names and their options are available via <a class="el" href="filter_8h.html#ab51585b68796ce0270f87e615b923809" title="List available filters and/or their options (for help message)">lzma_str_list_filters()</a>. See the xz man page for the description of filter names and options.</p>
-<p>For command line applications, below is an example how an error message can be displayed. Note the use of an empty string for the field width. If "^" was used there it would create an off-by-one error except at the very beginning of the line.</p>
-<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> *str = ...; <span class="comment">// From user</span></div>
-<div class="line"><a class="code hl_struct" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> filters[<a class="code hl_define" href="filter_8h.html#ab33c0cc1728bf390e5b84f8bce1928ba" title="Maximum number of filters in a chain.">LZMA_FILTERS_MAX</a> + 1];</div>
-<div class="line"><span class="keywordtype">int</span> pos;</div>
-<div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> *msg = <a class="code hl_function" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30" title="Convert a string to a filter chain.">lzma_str_to_filters</a>(str, &amp;pos, filters, 0, NULL);</div>
-<div class="line"><span class="keywordflow">if</span> (msg != NULL) {</div>
-<div class="line"> printf(<span class="stringliteral">&quot;%s: Error in XZ compression options:\n&quot;</span>, argv[0]);</div>
-<div class="line"> printf(<span class="stringliteral">&quot;%s: %s\n&quot;</span>, argv[0], str);</div>
-<div class="line"> printf(<span class="stringliteral">&quot;%s: %*s^\n&quot;</span>, argv[0], errpos, <span class="stringliteral">&quot;&quot;</span>);</div>
-<div class="line"> printf(<span class="stringliteral">&quot;%s: %s\n&quot;</span>, argv[0], msg);</div>
-<div class="line">}</div>
-</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">str</td><td>User-supplied string describing a preset or a filter chain. If a default value is needed and you don't know what would be good, use "6" since that is the default preset in xz too. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">error_pos</td><td>If this isn't NULL, this value will be set on both success and on all errors. This tells the location of the error in the string. This is an int to make it straightforward to use this as printf() field width. The value is guaranteed to be in the range [0, INT_MAX] even if strlen(str) somehow was greater than INT_MAX. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">filters</td><td>An array of <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> structures. There must be LZMA_FILTERS_MAX + 1 (that is, five) elements in the array. The old contents are ignored so it doesn't need to be initialized. This array is modified only if this function returns NULL. Once the allocated filter options are no longer needed, <a class="el" href="filter_8h.html#ae06979d219897f5f4c29cbc7a96a8892" title="Free the options in the array of lzma_filter structures.">lzma_filters_free()</a> can be used to free the options (it doesn't free the filters array itself). </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">flags</td><td>Bitwise-or of zero or more of the flags LZMA_STR_ALL_FILTERS and LZMA_STR_NO_VALIDATION. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>On success, NULL is returned. On error, a statically-allocated error message is returned which together with the error_pos should give some idea what is wrong. </dd></dl>
-
-</div>
-</div>
-<a id="a7deeb86ef59a9111b8033681290e0fb0" name="a7deeb86ef59a9111b8033681290e0fb0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7deeb86ef59a9111b8033681290e0fb0">&#9670;&#160;</a></span>lzma_str_from_filters()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_str_from_filters </td>
- <td>(</td>
- <td class="paramtype">char **&#160;</td>
- <td class="paramname"><em>str</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
- <td class="paramname"><em>filters</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>flags</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Convert a filter chain to a string. </p>
-<p>Use cases:</p>
-<ul>
-<li>Verbose output showing the full encoder options to the user (use LZMA_STR_ENCODER in flags)</li>
-<li>Showing the filters and options that are required to decode a file (use LZMA_STR_DECODER in flags)</li>
-<li>Showing the filter names without any options in informational messages where the technical details aren't important (no flags). In this case the .options in the filters array are ignored and may be NULL even if a filter has a mandatory options structure.</li>
-</ul>
-<p>Note that even if the filter chain was specified using a preset, the resulting filter chain isn't reversed to a preset. So if you specify "6" to <a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30" title="Convert a string to a filter chain.">lzma_str_to_filters()</a> then <a class="el" href="filter_8h.html#a7deeb86ef59a9111b8033681290e0fb0" title="Convert a filter chain to a string.">lzma_str_from_filters()</a> will produce a string containing "lzma2".</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">str</td><td>On success *str will be set to point to an allocated string describing the given filter chain. Old value is ignored. On error *str is always set to NULL. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">flags</td><td>Bitwise-or of zero or more of the flags LZMA_STR_ENCODER, LZMA_STR_DECODER, LZMA_STR_GETOPT_LONG, and LZMA_STR_NO_SPACES. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_OPTIONS_ERROR: Empty filter chain (filters[0].id == LZMA_VLI_UNKNOWN) or the filter chain includes a Filter ID that is not supported by this function.</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="ab51585b68796ce0270f87e615b923809" name="ab51585b68796ce0270f87e615b923809"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab51585b68796ce0270f87e615b923809">&#9670;&#160;</a></span>lzma_str_list_filters()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_str_list_filters </td>
- <td>(</td>
- <td class="paramtype">char **&#160;</td>
- <td class="paramname"><em>str</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>filter_id</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>flags</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>List available filters and/or their options (for help message) </p>
-<p>If a filter_id is given then only one line is created which contains the filter name. If LZMA_STR_ENCODER or LZMA_STR_DECODER is used then the options read by the encoder or decoder are printed on the same line.</p>
-<p>If filter_id is LZMA_VLI_UNKNOWN then all supported .xz-compatible filters are listed:</p>
-<ul>
-<li>If neither LZMA_STR_ENCODER nor LZMA_STR_DECODER is used then the supported filter names are listed on a single line separated by spaces.</li>
-<li>If LZMA_STR_ENCODER or LZMA_STR_DECODER is used then filters and the supported options are listed one filter per line. There won't be a newline after the last filter.</li>
-<li>If LZMA_STR_ALL_FILTERS is used then the list will include also those filters that cannot be used in the .xz format (LZMA1).</li>
-</ul>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">str</td><td>On success *str will be set to point to an allocated string listing the filters and options. Old value is ignored. On error *str is always set to NULL. </td></tr>
- <tr><td class="paramname">filter_id</td><td>Filter ID or LZMA_VLI_UNKNOWN. </td></tr>
- <tr><td class="paramname">flags</td><td>Bitwise-or of zero or more of the flags LZMA_STR_ALL_FILTERS, LZMA_STR_ENCODER, LZMA_STR_DECODER, and LZMA_STR_GETOPT_LONG. </td></tr>
- <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_OPTIONS_ERROR: Unsupported filter_id or flags</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/folderclosed.svg b/doc/api/folderclosed.svg
deleted file mode 100644
index 47d22df..0000000
--- a/doc/api/folderclosed.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
-<g style="fill:#195794;">
-<path d="M1,5.998l-0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm2,-0l-0,16.002c-0,0.796 0.316,1.559 0.879,2.121c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121c0,-3.486 0,-8.514 0,-12c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998Z"/>
-</g>
-<g style="fill:#BFD9F4;stroke-width:0;">
-<path d="M 5.6063709,24.951908 C 4.3924646,24.775461 3.4197129,23.899792 3.1031586,22.698521 L 3.0216155,22.389078 V 13.997725 5.6063709 L 3.1037477,5.2982247 C 3.3956682,4.2029881 4.1802788,3.412126 5.2787258,3.105917 5.5646428,3.0262132 5.6154982,3.0244963 8.0611641,3.0119829 l 2.4911989,-0.012746 1.932009,1.9300342 c 1.344142,1.3427669 1.976319,1.9498819 2.07763,1.9952626 0.137456,0.061571 0.474218,0.066269 6.006826,0.083795 l 5.861206,0.018568 0.29124,0.081916 c 1.094895,0.3079569 1.890116,1.109428 2.175567,2.192667 l 0.08154,0.3094425 V 16 22.389078 l -0.08154,0.309443 c -0.28446,1.079482 -1.086411,1.888085 -2.175567,2.193614 l -0.29124,0.0817 -10.302616,0.0049 c -5.700217,0.0027 -10.4001945,-0.0093 -10.5210471,-0.02684 z"/>
-</g>
-</svg>
diff --git a/doc/api/folderclosedd.svg b/doc/api/folderclosedd.svg
deleted file mode 100644
index 8fe0031..0000000
--- a/doc/api/folderclosedd.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
-<g style="fill:#A0C7EE;">
-<path d="M1,5.998l-0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm2,-0l-0,16.002c-0,0.796 0.316,1.559 0.879,2.121c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121c0,-3.486 0,-8.514 0,-12c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998Z"/>
-</g>
-<g style="fill:#195794;stroke-width:0;">
-<path d="M 5.6063709,24.951908 C 4.3924646,24.775461 3.4197129,23.899792 3.1031586,22.698521 L 3.0216155,22.389078 V 13.997725 5.6063709 L 3.1037477,5.2982247 C 3.3956682,4.2029881 4.1802788,3.412126 5.2787258,3.105917 5.5646428,3.0262132 5.6154982,3.0244963 8.0611641,3.0119829 l 2.4911989,-0.012746 1.932009,1.9300342 c 1.344142,1.3427669 1.976319,1.9498819 2.07763,1.9952626 0.137456,0.061571 0.474218,0.066269 6.006826,0.083795 l 5.861206,0.018568 0.29124,0.081916 c 1.094895,0.3079569 1.890116,1.109428 2.175567,2.192667 l 0.08154,0.3094425 V 16 22.389078 l -0.08154,0.309443 c -0.28446,1.079482 -1.086411,1.888085 -2.175567,2.193614 l -0.29124,0.0817 -10.302616,0.0049 c -5.700217,0.0027 -10.4001945,-0.0093 -10.5210471,-0.02684 z"/>
-</g>
-</svg>
diff --git a/doc/api/folderopen.svg b/doc/api/folderopen.svg
deleted file mode 100644
index 9565570..0000000
--- a/doc/api/folderopen.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
-<g style="fill:#195794;">
-<path
- d="M1,5.998l0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm28,14.415l-3.456,-5.925c-0.538,-0.921 -1.524,-1.488 -2.591,-1.488c-0,0 -12.905,0 -12.906,0c-1.067,0 -2.053,0.567 -2.591,1.488l-4.453,7.635c0.03,0.751 0.342,1.465 0.876,1.998c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121l0,-1.587Zm0,-3.969l0,-6.444c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998l0,12.16l2.729,-4.677c0.896,-1.536 2.54,-2.481 4.318,-2.481c3.354,0 9.552,0 12.906,0c1.778,0 3.422,0.945 4.318,2.481l1.729,2.963Z"
- id="path2" />
-</g>
-<g style="fill:#BFD9F4;stroke-width:0;">
-<path
- d="M 5.3879408,24.913408 C 4.1598821,24.650818 3.1571088,23.558656 3.053503,22.370876 L 3.0312746,22.116041 5.2606813,18.293515 C 6.486855,16.191126 7.5598351,14.372696 7.6450818,14.25256 8.0043056,13.746312 8.5423079,13.363007 9.2104664,13.137285 l 0.2548351,-0.08609 6.9294785,-0.0097 c 6.805096,-0.0095 6.934944,-0.0084 7.234011,0.06267 0.695577,0.165199 1.290483,0.557253 1.714887,1.130141 0.08158,0.110125 0.938747,1.556711 1.90481,3.214634 l 1.756479,3.014406 -0.0186,0.971942 c -0.01387,0.724723 -0.03365,1.032131 -0.07778,1.208575 -0.242792,0.970733 -0.88732,1.735415 -1.772382,2.102793 -0.58835,0.244217 0.247209,0.227436 -11.161974,0.224159 -9.0281537,-0.0026 -10.3636023,-0.0098 -10.5862902,-0.05746 z"
- id="path199" /><path
- d="M 3.0126385,11.849829 3.0235061,5.5881684 3.1020974,5.2969283 C 3.3478146,4.3863605 3.93576,3.6757372 4.756668,3.2971229 5.3293315,3.0330025 5.1813272,3.0450949 8.0130385,3.0310668 l 2.5522875,-0.012644 1.918693,1.9107086 c 1.404146,1.3983023 1.964459,1.9332518 2.089351,1.9947704 l 0.170657,0.084062 5.897611,0.019367 c 5.553257,0.018236 5.910365,0.023213 6.116041,0.085231 1.102257,0.3323708 1.857042,1.1184422 2.154229,2.2435244 0.05645,0.2137228 0.06373,0.5643981 0.07519,3.6220748 0.0076,2.032169 -5.42e-4,3.370979 -0.02041,3.349261 -0.0182,-0.0199 -0.414296,-0.691472 -0.880217,-1.492382 -0.46592,-0.80091 -0.93093,-1.577954 -1.033354,-1.726764 -0.735716,-1.0689 -1.983568,-1.844244 -3.315972,-2.060353 -0.280375,-0.04548 -1.345158,-0.05334 -7.238708,-0.05347 -4.713933,-1.09e-4 -6.9931825,0.01221 -7.1717862,0.03874 -1.3002273,0.193134 -2.4770512,0.889916 -3.283628,1.944192 -0.1076466,0.140705 -0.8359664,1.353438 -1.6184885,2.694963 L 3.0017709,18.11149 Z"
- id="path201" />
-</g>
-</svg>
diff --git a/doc/api/folderopend.svg b/doc/api/folderopend.svg
deleted file mode 100644
index e72e225..0000000
--- a/doc/api/folderopend.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
-<g style="fill:#A0C7EE;">
-<path d="M1,5.998l0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm28,14.415l-3.456,-5.925c-0.538,-0.921 -1.524,-1.488 -2.591,-1.488c-0,0 -12.905,0 -12.906,0c-1.067,0 -2.053,0.567 -2.591,1.488l-4.453,7.635c0.03,0.751 0.342,1.465 0.876,1.998c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121l0,-1.587Zm0,-3.969l0,-6.444c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998l0,12.16l2.729,-4.677c0.896,-1.536 2.54,-2.481 4.318,-2.481c3.354,0 9.552,0 12.906,0c1.778,0 3.422,0.945 4.318,2.481l1.729,2.963Z"/>
-</g>
-<g style="fill:#195794;stroke-width:0;">
-<path d="M 5.3879408,24.913408 C 4.1598821,24.650818 3.1571088,23.558656 3.053503,22.370876 L 3.0312746,22.116041 5.2606813,18.293515 C 6.486855,16.191126 7.5598351,14.372696 7.6450818,14.25256 8.0043056,13.746312 8.5423079,13.363007 9.2104664,13.137285 l 0.2548351,-0.08609 6.9294785,-0.0097 c 6.805096,-0.0095 6.934944,-0.0084 7.234011,0.06267 0.695577,0.165199 1.290483,0.557253 1.714887,1.130141 0.08158,0.110125 0.938747,1.556711 1.90481,3.214634 l 1.756479,3.014406 -0.0186,0.971942 c -0.01387,0.724723 -0.03365,1.032131 -0.07778,1.208575 -0.242792,0.970733 -0.88732,1.735415 -1.772382,2.102793 -0.58835,0.244217 0.247209,0.227436 -11.161974,0.224159 -9.0281537,-0.0026 -10.3636023,-0.0098 -10.5862902,-0.05746 z" />
-<path d="M 3.0126385,11.849829 3.0235061,5.5881684 3.1020974,5.2969283 C 3.3478146,4.3863605 3.93576,3.6757372 4.756668,3.2971229 5.3293315,3.0330025 5.1813272,3.0450949 8.0130385,3.0310668 l 2.5522875,-0.012644 1.918693,1.9107086 c 1.404146,1.3983023 1.964459,1.9332518 2.089351,1.9947704 l 0.170657,0.084062 5.897611,0.019367 c 5.553257,0.018236 5.910365,0.023213 6.116041,0.085231 1.102257,0.3323708 1.857042,1.1184422 2.154229,2.2435244 0.05645,0.2137228 0.06373,0.5643981 0.07519,3.6220748 0.0076,2.032169 -5.42e-4,3.370979 -0.02041,3.349261 -0.0182,-0.0199 -0.414296,-0.691472 -0.880217,-1.492382 -0.46592,-0.80091 -0.93093,-1.577954 -1.033354,-1.726764 -0.735716,-1.0689 -1.983568,-1.844244 -3.315972,-2.060353 -0.280375,-0.04548 -1.345158,-0.05334 -7.238708,-0.05347 -4.713933,-1.09e-4 -6.9931825,0.01221 -7.1717862,0.03874 -1.3002273,0.193134 -2.4770512,0.889916 -3.283628,1.944192 -0.1076466,0.140705 -0.8359664,1.353438 -1.6184885,2.694963 L 3.0017709,18.11149 Z" />
-</g>
-</svg>
diff --git a/doc/api/functions.html b/doc/api/functions.html
deleted file mode 100644
index b50cf73..0000000
--- a/doc/api/functions.html
+++ /dev/null
@@ -1,210 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): Data Fields</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="functions.html"><span>All</span></a></li>
- <li><a href="functions_vars.html"><span>Variables</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="#index_a"><span>a</span></a></li>
- <li><a href="#index_b"><span>b</span></a></li>
- <li><a href="#index_c"><span>c</span></a></li>
- <li><a href="#index_d"><span>d</span></a></li>
- <li><a href="#index_e"><span>e</span></a></li>
- <li><a href="#index_f"><span>f</span></a></li>
- <li><a href="#index_h"><span>h</span></a></li>
- <li><a href="#index_i"><span>i</span></a></li>
- <li><a href="#index_l"><span>l</span></a></li>
- <li><a href="#index_m"><span>m</span></a></li>
- <li><a href="#index_n"><span>n</span></a></li>
- <li><a href="#index_o"><span>o</span></a></li>
- <li><a href="#index_p"><span>p</span></a></li>
- <li><a href="#index_r"><span>r</span></a></li>
- <li><a href="#index_s"><span>s</span></a></li>
- <li><a href="#index_t"><span>t</span></a></li>
- <li><a href="#index_u"><span>u</span></a></li>
- <li class="current"><a href="#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="contents">
-<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div>
-
-<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
-<li>alloc&#160;:&#160;<a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec">lzma_allocator</a></li>
-<li>allocator&#160;:&#160;<a class="el" href="structlzma__stream.html#a4eb2f3e87e32cc4bea613898b0bd353f">lzma_stream</a></li>
-<li>avail_in&#160;:&#160;<a class="el" href="structlzma__stream.html#abb680ecea31910cbda1d7a6ad4f191c0">lzma_stream</a></li>
-<li>avail_out&#160;:&#160;<a class="el" href="structlzma__stream.html#a5ff28ea4e39148723c19f59811627904">lzma_stream</a></li>
-</ul>
-
-
-<h3><a id="index_b" name="index_b"></a>- b -</h3><ul>
-<li>backward_size&#160;:&#160;<a class="el" href="structlzma__stream__flags.html#aaa65ed7a55a098f829f04dba25d0f212">lzma_stream_flags</a></li>
-<li>block_count&#160;:&#160;<a class="el" href="structlzma__index__iter.html#abc6ee9be23e54f31aed07382c8caaf7c">lzma_index_iter</a></li>
-<li>block_size&#160;:&#160;<a class="el" href="structlzma__mt.html#a20cdc7865266ccb88da36a6e68f84d15">lzma_mt</a></li>
-</ul>
-
-
-<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
-<li>check&#160;:&#160;<a class="el" href="structlzma__block.html#a80cd9d3025991db4a476ce7588f853e6">lzma_block</a>, <a class="el" href="structlzma__mt.html#ae38846e8aca5b20d2a86a2364283b730">lzma_mt</a>, <a class="el" href="structlzma__stream__flags.html#ab1052ea7047c8d67f127f33278166647">lzma_stream_flags</a></li>
-<li>compressed_file_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a26436e75d4c2b5dd8d1de24140d8003e">lzma_index_iter</a></li>
-<li>compressed_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a426705df8dde4b094a42f91ea20a46ac">lzma_index_iter</a></li>
-<li>compressed_size&#160;:&#160;<a class="el" href="structlzma__block.html#a8383d489c9ffea8af390669a105c74e5">lzma_block</a>, <a class="el" href="structlzma__index__iter.html#a6e73b1f37e3fcf1e9491e4a53b2c52c7">lzma_index_iter</a></li>
-<li>compressed_stream_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a578bba553c43dc59a5e4032d4f6c89a3">lzma_index_iter</a></li>
-</ul>
-
-
-<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
-<li>depth&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a4226f686e8c9f6288595fe23d0e15713">lzma_options_lzma</a></li>
-<li>dict_size&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#aeb3f86002405a1191af86def46fca5ad">lzma_options_lzma</a></li>
-<li>dist&#160;:&#160;<a class="el" href="structlzma__options__delta.html#a31b4b0b5a2462cb9433c2663b8a62790">lzma_options_delta</a></li>
-</ul>
-
-
-<h3><a id="index_e" name="index_e"></a>- e -</h3><ul>
-<li>ext_flags&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#ade251d13ef46bcacb4e052b83693878c">lzma_options_lzma</a></li>
-<li>ext_size_high&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#ae5b3c2375c43ddfacf093980385fb9e3">lzma_options_lzma</a></li>
-<li>ext_size_low&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a971da8385dcebd01e60235afb3b717f9">lzma_options_lzma</a></li>
-</ul>
-
-
-<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
-<li>filters&#160;:&#160;<a class="el" href="structlzma__block.html#a5900e517e6e0a473a3184074ae7defd1">lzma_block</a>, <a class="el" href="structlzma__mt.html#ad43a62ef2178c76405e5be0ece7a98b4">lzma_mt</a></li>
-<li>flags&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a223a046bcf09077a6e720967682deeae">lzma_index_iter</a>, <a class="el" href="structlzma__mt.html#a1c2fe028f547bf58b48b5199557d9a9f">lzma_mt</a></li>
-<li>free&#160;:&#160;<a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009">lzma_allocator</a></li>
-</ul>
-
-
-<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
-<li>header_size&#160;:&#160;<a class="el" href="structlzma__block.html#a6689c4f7524b2c05772a2d6151138610">lzma_block</a></li>
-</ul>
-
-
-<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
-<li>id&#160;:&#160;<a class="el" href="structlzma__filter.html#aef1d9709759f39e61db77547b2326929">lzma_filter</a></li>
-<li>ignore_check&#160;:&#160;<a class="el" href="structlzma__block.html#a516ac9cc63bc1a4fadd9fbfc189a206b">lzma_block</a></li>
-<li>internal&#160;:&#160;<a class="el" href="structlzma__stream.html#a209da54c2fb5dea40ad011c8408300d0">lzma_stream</a></li>
-</ul>
-
-
-<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
-<li>lc&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a95f6188e5b5f05c50ec463a315df3585">lzma_options_lzma</a></li>
-<li>lp&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a0fe9c54e808fce3090b6994d95fe41fe">lzma_options_lzma</a></li>
-</ul>
-
-
-<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
-<li>memlimit_stop&#160;:&#160;<a class="el" href="structlzma__mt.html#ab5e0b530d4c572c7a2361aabbad656aa">lzma_mt</a></li>
-<li>memlimit_threading&#160;:&#160;<a class="el" href="structlzma__mt.html#a5a7fb0c7c2db350e09e77477bc3c9509">lzma_mt</a></li>
-<li>mf&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#aa99612cd52259093007f33513882dcd0">lzma_options_lzma</a></li>
-<li>mode&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a1d711df9bda046fd3899abf21fa250d5">lzma_options_lzma</a></li>
-</ul>
-
-
-<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
-<li>next_in&#160;:&#160;<a class="el" href="structlzma__stream.html#a72fdc738c793f07a5c29715aa57802cf">lzma_stream</a></li>
-<li>next_out&#160;:&#160;<a class="el" href="structlzma__stream.html#a14ee64ed636ddcb775edf87e2b9f42ec">lzma_stream</a></li>
-<li>nice_len&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a0352ea7f8b6a43b745a44f6cb4e2d263">lzma_options_lzma</a></li>
-<li>number&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a115a307dbc778a9de296376dc39c7b23">lzma_index_iter</a></li>
-<li>number_in_file&#160;:&#160;<a class="el" href="structlzma__index__iter.html#abe5333de53562189012d5ed084c0ef98">lzma_index_iter</a></li>
-<li>number_in_stream&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a35a752d344ff5d35d2a858a20bd6e5e8">lzma_index_iter</a></li>
-</ul>
-
-
-<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
-<li>opaque&#160;:&#160;<a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">lzma_allocator</a></li>
-<li>options&#160;:&#160;<a class="el" href="structlzma__filter.html#a10dfbaa1601793657d12320bef933ee6">lzma_filter</a></li>
-</ul>
-
-
-<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
-<li>padding&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a48cfc856f283fe00b0df37402e012818">lzma_index_iter</a></li>
-<li>pb&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#acae107b3d3e9d0d4fe16103be22f4408">lzma_options_lzma</a></li>
-<li>preset&#160;:&#160;<a class="el" href="structlzma__mt.html#ab3883b5644752cdd15f01387d58dd050">lzma_mt</a></li>
-<li>preset_dict&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a16a58c1ee3ec18c820d5cb03dde3739a">lzma_options_lzma</a></li>
-<li>preset_dict_size&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a655ad4cce9e4dac9cf2a5c8daaa629e0">lzma_options_lzma</a></li>
-</ul>
-
-
-<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
-<li>raw_check&#160;:&#160;<a class="el" href="structlzma__block.html#a25e9bf1bb1699017694b18ca24f965d2">lzma_block</a></li>
-</ul>
-
-
-<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
-<li>seek_pos&#160;:&#160;<a class="el" href="structlzma__stream.html#af7c43a61f3dfeb0b9c8487b7f275054e">lzma_stream</a></li>
-<li>start_offset&#160;:&#160;<a class="el" href="structlzma__options__bcj.html#a3f5a3c62cd82ce89433684f12ed096ac">lzma_options_bcj</a></li>
-</ul>
-
-
-<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
-<li>threads&#160;:&#160;<a class="el" href="structlzma__mt.html#a881761f858dbda33c697e74acde0be70">lzma_mt</a></li>
-<li>timeout&#160;:&#160;<a class="el" href="structlzma__mt.html#a298992bf7d2154d8dd814560219d10c2">lzma_mt</a></li>
-<li>total_in&#160;:&#160;<a class="el" href="structlzma__stream.html#a1a411e1755d6185756caefabc3932c7b">lzma_stream</a></li>
-<li>total_out&#160;:&#160;<a class="el" href="structlzma__stream.html#a80d703ffdfd7661e344fe7b61ff737fa">lzma_stream</a></li>
-<li>total_size&#160;:&#160;<a class="el" href="structlzma__index__iter.html#ae164ca3d7492dcf5883769c38baac30e">lzma_index_iter</a></li>
-<li>type&#160;:&#160;<a class="el" href="structlzma__options__delta.html#af3f1ece7f8c472f4a794953b414c7cd7">lzma_options_delta</a></li>
-</ul>
-
-
-<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
-<li>uncompressed_file_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a2f3ecf341b5dc043e9673759b8ff47b9">lzma_index_iter</a></li>
-<li>uncompressed_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#abd374b748b4a42e122b90841709609bc">lzma_index_iter</a></li>
-<li>uncompressed_size&#160;:&#160;<a class="el" href="structlzma__block.html#a17362d38d1946dd16a9686557ec19a94">lzma_block</a>, <a class="el" href="structlzma__index__iter.html#aafc48408ed40060a84ecd66bae5e1b23">lzma_index_iter</a></li>
-<li>uncompressed_stream_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a0fc4959fab08e1a6a4902c728c735a99">lzma_index_iter</a></li>
-<li>unpadded_size&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a9f4e405b9884be08e3a35bc06e3e15df">lzma_index_iter</a></li>
-</ul>
-
-
-<h3><a id="index_v" name="index_v"></a>- v -</h3><ul>
-<li>version&#160;:&#160;<a class="el" href="structlzma__block.html#ac3936a5b0ec3f9b8f9c7ad68e7d149a5">lzma_block</a>, <a class="el" href="structlzma__stream__flags.html#a61e9151869d5b77c868aaa4958e74d10">lzma_stream_flags</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/functions_vars.html b/doc/api/functions_vars.html
deleted file mode 100644
index f6d689c..0000000
--- a/doc/api/functions_vars.html
+++ /dev/null
@@ -1,210 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): Data Fields - Variables</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="functions.html"><span>All</span></a></li>
- <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="#index_a"><span>a</span></a></li>
- <li><a href="#index_b"><span>b</span></a></li>
- <li><a href="#index_c"><span>c</span></a></li>
- <li><a href="#index_d"><span>d</span></a></li>
- <li><a href="#index_e"><span>e</span></a></li>
- <li><a href="#index_f"><span>f</span></a></li>
- <li><a href="#index_h"><span>h</span></a></li>
- <li><a href="#index_i"><span>i</span></a></li>
- <li><a href="#index_l"><span>l</span></a></li>
- <li><a href="#index_m"><span>m</span></a></li>
- <li><a href="#index_n"><span>n</span></a></li>
- <li><a href="#index_o"><span>o</span></a></li>
- <li><a href="#index_p"><span>p</span></a></li>
- <li><a href="#index_r"><span>r</span></a></li>
- <li><a href="#index_s"><span>s</span></a></li>
- <li><a href="#index_t"><span>t</span></a></li>
- <li><a href="#index_u"><span>u</span></a></li>
- <li class="current"><a href="#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="contents">
-<div class="textblock">Here is a list of all documented variables with links to the struct/union documentation for each field:</div>
-
-<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
-<li>alloc&#160;:&#160;<a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec">lzma_allocator</a></li>
-<li>allocator&#160;:&#160;<a class="el" href="structlzma__stream.html#a4eb2f3e87e32cc4bea613898b0bd353f">lzma_stream</a></li>
-<li>avail_in&#160;:&#160;<a class="el" href="structlzma__stream.html#abb680ecea31910cbda1d7a6ad4f191c0">lzma_stream</a></li>
-<li>avail_out&#160;:&#160;<a class="el" href="structlzma__stream.html#a5ff28ea4e39148723c19f59811627904">lzma_stream</a></li>
-</ul>
-
-
-<h3><a id="index_b" name="index_b"></a>- b -</h3><ul>
-<li>backward_size&#160;:&#160;<a class="el" href="structlzma__stream__flags.html#aaa65ed7a55a098f829f04dba25d0f212">lzma_stream_flags</a></li>
-<li>block_count&#160;:&#160;<a class="el" href="structlzma__index__iter.html#abc6ee9be23e54f31aed07382c8caaf7c">lzma_index_iter</a></li>
-<li>block_size&#160;:&#160;<a class="el" href="structlzma__mt.html#a20cdc7865266ccb88da36a6e68f84d15">lzma_mt</a></li>
-</ul>
-
-
-<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
-<li>check&#160;:&#160;<a class="el" href="structlzma__block.html#a80cd9d3025991db4a476ce7588f853e6">lzma_block</a>, <a class="el" href="structlzma__mt.html#ae38846e8aca5b20d2a86a2364283b730">lzma_mt</a>, <a class="el" href="structlzma__stream__flags.html#ab1052ea7047c8d67f127f33278166647">lzma_stream_flags</a></li>
-<li>compressed_file_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a26436e75d4c2b5dd8d1de24140d8003e">lzma_index_iter</a></li>
-<li>compressed_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a426705df8dde4b094a42f91ea20a46ac">lzma_index_iter</a></li>
-<li>compressed_size&#160;:&#160;<a class="el" href="structlzma__block.html#a8383d489c9ffea8af390669a105c74e5">lzma_block</a>, <a class="el" href="structlzma__index__iter.html#a6e73b1f37e3fcf1e9491e4a53b2c52c7">lzma_index_iter</a></li>
-<li>compressed_stream_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a578bba553c43dc59a5e4032d4f6c89a3">lzma_index_iter</a></li>
-</ul>
-
-
-<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
-<li>depth&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a4226f686e8c9f6288595fe23d0e15713">lzma_options_lzma</a></li>
-<li>dict_size&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#aeb3f86002405a1191af86def46fca5ad">lzma_options_lzma</a></li>
-<li>dist&#160;:&#160;<a class="el" href="structlzma__options__delta.html#a31b4b0b5a2462cb9433c2663b8a62790">lzma_options_delta</a></li>
-</ul>
-
-
-<h3><a id="index_e" name="index_e"></a>- e -</h3><ul>
-<li>ext_flags&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#ade251d13ef46bcacb4e052b83693878c">lzma_options_lzma</a></li>
-<li>ext_size_high&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#ae5b3c2375c43ddfacf093980385fb9e3">lzma_options_lzma</a></li>
-<li>ext_size_low&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a971da8385dcebd01e60235afb3b717f9">lzma_options_lzma</a></li>
-</ul>
-
-
-<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
-<li>filters&#160;:&#160;<a class="el" href="structlzma__block.html#a5900e517e6e0a473a3184074ae7defd1">lzma_block</a>, <a class="el" href="structlzma__mt.html#ad43a62ef2178c76405e5be0ece7a98b4">lzma_mt</a></li>
-<li>flags&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a223a046bcf09077a6e720967682deeae">lzma_index_iter</a>, <a class="el" href="structlzma__mt.html#a1c2fe028f547bf58b48b5199557d9a9f">lzma_mt</a></li>
-<li>free&#160;:&#160;<a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009">lzma_allocator</a></li>
-</ul>
-
-
-<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
-<li>header_size&#160;:&#160;<a class="el" href="structlzma__block.html#a6689c4f7524b2c05772a2d6151138610">lzma_block</a></li>
-</ul>
-
-
-<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
-<li>id&#160;:&#160;<a class="el" href="structlzma__filter.html#aef1d9709759f39e61db77547b2326929">lzma_filter</a></li>
-<li>ignore_check&#160;:&#160;<a class="el" href="structlzma__block.html#a516ac9cc63bc1a4fadd9fbfc189a206b">lzma_block</a></li>
-<li>internal&#160;:&#160;<a class="el" href="structlzma__stream.html#a209da54c2fb5dea40ad011c8408300d0">lzma_stream</a></li>
-</ul>
-
-
-<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
-<li>lc&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a95f6188e5b5f05c50ec463a315df3585">lzma_options_lzma</a></li>
-<li>lp&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a0fe9c54e808fce3090b6994d95fe41fe">lzma_options_lzma</a></li>
-</ul>
-
-
-<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
-<li>memlimit_stop&#160;:&#160;<a class="el" href="structlzma__mt.html#ab5e0b530d4c572c7a2361aabbad656aa">lzma_mt</a></li>
-<li>memlimit_threading&#160;:&#160;<a class="el" href="structlzma__mt.html#a5a7fb0c7c2db350e09e77477bc3c9509">lzma_mt</a></li>
-<li>mf&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#aa99612cd52259093007f33513882dcd0">lzma_options_lzma</a></li>
-<li>mode&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a1d711df9bda046fd3899abf21fa250d5">lzma_options_lzma</a></li>
-</ul>
-
-
-<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
-<li>next_in&#160;:&#160;<a class="el" href="structlzma__stream.html#a72fdc738c793f07a5c29715aa57802cf">lzma_stream</a></li>
-<li>next_out&#160;:&#160;<a class="el" href="structlzma__stream.html#a14ee64ed636ddcb775edf87e2b9f42ec">lzma_stream</a></li>
-<li>nice_len&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a0352ea7f8b6a43b745a44f6cb4e2d263">lzma_options_lzma</a></li>
-<li>number&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a115a307dbc778a9de296376dc39c7b23">lzma_index_iter</a></li>
-<li>number_in_file&#160;:&#160;<a class="el" href="structlzma__index__iter.html#abe5333de53562189012d5ed084c0ef98">lzma_index_iter</a></li>
-<li>number_in_stream&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a35a752d344ff5d35d2a858a20bd6e5e8">lzma_index_iter</a></li>
-</ul>
-
-
-<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
-<li>opaque&#160;:&#160;<a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">lzma_allocator</a></li>
-<li>options&#160;:&#160;<a class="el" href="structlzma__filter.html#a10dfbaa1601793657d12320bef933ee6">lzma_filter</a></li>
-</ul>
-
-
-<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
-<li>padding&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a48cfc856f283fe00b0df37402e012818">lzma_index_iter</a></li>
-<li>pb&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#acae107b3d3e9d0d4fe16103be22f4408">lzma_options_lzma</a></li>
-<li>preset&#160;:&#160;<a class="el" href="structlzma__mt.html#ab3883b5644752cdd15f01387d58dd050">lzma_mt</a></li>
-<li>preset_dict&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a16a58c1ee3ec18c820d5cb03dde3739a">lzma_options_lzma</a></li>
-<li>preset_dict_size&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a655ad4cce9e4dac9cf2a5c8daaa629e0">lzma_options_lzma</a></li>
-</ul>
-
-
-<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
-<li>raw_check&#160;:&#160;<a class="el" href="structlzma__block.html#a25e9bf1bb1699017694b18ca24f965d2">lzma_block</a></li>
-</ul>
-
-
-<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
-<li>seek_pos&#160;:&#160;<a class="el" href="structlzma__stream.html#af7c43a61f3dfeb0b9c8487b7f275054e">lzma_stream</a></li>
-<li>start_offset&#160;:&#160;<a class="el" href="structlzma__options__bcj.html#a3f5a3c62cd82ce89433684f12ed096ac">lzma_options_bcj</a></li>
-</ul>
-
-
-<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
-<li>threads&#160;:&#160;<a class="el" href="structlzma__mt.html#a881761f858dbda33c697e74acde0be70">lzma_mt</a></li>
-<li>timeout&#160;:&#160;<a class="el" href="structlzma__mt.html#a298992bf7d2154d8dd814560219d10c2">lzma_mt</a></li>
-<li>total_in&#160;:&#160;<a class="el" href="structlzma__stream.html#a1a411e1755d6185756caefabc3932c7b">lzma_stream</a></li>
-<li>total_out&#160;:&#160;<a class="el" href="structlzma__stream.html#a80d703ffdfd7661e344fe7b61ff737fa">lzma_stream</a></li>
-<li>total_size&#160;:&#160;<a class="el" href="structlzma__index__iter.html#ae164ca3d7492dcf5883769c38baac30e">lzma_index_iter</a></li>
-<li>type&#160;:&#160;<a class="el" href="structlzma__options__delta.html#af3f1ece7f8c472f4a794953b414c7cd7">lzma_options_delta</a></li>
-</ul>
-
-
-<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
-<li>uncompressed_file_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a2f3ecf341b5dc043e9673759b8ff47b9">lzma_index_iter</a></li>
-<li>uncompressed_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#abd374b748b4a42e122b90841709609bc">lzma_index_iter</a></li>
-<li>uncompressed_size&#160;:&#160;<a class="el" href="structlzma__block.html#a17362d38d1946dd16a9686557ec19a94">lzma_block</a>, <a class="el" href="structlzma__index__iter.html#aafc48408ed40060a84ecd66bae5e1b23">lzma_index_iter</a></li>
-<li>uncompressed_stream_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a0fc4959fab08e1a6a4902c728c735a99">lzma_index_iter</a></li>
-<li>unpadded_size&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a9f4e405b9884be08e3a35bc06e3e15df">lzma_index_iter</a></li>
-</ul>
-
-
-<h3><a id="index_v" name="index_v"></a>- v -</h3><ul>
-<li>version&#160;:&#160;<a class="el" href="structlzma__block.html#ac3936a5b0ec3f9b8f9c7ad68e7d149a5">lzma_block</a>, <a class="el" href="structlzma__stream__flags.html#a61e9151869d5b77c868aaa4958e74d10">lzma_stream_flags</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/globals.html b/doc/api/globals.html
deleted file mode 100644
index f80423c..0000000
--- a/doc/api/globals.html
+++ /dev/null
@@ -1,272 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li class="current"><a href="globals.html#index_l"><span>l</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="contents">
-<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
-
-<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
-<li>lzma_action&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">base.h</a></li>
-<li>lzma_alone_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a5f43c3a1035e5a226dcd298f4162b861">container.h</a></li>
-<li>lzma_alone_encoder()&#160;:&#160;<a class="el" href="container_8h.html#a26fcc5bccdf3f862caa4c992d01e1a72">container.h</a></li>
-<li>lzma_auto_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a21cbebf2771617bb1e956385cfb353e3">container.h</a></li>
-<li>LZMA_BACKWARD_SIZE_MAX&#160;:&#160;<a class="el" href="stream__flags_8h.html#a2e5e09010880f8caa6cd6539c7341239">stream_flags.h</a></li>
-<li>LZMA_BACKWARD_SIZE_MIN&#160;:&#160;<a class="el" href="stream__flags_8h.html#ae8da8190f1396f66332073946bc45634">stream_flags.h</a></li>
-<li>lzma_block_buffer_bound()&#160;:&#160;<a class="el" href="block_8h.html#a58ff73e2572b529f48cc590bfffe5b4f">block.h</a></li>
-<li>lzma_block_buffer_decode()&#160;:&#160;<a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f">block.h</a></li>
-<li>lzma_block_buffer_encode()&#160;:&#160;<a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54">block.h</a></li>
-<li>lzma_block_compressed_size()&#160;:&#160;<a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc">block.h</a></li>
-<li>lzma_block_decoder()&#160;:&#160;<a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92">block.h</a></li>
-<li>lzma_block_encoder()&#160;:&#160;<a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359">block.h</a></li>
-<li>lzma_block_header_decode()&#160;:&#160;<a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9">block.h</a></li>
-<li>lzma_block_header_encode()&#160;:&#160;<a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0">block.h</a></li>
-<li>lzma_block_header_size()&#160;:&#160;<a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd">block.h</a></li>
-<li>lzma_block_header_size_decode&#160;:&#160;<a class="el" href="block_8h.html#ac025c940683a70f4c7f956bad814fd5f">block.h</a></li>
-<li>lzma_block_total_size()&#160;:&#160;<a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9">block.h</a></li>
-<li>lzma_block_uncomp_encode()&#160;:&#160;<a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c">block.h</a></li>
-<li>lzma_block_unpadded_size()&#160;:&#160;<a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30">block.h</a></li>
-<li>lzma_bool&#160;:&#160;<a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">base.h</a></li>
-<li>LZMA_BUF_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea9ca0ecb62459bdc84d6af47d16b23ae5">base.h</a></li>
-<li>lzma_check&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">check.h</a></li>
-<li>LZMA_CHECK_CRC32&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa0be65014a40b5cb4ab32252b3709bef7">check.h</a></li>
-<li>LZMA_CHECK_CRC64&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa87b4b0697a1e1ccb6766dd5c2fa24afc">check.h</a></li>
-<li>LZMA_CHECK_ID_MAX&#160;:&#160;<a class="el" href="check_8h.html#acd221ababe30230d9647aab469ad80cb">check.h</a></li>
-<li>lzma_check_is_supported()&#160;:&#160;<a class="el" href="check_8h.html#ae9391ed2acfad0ce9357b68c608f07d8">check.h</a></li>
-<li>LZMA_CHECK_NONE&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa7b9851d75abfabc08d7fc5b4aaeb6f20">check.h</a></li>
-<li>LZMA_CHECK_SHA256&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3faf26a55ddd204a50ae87ec3432e7bc309">check.h</a></li>
-<li>lzma_check_size()&#160;:&#160;<a class="el" href="check_8h.html#afd3fda19575d9d4f864c626c02b7cb48">check.h</a></li>
-<li>LZMA_CHECK_SIZE_MAX&#160;:&#160;<a class="el" href="check_8h.html#a379e931cf86351ab1d97896cda9abbe0">check.h</a></li>
-<li>lzma_code()&#160;:&#160;<a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957">base.h</a></li>
-<li>LZMA_CONCATENATED&#160;:&#160;<a class="el" href="container_8h.html#a563c84b5f368b3dd00d92ea903c5c33d">container.h</a></li>
-<li>lzma_cputhreads()&#160;:&#160;<a class="el" href="hardware_8h.html#a22f7a882b7a4b741a226abf62bdf46ca">hardware.h</a></li>
-<li>lzma_crc32()&#160;:&#160;<a class="el" href="check_8h.html#a760b569cce91bdd01e4ce9d78823c96d">check.h</a></li>
-<li>lzma_crc64()&#160;:&#160;<a class="el" href="check_8h.html#aff2e74ce671b9f82a96adb549c68cea2">check.h</a></li>
-<li>LZMA_DATA_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea3aa72729a844790e39b4e1101a731dfb">base.h</a></li>
-<li>LZMA_DELTA_DIST_MAX&#160;:&#160;<a class="el" href="delta_8h.html#afdf8a5ce184ddf9f8070de637775da94">delta.h</a></li>
-<li>LZMA_DELTA_DIST_MIN&#160;:&#160;<a class="el" href="delta_8h.html#a466886d9d01392f61bdf267687a4f96e">delta.h</a></li>
-<li>lzma_delta_type&#160;:&#160;<a class="el" href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">delta.h</a></li>
-<li>lzma_easy_buffer_encode()&#160;:&#160;<a class="el" href="container_8h.html#ac5e71f2711b57391186671967435faf2">container.h</a></li>
-<li>lzma_easy_decoder_memusage()&#160;:&#160;<a class="el" href="container_8h.html#a3562055d26c18fad067a7c7516eaddf5">container.h</a></li>
-<li>lzma_easy_encoder()&#160;:&#160;<a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4">container.h</a></li>
-<li>lzma_easy_encoder_memusage()&#160;:&#160;<a class="el" href="container_8h.html#a62c853cf7dbf008bdbd97b2685c3eabf">container.h</a></li>
-<li>lzma_end()&#160;:&#160;<a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308">base.h</a></li>
-<li>LZMA_FAIL_FAST&#160;:&#160;<a class="el" href="container_8h.html#aa1f469ed3d4b2eaf12f8081657efc9d5">container.h</a></li>
-<li>lzma_file_info_decoder()&#160;:&#160;<a class="el" href="index_8h.html#a7c5d77cf8532d95977d4571a1eb0a222">index.h</a></li>
-<li>LZMA_FILTER_ARM&#160;:&#160;<a class="el" href="bcj_8h.html#a495a58f63ebc7a8b756099efba492f8b">bcj.h</a></li>
-<li>LZMA_FILTER_ARM64&#160;:&#160;<a class="el" href="bcj_8h.html#a01765158cd31cac21b272b180628fc4b">bcj.h</a></li>
-<li>LZMA_FILTER_ARMTHUMB&#160;:&#160;<a class="el" href="bcj_8h.html#a5ec62e7e5e7df3d9af5b2ea3f857689a">bcj.h</a></li>
-<li>lzma_filter_decoder_is_supported()&#160;:&#160;<a class="el" href="filter_8h.html#acab0c67bf5b3a76f2b474c8e1da98938">filter.h</a></li>
-<li>LZMA_FILTER_DELTA&#160;:&#160;<a class="el" href="delta_8h.html#a7ced67235ad7a01ae31d32ecf1e634cb">delta.h</a></li>
-<li>lzma_filter_encoder_is_supported()&#160;:&#160;<a class="el" href="filter_8h.html#a3db3c36cd6e57658a74c53e4daa2bef6">filter.h</a></li>
-<li>lzma_filter_flags_decode()&#160;:&#160;<a class="el" href="filter_8h.html#a4cba9a4c658cce0ff01fd102b31ea1a7">filter.h</a></li>
-<li>lzma_filter_flags_encode()&#160;:&#160;<a class="el" href="filter_8h.html#a96f23309bc21398fece18c00ebe7db98">filter.h</a></li>
-<li>lzma_filter_flags_size()&#160;:&#160;<a class="el" href="filter_8h.html#a996c9c21840ed54e37bd1f664a79d940">filter.h</a></li>
-<li>LZMA_FILTER_IA64&#160;:&#160;<a class="el" href="bcj_8h.html#a2fe36218a38f400e1ce40820758f7427">bcj.h</a></li>
-<li>LZMA_FILTER_LZMA1&#160;:&#160;<a class="el" href="lzma12_8h.html#accedd16abcb758e7f748bac1102abda9">lzma12.h</a></li>
-<li>LZMA_FILTER_LZMA1EXT&#160;:&#160;<a class="el" href="lzma12_8h.html#a98a7fd42aa78a273a6b138629e46772d">lzma12.h</a></li>
-<li>LZMA_FILTER_LZMA2&#160;:&#160;<a class="el" href="lzma12_8h.html#a04f9d9a018a47cc99491e6e94e92f96b">lzma12.h</a></li>
-<li>LZMA_FILTER_POWERPC&#160;:&#160;<a class="el" href="bcj_8h.html#ab7f667d4a5d319f227f23163cbea086f">bcj.h</a></li>
-<li>LZMA_FILTER_SPARC&#160;:&#160;<a class="el" href="bcj_8h.html#a50941088e93ef659c6b000bbcaf58143">bcj.h</a></li>
-<li>LZMA_FILTER_X86&#160;:&#160;<a class="el" href="bcj_8h.html#aa9eac1f580ddde3309518cd153d596b1">bcj.h</a></li>
-<li>lzma_filters_copy()&#160;:&#160;<a class="el" href="filter_8h.html#a611fe1176eeeda187b1bd8aef45040aa">filter.h</a></li>
-<li>lzma_filters_free()&#160;:&#160;<a class="el" href="filter_8h.html#ae06979d219897f5f4c29cbc7a96a8892">filter.h</a></li>
-<li>LZMA_FILTERS_MAX&#160;:&#160;<a class="el" href="filter_8h.html#ab33c0cc1728bf390e5b84f8bce1928ba">filter.h</a></li>
-<li>lzma_filters_update()&#160;:&#160;<a class="el" href="filter_8h.html#a4a8fd969df001e449ebe4421ab33bba5">filter.h</a></li>
-<li>LZMA_FINISH&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea7d24fb3c6c144d13bcb091195b8ebec1">base.h</a></li>
-<li>LZMA_FORMAT_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea63b7a58949854eb9307f8e351358d56c">base.h</a></li>
-<li>LZMA_FULL_BARRIER&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77eaf7bf60e3555a4d10ffad3ecc3d2e01f1">base.h</a></li>
-<li>LZMA_FULL_FLUSH&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77eaab46f0d7c721f1ec377e9575eab2586f">base.h</a></li>
-<li>lzma_get_check()&#160;:&#160;<a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746">check.h</a></li>
-<li>LZMA_GET_CHECK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa5b648c18da0f584f621cfdf7fef1bdb">base.h</a></li>
-<li>lzma_get_progress()&#160;:&#160;<a class="el" href="base_8h.html#ab6447cd68eeecbd6b88f21daeb8ce751">base.h</a></li>
-<li>LZMA_IGNORE_CHECK&#160;:&#160;<a class="el" href="container_8h.html#a1289925ae1c63a8e86f69f3657118a4d">container.h</a></li>
-<li>lzma_index&#160;:&#160;<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">index.h</a></li>
-<li>lzma_index_append()&#160;:&#160;<a class="el" href="index_8h.html#ac347747eb933c7c408e6c801b33becc3">index.h</a></li>
-<li>lzma_index_block_count()&#160;:&#160;<a class="el" href="index_8h.html#add1a8c506f67dbc19cae6747107e3bec">index.h</a></li>
-<li>lzma_index_buffer_decode()&#160;:&#160;<a class="el" href="index_8h.html#a028b8b8d59a413f9682eea1269a6ae8b">index.h</a></li>
-<li>lzma_index_buffer_encode()&#160;:&#160;<a class="el" href="index_8h.html#add1ef06dec8a26d08ae8651cff0fd8d6">index.h</a></li>
-<li>lzma_index_cat()&#160;:&#160;<a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a">index.h</a></li>
-<li>lzma_index_checks()&#160;:&#160;<a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa">index.h</a></li>
-<li>lzma_index_decoder()&#160;:&#160;<a class="el" href="index_8h.html#abb56fd1d5914f8900ece7b88b78e5e23">index.h</a></li>
-<li>lzma_index_dup()&#160;:&#160;<a class="el" href="index_8h.html#a5161e3f67156577882e1d95dcb57e33e">index.h</a></li>
-<li>lzma_index_encoder()&#160;:&#160;<a class="el" href="index_8h.html#a6800d70f3b2afca085496460cd03211d">index.h</a></li>
-<li>lzma_index_end()&#160;:&#160;<a class="el" href="index_8h.html#a0c2d0009f07fc315d5ac89e4bcd25abd">index.h</a></li>
-<li>lzma_index_file_size()&#160;:&#160;<a class="el" href="index_8h.html#ac875ed47d35385e5dac461b25c5ea1c9">index.h</a></li>
-<li>lzma_index_hash&#160;:&#160;<a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">index_hash.h</a></li>
-<li>lzma_index_hash_append()&#160;:&#160;<a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f">index_hash.h</a></li>
-<li>lzma_index_hash_decode()&#160;:&#160;<a class="el" href="index__hash_8h.html#a891eb955284c9117155f92eb0ddba44c">index_hash.h</a></li>
-<li>lzma_index_hash_end()&#160;:&#160;<a class="el" href="index__hash_8h.html#a7dacb41b9ec1c8df5d33dfdae97743b3">index_hash.h</a></li>
-<li>lzma_index_hash_init()&#160;:&#160;<a class="el" href="index__hash_8h.html#aaafae4967a4a266d97dc34a98bfcabfb">index_hash.h</a></li>
-<li>lzma_index_hash_size()&#160;:&#160;<a class="el" href="index__hash_8h.html#a0f8ab3b57b117f9547866156755c917f">index_hash.h</a></li>
-<li>lzma_index_init()&#160;:&#160;<a class="el" href="index_8h.html#a0850627d011111326d4278a3e2edec25">index.h</a></li>
-<li>LZMA_INDEX_ITER_ANY&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8af46f6e5c414471c7c96586f380e48315">index.h</a></li>
-<li>LZMA_INDEX_ITER_BLOCK&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8a2702617d60d6fc15138a749e06ef3414">index.h</a></li>
-<li>lzma_index_iter_init()&#160;:&#160;<a class="el" href="index_8h.html#aa78f02f18ed29d289a6ef37b8ea98a21">index.h</a></li>
-<li>lzma_index_iter_locate()&#160;:&#160;<a class="el" href="index_8h.html#ac4f56df9d210712e5d7add5502c9eb93">index.h</a></li>
-<li>lzma_index_iter_mode&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">index.h</a></li>
-<li>lzma_index_iter_next()&#160;:&#160;<a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e">index.h</a></li>
-<li>LZMA_INDEX_ITER_NONEMPTY_BLOCK&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8aa49bf4d561d8f2c61d300edbb6c282c7">index.h</a></li>
-<li>lzma_index_iter_rewind()&#160;:&#160;<a class="el" href="index_8h.html#ae81438be8deff4894b104e65d8acdd24">index.h</a></li>
-<li>LZMA_INDEX_ITER_STREAM&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8a5b31d985de1c823151acdd7e4a966fc9">index.h</a></li>
-<li>lzma_index_memusage()&#160;:&#160;<a class="el" href="index_8h.html#a880def3727ecdd7f242807083d228fc5">index.h</a></li>
-<li>lzma_index_memused()&#160;:&#160;<a class="el" href="index_8h.html#a4118805ac7be6618aca6d6d7e5e4dde7">index.h</a></li>
-<li>lzma_index_size()&#160;:&#160;<a class="el" href="index_8h.html#a669ed1a82b1941217cfbb07e7826afc2">index.h</a></li>
-<li>lzma_index_stream_count()&#160;:&#160;<a class="el" href="index_8h.html#afd159a765b09b0cf79186069a848d07e">index.h</a></li>
-<li>lzma_index_stream_flags()&#160;:&#160;<a class="el" href="index_8h.html#a79a19669237f19f0b11c9f3be80a62b4">index.h</a></li>
-<li>lzma_index_stream_padding()&#160;:&#160;<a class="el" href="index_8h.html#a3ed82f96c688f3c953f6509b6f4e2ef3">index.h</a></li>
-<li>lzma_index_stream_size()&#160;:&#160;<a class="el" href="index_8h.html#af3630369b43c9ccc906065d759b49663">index.h</a></li>
-<li>lzma_index_total_size()&#160;:&#160;<a class="el" href="index_8h.html#a7829942b83ee1fa5b6443cc248b81041">index.h</a></li>
-<li>lzma_index_uncompressed_size()&#160;:&#160;<a class="el" href="index_8h.html#a620fe6317f1f9d7af9cc27c748bf07d6">index.h</a></li>
-<li>lzma_internal&#160;:&#160;<a class="el" href="base_8h.html#ab1a60127c640135687a5bcc232cec906">base.h</a></li>
-<li>lzma_lzip_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a97689f5709e0db1e2dac450f5ce4e5eb">container.h</a></li>
-<li>lzma_lzma_preset()&#160;:&#160;<a class="el" href="lzma12_8h.html#aa62c28944fe3575653a4c25780400d77">lzma12.h</a></li>
-<li>lzma_match_finder&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma12.h</a></li>
-<li>LZMA_MEM_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea567e1464feca03900a5425fb45b2f5b6">base.h</a></li>
-<li>LZMA_MEMLIMIT_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa1d705effe6026f32c0fe9756b6326bc">base.h</a></li>
-<li>lzma_memlimit_get()&#160;:&#160;<a class="el" href="base_8h.html#ac871bc2ead5d482c6d6b3d51bfec365c">base.h</a></li>
-<li>lzma_memlimit_set()&#160;:&#160;<a class="el" href="base_8h.html#afc49d4cf75b73128a167df3407505f7b">base.h</a></li>
-<li>lzma_memusage()&#160;:&#160;<a class="el" href="base_8h.html#a418b210cf206782a73cd9de7dc27f670">base.h</a></li>
-<li>LZMA_MF_BT2&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a7ab212446c3f6520f5c33ccfa4b3386a">lzma12.h</a></li>
-<li>LZMA_MF_BT3&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a983ecc59bf3e07a7c43fea551ea11865">lzma12.h</a></li>
-<li>LZMA_MF_BT4&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a468c32cdea9861d1ff98478364e6c547">lzma12.h</a></li>
-<li>LZMA_MF_HC3&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a6eb38f634021a192cada8a978b5de93b">lzma12.h</a></li>
-<li>LZMA_MF_HC4&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a0944620f4949289c2ebde613cae12b04">lzma12.h</a></li>
-<li>lzma_mf_is_supported()&#160;:&#160;<a class="el" href="lzma12_8h.html#aefba1f7214ddcf8cd408a0702e8642b5">lzma12.h</a></li>
-<li>lzma_microlzma_decoder()&#160;:&#160;<a class="el" href="container_8h.html#aa8372dae3e7c907c36f7bb5426aeacdf">container.h</a></li>
-<li>lzma_microlzma_encoder()&#160;:&#160;<a class="el" href="container_8h.html#abfc8f11acf837b167aa94b7071b54c30">container.h</a></li>
-<li>lzma_mode&#160;:&#160;<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma12.h</a></li>
-<li>LZMA_MODE_FAST&#160;:&#160;<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866ac8c0926a91b4f756e11121efd30648cc">lzma12.h</a></li>
-<li>lzma_mode_is_supported()&#160;:&#160;<a class="el" href="lzma12_8h.html#ad1add1c2600fdbb3d737e4fb3465dfcb">lzma12.h</a></li>
-<li>LZMA_MODE_NORMAL&#160;:&#160;<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866ad37225f30d5cd21fc8bb3eaba283bbf9">lzma12.h</a></li>
-<li>LZMA_NO_CHECK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa720d30092d504d7d138a320db1905ef">base.h</a></li>
-<li>LZMA_OK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eac003781ccb81bbd5578e29abed8a8cfe">base.h</a></li>
-<li>LZMA_OPTIONS_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa9ff6dfee36b7aba4fae60706d37425f">base.h</a></li>
-<li>lzma_physmem()&#160;:&#160;<a class="el" href="hardware_8h.html#a85363e453b34272a9f26c9fdffb041ee">hardware.h</a></li>
-<li>LZMA_PRESET_DEFAULT&#160;:&#160;<a class="el" href="container_8h.html#af3ca20ff228b363a82515c1aee9e27bc">container.h</a></li>
-<li>LZMA_PRESET_EXTREME&#160;:&#160;<a class="el" href="container_8h.html#af524fe9af5737820fdadcd40a2c26deb">container.h</a></li>
-<li>LZMA_PRESET_LEVEL_MASK&#160;:&#160;<a class="el" href="container_8h.html#a97e40265e355a21bd2465aaa5b85f03d">container.h</a></li>
-<li>LZMA_PROG_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea2dac8d451cb38da8550653d0d7be4ec2">base.h</a></li>
-<li>lzma_properties_decode()&#160;:&#160;<a class="el" href="filter_8h.html#a88d2e864b2039ac82802cc202278d478">filter.h</a></li>
-<li>lzma_properties_encode()&#160;:&#160;<a class="el" href="filter_8h.html#a8e00887086df5a44084ac22e48415de3">filter.h</a></li>
-<li>lzma_properties_size()&#160;:&#160;<a class="el" href="filter_8h.html#aee038818cf7bbe044c3f7a7c86998c1b">filter.h</a></li>
-<li>lzma_raw_buffer_decode()&#160;:&#160;<a class="el" href="filter_8h.html#a3b942df507e4f9a6d7525e5a4c6864e5">filter.h</a></li>
-<li>lzma_raw_buffer_encode()&#160;:&#160;<a class="el" href="filter_8h.html#a226724ab3391b410281fdf656cc7c432">filter.h</a></li>
-<li>lzma_raw_decoder()&#160;:&#160;<a class="el" href="filter_8h.html#ae77b3b6c5eccd9d77bbafef0a8a203c1">filter.h</a></li>
-<li>lzma_raw_decoder_memusage()&#160;:&#160;<a class="el" href="filter_8h.html#a58511249ae9206d7de7c5d1f05842297">filter.h</a></li>
-<li>lzma_raw_encoder()&#160;:&#160;<a class="el" href="filter_8h.html#a2368e4129032345eb0738b0c6e085703">filter.h</a></li>
-<li>lzma_raw_encoder_memusage()&#160;:&#160;<a class="el" href="filter_8h.html#a730f9391e85a5979bcd1b32643ae7176">filter.h</a></li>
-<li>lzma_reserved_enum&#160;:&#160;<a class="el" href="base_8h.html#a05805a07754b2aa22f7d443eb7ece41a">base.h</a></li>
-<li>lzma_ret&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">base.h</a></li>
-<li>LZMA_RUN&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea868472b76492afcaef54020a481890b1">base.h</a></li>
-<li>LZMA_SEEK_NEEDED&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea6cf28e5345851f13bd798a4eab8cc939">base.h</a></li>
-<li>lzma_set_ext_size&#160;:&#160;<a class="el" href="lzma12_8h.html#a73ed0293db4e59d73a702d66fef537c3">lzma12.h</a></li>
-<li>LZMA_STR_ALL_FILTERS&#160;:&#160;<a class="el" href="filter_8h.html#a41aa51eeb53190404439c31d8e9c97cd">filter.h</a></li>
-<li>LZMA_STR_DECODER&#160;:&#160;<a class="el" href="filter_8h.html#a8a0f3fc03bdb84a294cdd53a98783104">filter.h</a></li>
-<li>LZMA_STR_ENCODER&#160;:&#160;<a class="el" href="filter_8h.html#a09a775f6a78d28ca136acfb51ad5fa02">filter.h</a></li>
-<li>lzma_str_from_filters()&#160;:&#160;<a class="el" href="filter_8h.html#a7deeb86ef59a9111b8033681290e0fb0">filter.h</a></li>
-<li>LZMA_STR_GETOPT_LONG&#160;:&#160;<a class="el" href="filter_8h.html#a87e9ac4ae5829b092262223256141a29">filter.h</a></li>
-<li>lzma_str_list_filters()&#160;:&#160;<a class="el" href="filter_8h.html#ab51585b68796ce0270f87e615b923809">filter.h</a></li>
-<li>LZMA_STR_NO_SPACES&#160;:&#160;<a class="el" href="filter_8h.html#ac0113c47caf98a735db2297936c5e857">filter.h</a></li>
-<li>LZMA_STR_NO_VALIDATION&#160;:&#160;<a class="el" href="filter_8h.html#adc33f4c0c7b5d3ae36acc0437a904339">filter.h</a></li>
-<li>lzma_str_to_filters()&#160;:&#160;<a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30">filter.h</a></li>
-<li>lzma_stream_buffer_bound()&#160;:&#160;<a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e">container.h</a></li>
-<li>lzma_stream_buffer_decode()&#160;:&#160;<a class="el" href="container_8h.html#aa58f237f6cea97ef0eb9bf5c37a3008d">container.h</a></li>
-<li>lzma_stream_buffer_encode()&#160;:&#160;<a class="el" href="container_8h.html#a6e645ccaeace3b13a6981e03c6e190ad">container.h</a></li>
-<li>lzma_stream_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0">container.h</a></li>
-<li>lzma_stream_decoder_mt()&#160;:&#160;<a class="el" href="container_8h.html#a7179d178e6430c10e2006a467921e98e">container.h</a></li>
-<li>lzma_stream_encoder()&#160;:&#160;<a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52">container.h</a></li>
-<li>lzma_stream_encoder_mt()&#160;:&#160;<a class="el" href="container_8h.html#a3f8793518711ee84d1abf12ea3aaba42">container.h</a></li>
-<li>lzma_stream_encoder_mt_memusage()&#160;:&#160;<a class="el" href="container_8h.html#ad7cf41496d77f4d346e006b26ed8e101">container.h</a></li>
-<li>LZMA_STREAM_END&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea91ecc6fab14c13ad36224afbcb4e55c4">base.h</a></li>
-<li>lzma_stream_flags_compare()&#160;:&#160;<a class="el" href="stream__flags_8h.html#a3e25ca4205021302882a696283d45263">stream_flags.h</a></li>
-<li>lzma_stream_footer_decode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#aa92a383f85753bb79ee23227fa68186c">stream_flags.h</a></li>
-<li>lzma_stream_footer_encode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#a438249a75ea8da952a7474b92bfe7b7a">stream_flags.h</a></li>
-<li>lzma_stream_header_decode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#ae03198e464f0d296e601ff841e100805">stream_flags.h</a></li>
-<li>lzma_stream_header_encode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#a2ebb8d6dff23daeb3de398913b845eff">stream_flags.h</a></li>
-<li>LZMA_STREAM_HEADER_SIZE&#160;:&#160;<a class="el" href="stream__flags_8h.html#ada7e0a4f5e7146f547962cb9e9ef08ee">stream_flags.h</a></li>
-<li>LZMA_STREAM_INIT&#160;:&#160;<a class="el" href="base_8h.html#af31f0c8b6f14359cd082b9559f7f3e01">base.h</a></li>
-<li>LZMA_SYNC_FLUSH&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea14d75152afcda85d215e877fdd9c4170">base.h</a></li>
-<li>LZMA_TELL_ANY_CHECK&#160;:&#160;<a class="el" href="container_8h.html#a0bdde702a77ff42b90a99c0bf4147b6b">container.h</a></li>
-<li>LZMA_TELL_NO_CHECK&#160;:&#160;<a class="el" href="container_8h.html#ada9cd20febb28b5ed6656de9184a86e9">container.h</a></li>
-<li>LZMA_TELL_UNSUPPORTED_CHECK&#160;:&#160;<a class="el" href="container_8h.html#ae21fb746037c82735d40d428c462e078">container.h</a></li>
-<li>LZMA_UNSUPPORTED_CHECK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea989f393a1772d85bf545a9da48fc7ac2">base.h</a></li>
-<li>LZMA_VERSION&#160;:&#160;<a class="el" href="version_8h.html#a156c47ff34aa0c2b726d0daf799f10a0">version.h</a></li>
-<li>LZMA_VERSION_COMMIT&#160;:&#160;<a class="el" href="version_8h.html#a7fd6169ff15ac7f01f94970359a331ea">version.h</a></li>
-<li>LZMA_VERSION_MAJOR&#160;:&#160;<a class="el" href="version_8h.html#aa0f450c9d3b0ff5f88b55888ed55701f">version.h</a></li>
-<li>LZMA_VERSION_MINOR&#160;:&#160;<a class="el" href="version_8h.html#af8fd295cf8aa349b0731423ad7a56134">version.h</a></li>
-<li>lzma_version_number()&#160;:&#160;<a class="el" href="version_8h.html#a72f929c9b9e8e730b790b3f8c80c3c80">version.h</a></li>
-<li>LZMA_VERSION_PATCH&#160;:&#160;<a class="el" href="version_8h.html#a8b550373cbff381f15d4308b852a3c2a">version.h</a></li>
-<li>LZMA_VERSION_STABILITY&#160;:&#160;<a class="el" href="version_8h.html#ae289abe5dcc203c7cda9f6a9a2f36b3a">version.h</a></li>
-<li>LZMA_VERSION_STRING&#160;:&#160;<a class="el" href="version_8h.html#a57bb143c993c305a53e9aade831a546c">version.h</a></li>
-<li>lzma_version_string()&#160;:&#160;<a class="el" href="version_8h.html#a8998c1d8b4b5c2c1218bdfd58fdb1baa">version.h</a></li>
-<li>lzma_vli&#160;:&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">vli.h</a></li>
-<li>LZMA_VLI_BYTES_MAX&#160;:&#160;<a class="el" href="vli_8h.html#a063ecff4133aa2f8899b9fa3fdefd310">vli.h</a></li>
-<li>LZMA_VLI_C&#160;:&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">vli.h</a></li>
-<li>lzma_vli_decode()&#160;:&#160;<a class="el" href="vli_8h.html#a7b7d50e1074e0e2bcd81c29a5f7461c7">vli.h</a></li>
-<li>lzma_vli_encode()&#160;:&#160;<a class="el" href="vli_8h.html#a50bbb77e9ec3b72c25586aa700c20970">vli.h</a></li>
-<li>lzma_vli_is_valid&#160;:&#160;<a class="el" href="vli_8h.html#a4f67ed698215d865a2b87a95ab1320dd">vli.h</a></li>
-<li>LZMA_VLI_MAX&#160;:&#160;<a class="el" href="vli_8h.html#a7b782528bd1934db7c020adbedb20ec9">vli.h</a></li>
-<li>lzma_vli_size()&#160;:&#160;<a class="el" href="vli_8h.html#a8d53e0b69934b43da8721fa6f1e8cc4f">vli.h</a></li>
-<li>LZMA_VLI_UNKNOWN&#160;:&#160;<a class="el" href="vli_8h.html#a5a4b28254a30c859018b896ed371d69a">vli.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/globals_defs.html b/doc/api/globals_defs.html
deleted file mode 100644
index a7b945c..0000000
--- a/doc/api/globals_defs.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li class="current"><a href="#index_l"><span>l</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="contents">
-<div class="textblock">Here is a list of all documented macros with links to the documentation:</div>
-
-<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
-<li>LZMA_BACKWARD_SIZE_MAX&#160;:&#160;<a class="el" href="stream__flags_8h.html#a2e5e09010880f8caa6cd6539c7341239">stream_flags.h</a></li>
-<li>LZMA_BACKWARD_SIZE_MIN&#160;:&#160;<a class="el" href="stream__flags_8h.html#ae8da8190f1396f66332073946bc45634">stream_flags.h</a></li>
-<li>lzma_block_header_size_decode&#160;:&#160;<a class="el" href="block_8h.html#ac025c940683a70f4c7f956bad814fd5f">block.h</a></li>
-<li>LZMA_CHECK_ID_MAX&#160;:&#160;<a class="el" href="check_8h.html#acd221ababe30230d9647aab469ad80cb">check.h</a></li>
-<li>LZMA_CHECK_SIZE_MAX&#160;:&#160;<a class="el" href="check_8h.html#a379e931cf86351ab1d97896cda9abbe0">check.h</a></li>
-<li>LZMA_CONCATENATED&#160;:&#160;<a class="el" href="container_8h.html#a563c84b5f368b3dd00d92ea903c5c33d">container.h</a></li>
-<li>LZMA_DELTA_DIST_MAX&#160;:&#160;<a class="el" href="delta_8h.html#afdf8a5ce184ddf9f8070de637775da94">delta.h</a></li>
-<li>LZMA_DELTA_DIST_MIN&#160;:&#160;<a class="el" href="delta_8h.html#a466886d9d01392f61bdf267687a4f96e">delta.h</a></li>
-<li>LZMA_FAIL_FAST&#160;:&#160;<a class="el" href="container_8h.html#aa1f469ed3d4b2eaf12f8081657efc9d5">container.h</a></li>
-<li>LZMA_FILTER_ARM&#160;:&#160;<a class="el" href="bcj_8h.html#a495a58f63ebc7a8b756099efba492f8b">bcj.h</a></li>
-<li>LZMA_FILTER_ARM64&#160;:&#160;<a class="el" href="bcj_8h.html#a01765158cd31cac21b272b180628fc4b">bcj.h</a></li>
-<li>LZMA_FILTER_ARMTHUMB&#160;:&#160;<a class="el" href="bcj_8h.html#a5ec62e7e5e7df3d9af5b2ea3f857689a">bcj.h</a></li>
-<li>LZMA_FILTER_DELTA&#160;:&#160;<a class="el" href="delta_8h.html#a7ced67235ad7a01ae31d32ecf1e634cb">delta.h</a></li>
-<li>LZMA_FILTER_IA64&#160;:&#160;<a class="el" href="bcj_8h.html#a2fe36218a38f400e1ce40820758f7427">bcj.h</a></li>
-<li>LZMA_FILTER_LZMA1&#160;:&#160;<a class="el" href="lzma12_8h.html#accedd16abcb758e7f748bac1102abda9">lzma12.h</a></li>
-<li>LZMA_FILTER_LZMA1EXT&#160;:&#160;<a class="el" href="lzma12_8h.html#a98a7fd42aa78a273a6b138629e46772d">lzma12.h</a></li>
-<li>LZMA_FILTER_LZMA2&#160;:&#160;<a class="el" href="lzma12_8h.html#a04f9d9a018a47cc99491e6e94e92f96b">lzma12.h</a></li>
-<li>LZMA_FILTER_POWERPC&#160;:&#160;<a class="el" href="bcj_8h.html#ab7f667d4a5d319f227f23163cbea086f">bcj.h</a></li>
-<li>LZMA_FILTER_SPARC&#160;:&#160;<a class="el" href="bcj_8h.html#a50941088e93ef659c6b000bbcaf58143">bcj.h</a></li>
-<li>LZMA_FILTER_X86&#160;:&#160;<a class="el" href="bcj_8h.html#aa9eac1f580ddde3309518cd153d596b1">bcj.h</a></li>
-<li>LZMA_FILTERS_MAX&#160;:&#160;<a class="el" href="filter_8h.html#ab33c0cc1728bf390e5b84f8bce1928ba">filter.h</a></li>
-<li>LZMA_IGNORE_CHECK&#160;:&#160;<a class="el" href="container_8h.html#a1289925ae1c63a8e86f69f3657118a4d">container.h</a></li>
-<li>LZMA_PRESET_DEFAULT&#160;:&#160;<a class="el" href="container_8h.html#af3ca20ff228b363a82515c1aee9e27bc">container.h</a></li>
-<li>LZMA_PRESET_EXTREME&#160;:&#160;<a class="el" href="container_8h.html#af524fe9af5737820fdadcd40a2c26deb">container.h</a></li>
-<li>LZMA_PRESET_LEVEL_MASK&#160;:&#160;<a class="el" href="container_8h.html#a97e40265e355a21bd2465aaa5b85f03d">container.h</a></li>
-<li>lzma_set_ext_size&#160;:&#160;<a class="el" href="lzma12_8h.html#a73ed0293db4e59d73a702d66fef537c3">lzma12.h</a></li>
-<li>LZMA_STR_ALL_FILTERS&#160;:&#160;<a class="el" href="filter_8h.html#a41aa51eeb53190404439c31d8e9c97cd">filter.h</a></li>
-<li>LZMA_STR_DECODER&#160;:&#160;<a class="el" href="filter_8h.html#a8a0f3fc03bdb84a294cdd53a98783104">filter.h</a></li>
-<li>LZMA_STR_ENCODER&#160;:&#160;<a class="el" href="filter_8h.html#a09a775f6a78d28ca136acfb51ad5fa02">filter.h</a></li>
-<li>LZMA_STR_GETOPT_LONG&#160;:&#160;<a class="el" href="filter_8h.html#a87e9ac4ae5829b092262223256141a29">filter.h</a></li>
-<li>LZMA_STR_NO_SPACES&#160;:&#160;<a class="el" href="filter_8h.html#ac0113c47caf98a735db2297936c5e857">filter.h</a></li>
-<li>LZMA_STR_NO_VALIDATION&#160;:&#160;<a class="el" href="filter_8h.html#adc33f4c0c7b5d3ae36acc0437a904339">filter.h</a></li>
-<li>LZMA_STREAM_HEADER_SIZE&#160;:&#160;<a class="el" href="stream__flags_8h.html#ada7e0a4f5e7146f547962cb9e9ef08ee">stream_flags.h</a></li>
-<li>LZMA_STREAM_INIT&#160;:&#160;<a class="el" href="base_8h.html#af31f0c8b6f14359cd082b9559f7f3e01">base.h</a></li>
-<li>LZMA_TELL_ANY_CHECK&#160;:&#160;<a class="el" href="container_8h.html#a0bdde702a77ff42b90a99c0bf4147b6b">container.h</a></li>
-<li>LZMA_TELL_NO_CHECK&#160;:&#160;<a class="el" href="container_8h.html#ada9cd20febb28b5ed6656de9184a86e9">container.h</a></li>
-<li>LZMA_TELL_UNSUPPORTED_CHECK&#160;:&#160;<a class="el" href="container_8h.html#ae21fb746037c82735d40d428c462e078">container.h</a></li>
-<li>LZMA_VERSION&#160;:&#160;<a class="el" href="version_8h.html#a156c47ff34aa0c2b726d0daf799f10a0">version.h</a></li>
-<li>LZMA_VERSION_COMMIT&#160;:&#160;<a class="el" href="version_8h.html#a7fd6169ff15ac7f01f94970359a331ea">version.h</a></li>
-<li>LZMA_VERSION_MAJOR&#160;:&#160;<a class="el" href="version_8h.html#aa0f450c9d3b0ff5f88b55888ed55701f">version.h</a></li>
-<li>LZMA_VERSION_MINOR&#160;:&#160;<a class="el" href="version_8h.html#af8fd295cf8aa349b0731423ad7a56134">version.h</a></li>
-<li>LZMA_VERSION_PATCH&#160;:&#160;<a class="el" href="version_8h.html#a8b550373cbff381f15d4308b852a3c2a">version.h</a></li>
-<li>LZMA_VERSION_STABILITY&#160;:&#160;<a class="el" href="version_8h.html#ae289abe5dcc203c7cda9f6a9a2f36b3a">version.h</a></li>
-<li>LZMA_VERSION_STRING&#160;:&#160;<a class="el" href="version_8h.html#a57bb143c993c305a53e9aade831a546c">version.h</a></li>
-<li>LZMA_VLI_BYTES_MAX&#160;:&#160;<a class="el" href="vli_8h.html#a063ecff4133aa2f8899b9fa3fdefd310">vli.h</a></li>
-<li>LZMA_VLI_C&#160;:&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">vli.h</a></li>
-<li>lzma_vli_is_valid&#160;:&#160;<a class="el" href="vli_8h.html#a4f67ed698215d865a2b87a95ab1320dd">vli.h</a></li>
-<li>LZMA_VLI_MAX&#160;:&#160;<a class="el" href="vli_8h.html#a7b782528bd1934db7c020adbedb20ec9">vli.h</a></li>
-<li>LZMA_VLI_UNKNOWN&#160;:&#160;<a class="el" href="vli_8h.html#a5a4b28254a30c859018b896ed371d69a">vli.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/globals_enum.html b/doc/api/globals_enum.html
deleted file mode 100644
index 1820871..0000000
--- a/doc/api/globals_enum.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="contents">
-<div class="textblock">Here is a list of all documented enums with links to the documentation:</div><ul>
-<li>lzma_action&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">base.h</a></li>
-<li>lzma_check&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">check.h</a></li>
-<li>lzma_delta_type&#160;:&#160;<a class="el" href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">delta.h</a></li>
-<li>lzma_index_iter_mode&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">index.h</a></li>
-<li>lzma_match_finder&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma12.h</a></li>
-<li>lzma_mode&#160;:&#160;<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma12.h</a></li>
-<li>lzma_reserved_enum&#160;:&#160;<a class="el" href="base_8h.html#a05805a07754b2aa22f7d443eb7ece41a">base.h</a></li>
-<li>lzma_ret&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">base.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/globals_eval.html b/doc/api/globals_eval.html
deleted file mode 100644
index 51424c7..0000000
--- a/doc/api/globals_eval.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li class="current"><a href="#index_l"><span>l</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="contents">
-<div class="textblock">Here is a list of all documented enum values with links to the documentation:</div>
-
-<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
-<li>LZMA_BUF_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea9ca0ecb62459bdc84d6af47d16b23ae5">base.h</a></li>
-<li>LZMA_CHECK_CRC32&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa0be65014a40b5cb4ab32252b3709bef7">check.h</a></li>
-<li>LZMA_CHECK_CRC64&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa87b4b0697a1e1ccb6766dd5c2fa24afc">check.h</a></li>
-<li>LZMA_CHECK_NONE&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa7b9851d75abfabc08d7fc5b4aaeb6f20">check.h</a></li>
-<li>LZMA_CHECK_SHA256&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3faf26a55ddd204a50ae87ec3432e7bc309">check.h</a></li>
-<li>LZMA_DATA_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea3aa72729a844790e39b4e1101a731dfb">base.h</a></li>
-<li>LZMA_FINISH&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea7d24fb3c6c144d13bcb091195b8ebec1">base.h</a></li>
-<li>LZMA_FORMAT_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea63b7a58949854eb9307f8e351358d56c">base.h</a></li>
-<li>LZMA_FULL_BARRIER&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77eaf7bf60e3555a4d10ffad3ecc3d2e01f1">base.h</a></li>
-<li>LZMA_FULL_FLUSH&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77eaab46f0d7c721f1ec377e9575eab2586f">base.h</a></li>
-<li>LZMA_GET_CHECK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa5b648c18da0f584f621cfdf7fef1bdb">base.h</a></li>
-<li>LZMA_INDEX_ITER_ANY&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8af46f6e5c414471c7c96586f380e48315">index.h</a></li>
-<li>LZMA_INDEX_ITER_BLOCK&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8a2702617d60d6fc15138a749e06ef3414">index.h</a></li>
-<li>LZMA_INDEX_ITER_NONEMPTY_BLOCK&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8aa49bf4d561d8f2c61d300edbb6c282c7">index.h</a></li>
-<li>LZMA_INDEX_ITER_STREAM&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8a5b31d985de1c823151acdd7e4a966fc9">index.h</a></li>
-<li>LZMA_MEM_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea567e1464feca03900a5425fb45b2f5b6">base.h</a></li>
-<li>LZMA_MEMLIMIT_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa1d705effe6026f32c0fe9756b6326bc">base.h</a></li>
-<li>LZMA_MF_BT2&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a7ab212446c3f6520f5c33ccfa4b3386a">lzma12.h</a></li>
-<li>LZMA_MF_BT3&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a983ecc59bf3e07a7c43fea551ea11865">lzma12.h</a></li>
-<li>LZMA_MF_BT4&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a468c32cdea9861d1ff98478364e6c547">lzma12.h</a></li>
-<li>LZMA_MF_HC3&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a6eb38f634021a192cada8a978b5de93b">lzma12.h</a></li>
-<li>LZMA_MF_HC4&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a0944620f4949289c2ebde613cae12b04">lzma12.h</a></li>
-<li>LZMA_MODE_FAST&#160;:&#160;<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866ac8c0926a91b4f756e11121efd30648cc">lzma12.h</a></li>
-<li>LZMA_MODE_NORMAL&#160;:&#160;<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866ad37225f30d5cd21fc8bb3eaba283bbf9">lzma12.h</a></li>
-<li>LZMA_NO_CHECK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa720d30092d504d7d138a320db1905ef">base.h</a></li>
-<li>LZMA_OK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eac003781ccb81bbd5578e29abed8a8cfe">base.h</a></li>
-<li>LZMA_OPTIONS_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa9ff6dfee36b7aba4fae60706d37425f">base.h</a></li>
-<li>LZMA_PROG_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea2dac8d451cb38da8550653d0d7be4ec2">base.h</a></li>
-<li>LZMA_RUN&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea868472b76492afcaef54020a481890b1">base.h</a></li>
-<li>LZMA_SEEK_NEEDED&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea6cf28e5345851f13bd798a4eab8cc939">base.h</a></li>
-<li>LZMA_STREAM_END&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea91ecc6fab14c13ad36224afbcb4e55c4">base.h</a></li>
-<li>LZMA_SYNC_FLUSH&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea14d75152afcda85d215e877fdd9c4170">base.h</a></li>
-<li>LZMA_UNSUPPORTED_CHECK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea989f393a1772d85bf545a9da48fc7ac2">base.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/globals_func.html b/doc/api/globals_func.html
deleted file mode 100644
index 091e519..0000000
--- a/doc/api/globals_func.html
+++ /dev/null
@@ -1,177 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li class="current"><a href="#index_l"><span>l</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="contents">
-<div class="textblock">Here is a list of all documented functions with links to the documentation:</div>
-
-<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
-<li>lzma_alone_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a5f43c3a1035e5a226dcd298f4162b861">container.h</a></li>
-<li>lzma_alone_encoder()&#160;:&#160;<a class="el" href="container_8h.html#a26fcc5bccdf3f862caa4c992d01e1a72">container.h</a></li>
-<li>lzma_auto_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a21cbebf2771617bb1e956385cfb353e3">container.h</a></li>
-<li>lzma_block_buffer_bound()&#160;:&#160;<a class="el" href="block_8h.html#a58ff73e2572b529f48cc590bfffe5b4f">block.h</a></li>
-<li>lzma_block_buffer_decode()&#160;:&#160;<a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f">block.h</a></li>
-<li>lzma_block_buffer_encode()&#160;:&#160;<a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54">block.h</a></li>
-<li>lzma_block_compressed_size()&#160;:&#160;<a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc">block.h</a></li>
-<li>lzma_block_decoder()&#160;:&#160;<a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92">block.h</a></li>
-<li>lzma_block_encoder()&#160;:&#160;<a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359">block.h</a></li>
-<li>lzma_block_header_decode()&#160;:&#160;<a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9">block.h</a></li>
-<li>lzma_block_header_encode()&#160;:&#160;<a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0">block.h</a></li>
-<li>lzma_block_header_size()&#160;:&#160;<a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd">block.h</a></li>
-<li>lzma_block_total_size()&#160;:&#160;<a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9">block.h</a></li>
-<li>lzma_block_uncomp_encode()&#160;:&#160;<a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c">block.h</a></li>
-<li>lzma_block_unpadded_size()&#160;:&#160;<a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30">block.h</a></li>
-<li>lzma_check_is_supported()&#160;:&#160;<a class="el" href="check_8h.html#ae9391ed2acfad0ce9357b68c608f07d8">check.h</a></li>
-<li>lzma_check_size()&#160;:&#160;<a class="el" href="check_8h.html#afd3fda19575d9d4f864c626c02b7cb48">check.h</a></li>
-<li>lzma_code()&#160;:&#160;<a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957">base.h</a></li>
-<li>lzma_cputhreads()&#160;:&#160;<a class="el" href="hardware_8h.html#a22f7a882b7a4b741a226abf62bdf46ca">hardware.h</a></li>
-<li>lzma_crc32()&#160;:&#160;<a class="el" href="check_8h.html#a760b569cce91bdd01e4ce9d78823c96d">check.h</a></li>
-<li>lzma_crc64()&#160;:&#160;<a class="el" href="check_8h.html#aff2e74ce671b9f82a96adb549c68cea2">check.h</a></li>
-<li>lzma_easy_buffer_encode()&#160;:&#160;<a class="el" href="container_8h.html#ac5e71f2711b57391186671967435faf2">container.h</a></li>
-<li>lzma_easy_decoder_memusage()&#160;:&#160;<a class="el" href="container_8h.html#a3562055d26c18fad067a7c7516eaddf5">container.h</a></li>
-<li>lzma_easy_encoder()&#160;:&#160;<a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4">container.h</a></li>
-<li>lzma_easy_encoder_memusage()&#160;:&#160;<a class="el" href="container_8h.html#a62c853cf7dbf008bdbd97b2685c3eabf">container.h</a></li>
-<li>lzma_end()&#160;:&#160;<a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308">base.h</a></li>
-<li>lzma_file_info_decoder()&#160;:&#160;<a class="el" href="index_8h.html#a7c5d77cf8532d95977d4571a1eb0a222">index.h</a></li>
-<li>lzma_filter_decoder_is_supported()&#160;:&#160;<a class="el" href="filter_8h.html#acab0c67bf5b3a76f2b474c8e1da98938">filter.h</a></li>
-<li>lzma_filter_encoder_is_supported()&#160;:&#160;<a class="el" href="filter_8h.html#a3db3c36cd6e57658a74c53e4daa2bef6">filter.h</a></li>
-<li>lzma_filter_flags_decode()&#160;:&#160;<a class="el" href="filter_8h.html#a4cba9a4c658cce0ff01fd102b31ea1a7">filter.h</a></li>
-<li>lzma_filter_flags_encode()&#160;:&#160;<a class="el" href="filter_8h.html#a96f23309bc21398fece18c00ebe7db98">filter.h</a></li>
-<li>lzma_filter_flags_size()&#160;:&#160;<a class="el" href="filter_8h.html#a996c9c21840ed54e37bd1f664a79d940">filter.h</a></li>
-<li>lzma_filters_copy()&#160;:&#160;<a class="el" href="filter_8h.html#a611fe1176eeeda187b1bd8aef45040aa">filter.h</a></li>
-<li>lzma_filters_free()&#160;:&#160;<a class="el" href="filter_8h.html#ae06979d219897f5f4c29cbc7a96a8892">filter.h</a></li>
-<li>lzma_filters_update()&#160;:&#160;<a class="el" href="filter_8h.html#a4a8fd969df001e449ebe4421ab33bba5">filter.h</a></li>
-<li>lzma_get_check()&#160;:&#160;<a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746">check.h</a></li>
-<li>lzma_get_progress()&#160;:&#160;<a class="el" href="base_8h.html#ab6447cd68eeecbd6b88f21daeb8ce751">base.h</a></li>
-<li>lzma_index_append()&#160;:&#160;<a class="el" href="index_8h.html#ac347747eb933c7c408e6c801b33becc3">index.h</a></li>
-<li>lzma_index_block_count()&#160;:&#160;<a class="el" href="index_8h.html#add1a8c506f67dbc19cae6747107e3bec">index.h</a></li>
-<li>lzma_index_buffer_decode()&#160;:&#160;<a class="el" href="index_8h.html#a028b8b8d59a413f9682eea1269a6ae8b">index.h</a></li>
-<li>lzma_index_buffer_encode()&#160;:&#160;<a class="el" href="index_8h.html#add1ef06dec8a26d08ae8651cff0fd8d6">index.h</a></li>
-<li>lzma_index_cat()&#160;:&#160;<a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a">index.h</a></li>
-<li>lzma_index_checks()&#160;:&#160;<a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa">index.h</a></li>
-<li>lzma_index_decoder()&#160;:&#160;<a class="el" href="index_8h.html#abb56fd1d5914f8900ece7b88b78e5e23">index.h</a></li>
-<li>lzma_index_dup()&#160;:&#160;<a class="el" href="index_8h.html#a5161e3f67156577882e1d95dcb57e33e">index.h</a></li>
-<li>lzma_index_encoder()&#160;:&#160;<a class="el" href="index_8h.html#a6800d70f3b2afca085496460cd03211d">index.h</a></li>
-<li>lzma_index_end()&#160;:&#160;<a class="el" href="index_8h.html#a0c2d0009f07fc315d5ac89e4bcd25abd">index.h</a></li>
-<li>lzma_index_file_size()&#160;:&#160;<a class="el" href="index_8h.html#ac875ed47d35385e5dac461b25c5ea1c9">index.h</a></li>
-<li>lzma_index_hash_append()&#160;:&#160;<a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f">index_hash.h</a></li>
-<li>lzma_index_hash_decode()&#160;:&#160;<a class="el" href="index__hash_8h.html#a891eb955284c9117155f92eb0ddba44c">index_hash.h</a></li>
-<li>lzma_index_hash_end()&#160;:&#160;<a class="el" href="index__hash_8h.html#a7dacb41b9ec1c8df5d33dfdae97743b3">index_hash.h</a></li>
-<li>lzma_index_hash_init()&#160;:&#160;<a class="el" href="index__hash_8h.html#aaafae4967a4a266d97dc34a98bfcabfb">index_hash.h</a></li>
-<li>lzma_index_hash_size()&#160;:&#160;<a class="el" href="index__hash_8h.html#a0f8ab3b57b117f9547866156755c917f">index_hash.h</a></li>
-<li>lzma_index_init()&#160;:&#160;<a class="el" href="index_8h.html#a0850627d011111326d4278a3e2edec25">index.h</a></li>
-<li>lzma_index_iter_init()&#160;:&#160;<a class="el" href="index_8h.html#aa78f02f18ed29d289a6ef37b8ea98a21">index.h</a></li>
-<li>lzma_index_iter_locate()&#160;:&#160;<a class="el" href="index_8h.html#ac4f56df9d210712e5d7add5502c9eb93">index.h</a></li>
-<li>lzma_index_iter_next()&#160;:&#160;<a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e">index.h</a></li>
-<li>lzma_index_iter_rewind()&#160;:&#160;<a class="el" href="index_8h.html#ae81438be8deff4894b104e65d8acdd24">index.h</a></li>
-<li>lzma_index_memusage()&#160;:&#160;<a class="el" href="index_8h.html#a880def3727ecdd7f242807083d228fc5">index.h</a></li>
-<li>lzma_index_memused()&#160;:&#160;<a class="el" href="index_8h.html#a4118805ac7be6618aca6d6d7e5e4dde7">index.h</a></li>
-<li>lzma_index_size()&#160;:&#160;<a class="el" href="index_8h.html#a669ed1a82b1941217cfbb07e7826afc2">index.h</a></li>
-<li>lzma_index_stream_count()&#160;:&#160;<a class="el" href="index_8h.html#afd159a765b09b0cf79186069a848d07e">index.h</a></li>
-<li>lzma_index_stream_flags()&#160;:&#160;<a class="el" href="index_8h.html#a79a19669237f19f0b11c9f3be80a62b4">index.h</a></li>
-<li>lzma_index_stream_padding()&#160;:&#160;<a class="el" href="index_8h.html#a3ed82f96c688f3c953f6509b6f4e2ef3">index.h</a></li>
-<li>lzma_index_stream_size()&#160;:&#160;<a class="el" href="index_8h.html#af3630369b43c9ccc906065d759b49663">index.h</a></li>
-<li>lzma_index_total_size()&#160;:&#160;<a class="el" href="index_8h.html#a7829942b83ee1fa5b6443cc248b81041">index.h</a></li>
-<li>lzma_index_uncompressed_size()&#160;:&#160;<a class="el" href="index_8h.html#a620fe6317f1f9d7af9cc27c748bf07d6">index.h</a></li>
-<li>lzma_lzip_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a97689f5709e0db1e2dac450f5ce4e5eb">container.h</a></li>
-<li>lzma_lzma_preset()&#160;:&#160;<a class="el" href="lzma12_8h.html#aa62c28944fe3575653a4c25780400d77">lzma12.h</a></li>
-<li>lzma_memlimit_get()&#160;:&#160;<a class="el" href="base_8h.html#ac871bc2ead5d482c6d6b3d51bfec365c">base.h</a></li>
-<li>lzma_memlimit_set()&#160;:&#160;<a class="el" href="base_8h.html#afc49d4cf75b73128a167df3407505f7b">base.h</a></li>
-<li>lzma_memusage()&#160;:&#160;<a class="el" href="base_8h.html#a418b210cf206782a73cd9de7dc27f670">base.h</a></li>
-<li>lzma_mf_is_supported()&#160;:&#160;<a class="el" href="lzma12_8h.html#aefba1f7214ddcf8cd408a0702e8642b5">lzma12.h</a></li>
-<li>lzma_microlzma_decoder()&#160;:&#160;<a class="el" href="container_8h.html#aa8372dae3e7c907c36f7bb5426aeacdf">container.h</a></li>
-<li>lzma_microlzma_encoder()&#160;:&#160;<a class="el" href="container_8h.html#abfc8f11acf837b167aa94b7071b54c30">container.h</a></li>
-<li>lzma_mode_is_supported()&#160;:&#160;<a class="el" href="lzma12_8h.html#ad1add1c2600fdbb3d737e4fb3465dfcb">lzma12.h</a></li>
-<li>lzma_physmem()&#160;:&#160;<a class="el" href="hardware_8h.html#a85363e453b34272a9f26c9fdffb041ee">hardware.h</a></li>
-<li>lzma_properties_decode()&#160;:&#160;<a class="el" href="filter_8h.html#a88d2e864b2039ac82802cc202278d478">filter.h</a></li>
-<li>lzma_properties_encode()&#160;:&#160;<a class="el" href="filter_8h.html#a8e00887086df5a44084ac22e48415de3">filter.h</a></li>
-<li>lzma_properties_size()&#160;:&#160;<a class="el" href="filter_8h.html#aee038818cf7bbe044c3f7a7c86998c1b">filter.h</a></li>
-<li>lzma_raw_buffer_decode()&#160;:&#160;<a class="el" href="filter_8h.html#a3b942df507e4f9a6d7525e5a4c6864e5">filter.h</a></li>
-<li>lzma_raw_buffer_encode()&#160;:&#160;<a class="el" href="filter_8h.html#a226724ab3391b410281fdf656cc7c432">filter.h</a></li>
-<li>lzma_raw_decoder()&#160;:&#160;<a class="el" href="filter_8h.html#ae77b3b6c5eccd9d77bbafef0a8a203c1">filter.h</a></li>
-<li>lzma_raw_decoder_memusage()&#160;:&#160;<a class="el" href="filter_8h.html#a58511249ae9206d7de7c5d1f05842297">filter.h</a></li>
-<li>lzma_raw_encoder()&#160;:&#160;<a class="el" href="filter_8h.html#a2368e4129032345eb0738b0c6e085703">filter.h</a></li>
-<li>lzma_raw_encoder_memusage()&#160;:&#160;<a class="el" href="filter_8h.html#a730f9391e85a5979bcd1b32643ae7176">filter.h</a></li>
-<li>lzma_str_from_filters()&#160;:&#160;<a class="el" href="filter_8h.html#a7deeb86ef59a9111b8033681290e0fb0">filter.h</a></li>
-<li>lzma_str_list_filters()&#160;:&#160;<a class="el" href="filter_8h.html#ab51585b68796ce0270f87e615b923809">filter.h</a></li>
-<li>lzma_str_to_filters()&#160;:&#160;<a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30">filter.h</a></li>
-<li>lzma_stream_buffer_bound()&#160;:&#160;<a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e">container.h</a></li>
-<li>lzma_stream_buffer_decode()&#160;:&#160;<a class="el" href="container_8h.html#aa58f237f6cea97ef0eb9bf5c37a3008d">container.h</a></li>
-<li>lzma_stream_buffer_encode()&#160;:&#160;<a class="el" href="container_8h.html#a6e645ccaeace3b13a6981e03c6e190ad">container.h</a></li>
-<li>lzma_stream_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0">container.h</a></li>
-<li>lzma_stream_decoder_mt()&#160;:&#160;<a class="el" href="container_8h.html#a7179d178e6430c10e2006a467921e98e">container.h</a></li>
-<li>lzma_stream_encoder()&#160;:&#160;<a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52">container.h</a></li>
-<li>lzma_stream_encoder_mt()&#160;:&#160;<a class="el" href="container_8h.html#a3f8793518711ee84d1abf12ea3aaba42">container.h</a></li>
-<li>lzma_stream_encoder_mt_memusage()&#160;:&#160;<a class="el" href="container_8h.html#ad7cf41496d77f4d346e006b26ed8e101">container.h</a></li>
-<li>lzma_stream_flags_compare()&#160;:&#160;<a class="el" href="stream__flags_8h.html#a3e25ca4205021302882a696283d45263">stream_flags.h</a></li>
-<li>lzma_stream_footer_decode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#aa92a383f85753bb79ee23227fa68186c">stream_flags.h</a></li>
-<li>lzma_stream_footer_encode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#a438249a75ea8da952a7474b92bfe7b7a">stream_flags.h</a></li>
-<li>lzma_stream_header_decode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#ae03198e464f0d296e601ff841e100805">stream_flags.h</a></li>
-<li>lzma_stream_header_encode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#a2ebb8d6dff23daeb3de398913b845eff">stream_flags.h</a></li>
-<li>lzma_version_number()&#160;:&#160;<a class="el" href="version_8h.html#a72f929c9b9e8e730b790b3f8c80c3c80">version.h</a></li>
-<li>lzma_version_string()&#160;:&#160;<a class="el" href="version_8h.html#a8998c1d8b4b5c2c1218bdfd58fdb1baa">version.h</a></li>
-<li>lzma_vli_decode()&#160;:&#160;<a class="el" href="vli_8h.html#a7b7d50e1074e0e2bcd81c29a5f7461c7">vli.h</a></li>
-<li>lzma_vli_encode()&#160;:&#160;<a class="el" href="vli_8h.html#a50bbb77e9ec3b72c25586aa700c20970">vli.h</a></li>
-<li>lzma_vli_size()&#160;:&#160;<a class="el" href="vli_8h.html#a8d53e0b69934b43da8721fa6f1e8cc4f">vli.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/globals_type.html b/doc/api/globals_type.html
deleted file mode 100644
index cd7aa3f..0000000
--- a/doc/api/globals_type.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="contents">
-<div class="textblock">Here is a list of all documented typedefs with links to the documentation:</div><ul>
-<li>lzma_bool&#160;:&#160;<a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">base.h</a></li>
-<li>lzma_index&#160;:&#160;<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">index.h</a></li>
-<li>lzma_index_hash&#160;:&#160;<a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">index_hash.h</a></li>
-<li>lzma_internal&#160;:&#160;<a class="el" href="base_8h.html#ab1a60127c640135687a5bcc232cec906">base.h</a></li>
-<li>lzma_vli&#160;:&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">vli.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/hardware_8h.html b/doc/api/hardware_8h.html
deleted file mode 100644
index fd302e2..0000000
--- a/doc/api/hardware_8h.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/hardware.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle"><div class="title">hardware.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Hardware information.
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a85363e453b34272a9f26c9fdffb041ee"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hardware_8h.html#a85363e453b34272a9f26c9fdffb041ee">lzma_physmem</a> (void) lzma_nothrow</td></tr>
-<tr class="memdesc:a85363e453b34272a9f26c9fdffb041ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the total amount of physical memory (RAM) in bytes. <br /></td></tr>
-<tr class="separator:a85363e453b34272a9f26c9fdffb041ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a22f7a882b7a4b741a226abf62bdf46ca"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hardware_8h.html#a22f7a882b7a4b741a226abf62bdf46ca">lzma_cputhreads</a> (void) lzma_nothrow</td></tr>
-<tr class="memdesc:a22f7a882b7a4b741a226abf62bdf46ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of processor cores or threads. <br /></td></tr>
-<tr class="separator:a22f7a882b7a4b741a226abf62bdf46ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Hardware information. </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead.</dd></dl>
-<p>Since liblzma can consume a lot of system resources, it also provides ways to limit the resource usage. Applications linking against liblzma need to do the actual decisions how much resources to let liblzma to use. To ease making these decisions, liblzma provides functions to find out the relevant capabilities of the underlying hardware. Currently there is only a function to find out the amount of RAM, but in the future there will be also a function to detect how many concurrent threads the system can run.</p>
-<dl class="section note"><dt>Note</dt><dd>On some operating systems, these function may temporarily load a shared library or open file descriptor(s) to find out the requested hardware information. Unless the application assumes that specific file descriptors are not touched by other threads, this should have no effect on thread safety. Possible operations involving file descriptors will restart the syscalls if they return EINTR. </dd></dl>
-</div><h2 class="groupheader">Function Documentation</h2>
-<a id="a85363e453b34272a9f26c9fdffb041ee" name="a85363e453b34272a9f26c9fdffb041ee"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a85363e453b34272a9f26c9fdffb041ee">&#9670;&#160;</a></span>lzma_physmem()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_physmem </td>
- <td>(</td>
- <td class="paramtype">void&#160;</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the total amount of physical memory (RAM) in bytes. </p>
-<p>This function may be useful when determining a reasonable memory usage limit for decompressing or how much memory it is OK to use for compressing.</p>
-<dl class="section return"><dt>Returns</dt><dd>On success, the total amount of physical memory in bytes is returned. If the amount of RAM cannot be determined, zero is returned. This can happen if an error occurs or if there is no code in liblzma to detect the amount of RAM on the specific operating system. </dd></dl>
-
-</div>
-</div>
-<a id="a22f7a882b7a4b741a226abf62bdf46ca" name="a22f7a882b7a4b741a226abf62bdf46ca"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a22f7a882b7a4b741a226abf62bdf46ca">&#9670;&#160;</a></span>lzma_cputhreads()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_cputhreads </td>
- <td>(</td>
- <td class="paramtype">void&#160;</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the number of processor cores or threads. </p>
-<p>This function may be useful when determining how many threads to use. If the hardware supports more than one thread per CPU core, the number of hardware threads is returned if that information is available.</p>
-<dl class="section return"><dt>Returns</dt><dd>On success, the number of available CPU threads or cores is returned. If this information isn't available or an error occurs, zero is returned. </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/index.html b/doc/api/index.html
deleted file mode 100644
index b3f8cce..0000000
--- a/doc/api/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): liblzma (XZ Utils)</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div><div class="header">
- <div class="headertitle"><div class="title">liblzma (XZ Utils) </div></div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><p>liblzma is a public domain general-purpose data compression library with a zlib-like API. The native file format is .xz, but also the old .lzma format and raw (no headers) streams are supported. Multiple compression algorithms (filters) are supported. Currently LZMA2 is the primary filter.</p>
-<p>liblzma is part of XZ Utils <a href="https://tukaani.org/xz/">https://tukaani.org/xz/</a>. XZ Utils includes a gzip-like command line tool named xz and some other tools. XZ Utils is developed and maintained by Lasse Collin and Jia Tan.</p>
-<p>Major parts of liblzma are based on Igor Pavlov's public domain LZMA SDK <a href="https://7-zip.org/sdk.html">https://7-zip.org/sdk.html</a>.</p>
-<p>The SHA-256 implementation is based on the public domain code found from 7-Zip <a href="https://7-zip.org/">https://7-zip.org/</a>, which has a modified version of the public domain SHA-256 code found from Crypto++ <a href="https://www.cryptopp.com/">https://www.cryptopp.com/</a>. The SHA-256 code in Crypto++ was written by Kevin Springle and Wei Dai. </p>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/index_8h.html b/doc/api/index_8h.html
deleted file mode 100644
index f0de050..0000000
--- a/doc/api/index_8h.html
+++ /dev/null
@@ -1,1268 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/index.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> &#124;
-<a href="#typedef-members">Typedefs</a> &#124;
-<a href="#enum-members">Enumerations</a> &#124;
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle"><div class="title">index.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Handling of .xz Index and related information.
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__index__iter.html">lzma_index_iter</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to get information about Blocks and Streams. <a href="structlzma__index__iter.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:afc18c1443b3b9aa0d146b44e8755b62e"><td class="memItemLeft" align="right" valign="top">typedef struct lzma_index_s&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a></td></tr>
-<tr class="memdesc:afc18c1443b3b9aa0d146b44e8755b62e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque data type to hold the Index(es) and other information. <br /></td></tr>
-<tr class="separator:afc18c1443b3b9aa0d146b44e8755b62e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:a712b43192d944bf2f767711343cd9ca8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">lzma_index_iter_mode</a> { <a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8af46f6e5c414471c7c96586f380e48315">LZMA_INDEX_ITER_ANY</a> = 0
-, <a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8a5b31d985de1c823151acdd7e4a966fc9">LZMA_INDEX_ITER_STREAM</a> = 1
-, <a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8a2702617d60d6fc15138a749e06ef3414">LZMA_INDEX_ITER_BLOCK</a> = 2
-, <a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8aa49bf4d561d8f2c61d300edbb6c282c7">LZMA_INDEX_ITER_NONEMPTY_BLOCK</a> = 3
- }</td></tr>
-<tr class="memdesc:a712b43192d944bf2f767711343cd9ca8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation mode for <a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e" title="Get the next Block or Stream.">lzma_index_iter_next()</a> <a href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">More...</a><br /></td></tr>
-<tr class="separator:a712b43192d944bf2f767711343cd9ca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a880def3727ecdd7f242807083d228fc5"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a880def3727ecdd7f242807083d228fc5">lzma_index_memusage</a> (<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> streams, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> blocks) lzma_nothrow</td></tr>
-<tr class="memdesc:a880def3727ecdd7f242807083d228fc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate memory usage of lzma_index. <br /></td></tr>
-<tr class="separator:a880def3727ecdd7f242807083d228fc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4118805ac7be6618aca6d6d7e5e4dde7"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a4118805ac7be6618aca6d6d7e5e4dde7">lzma_index_memused</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow</td></tr>
-<tr class="memdesc:a4118805ac7be6618aca6d6d7e5e4dde7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the memory usage of an existing lzma_index. <br /></td></tr>
-<tr class="separator:a4118805ac7be6618aca6d6d7e5e4dde7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0850627d011111326d4278a3e2edec25"><td class="memItemLeft" align="right" valign="top"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a0850627d011111326d4278a3e2edec25">lzma_index_init</a> (const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow</td></tr>
-<tr class="memdesc:a0850627d011111326d4278a3e2edec25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate and initialize a new lzma_index structure. <br /></td></tr>
-<tr class="separator:a0850627d011111326d4278a3e2edec25"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0c2d0009f07fc315d5ac89e4bcd25abd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a0c2d0009f07fc315d5ac89e4bcd25abd">lzma_index_end</a> (<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow</td></tr>
-<tr class="memdesc:a0c2d0009f07fc315d5ac89e4bcd25abd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deallocate lzma_index. <br /></td></tr>
-<tr class="separator:a0c2d0009f07fc315d5ac89e4bcd25abd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac347747eb933c7c408e6c801b33becc3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#ac347747eb933c7c408e6c801b33becc3">lzma_index_append</a> (<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> unpadded_size, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> uncompressed_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:ac347747eb933c7c408e6c801b33becc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new Block to lzma_index. <br /></td></tr>
-<tr class="separator:ac347747eb933c7c408e6c801b33becc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a79a19669237f19f0b11c9f3be80a62b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a79a19669237f19f0b11c9f3be80a62b4">lzma_index_stream_flags</a> (<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i, const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *stream_flags) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a79a19669237f19f0b11c9f3be80a62b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Stream Flags. <br /></td></tr>
-<tr class="separator:a79a19669237f19f0b11c9f3be80a62b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af8d6528a04241841bd0a4322b0c57eaa"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa">lzma_index_checks</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:af8d6528a04241841bd0a4322b0c57eaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the types of integrity Checks. <br /></td></tr>
-<tr class="separator:af8d6528a04241841bd0a4322b0c57eaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3ed82f96c688f3c953f6509b6f4e2ef3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a3ed82f96c688f3c953f6509b6f4e2ef3">lzma_index_stream_padding</a> (<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> stream_padding) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a3ed82f96c688f3c953f6509b6f4e2ef3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the amount of Stream Padding. <br /></td></tr>
-<tr class="separator:a3ed82f96c688f3c953f6509b6f4e2ef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afd159a765b09b0cf79186069a848d07e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#afd159a765b09b0cf79186069a848d07e">lzma_index_stream_count</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:afd159a765b09b0cf79186069a848d07e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of Streams. <br /></td></tr>
-<tr class="separator:afd159a765b09b0cf79186069a848d07e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:add1a8c506f67dbc19cae6747107e3bec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#add1a8c506f67dbc19cae6747107e3bec">lzma_index_block_count</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:add1a8c506f67dbc19cae6747107e3bec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of Blocks. <br /></td></tr>
-<tr class="separator:add1a8c506f67dbc19cae6747107e3bec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a669ed1a82b1941217cfbb07e7826afc2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a669ed1a82b1941217cfbb07e7826afc2">lzma_index_size</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a669ed1a82b1941217cfbb07e7826afc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the Index field as bytes. <br /></td></tr>
-<tr class="separator:a669ed1a82b1941217cfbb07e7826afc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af3630369b43c9ccc906065d759b49663"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#af3630369b43c9ccc906065d759b49663">lzma_index_stream_size</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:af3630369b43c9ccc906065d759b49663"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the total size of the Stream. <br /></td></tr>
-<tr class="separator:af3630369b43c9ccc906065d759b49663"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7829942b83ee1fa5b6443cc248b81041"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a7829942b83ee1fa5b6443cc248b81041">lzma_index_total_size</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a7829942b83ee1fa5b6443cc248b81041"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the total size of the Blocks. <br /></td></tr>
-<tr class="separator:a7829942b83ee1fa5b6443cc248b81041"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac875ed47d35385e5dac461b25c5ea1c9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#ac875ed47d35385e5dac461b25c5ea1c9">lzma_index_file_size</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:ac875ed47d35385e5dac461b25c5ea1c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the total size of the file. <br /></td></tr>
-<tr class="separator:ac875ed47d35385e5dac461b25c5ea1c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a620fe6317f1f9d7af9cc27c748bf07d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a620fe6317f1f9d7af9cc27c748bf07d6">lzma_index_uncompressed_size</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a620fe6317f1f9d7af9cc27c748bf07d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the uncompressed size of the file. <br /></td></tr>
-<tr class="separator:a620fe6317f1f9d7af9cc27c748bf07d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa78f02f18ed29d289a6ef37b8ea98a21"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#aa78f02f18ed29d289a6ef37b8ea98a21">lzma_index_iter_init</a> (<a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *iter, const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow</td></tr>
-<tr class="memdesc:aa78f02f18ed29d289a6ef37b8ea98a21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize an iterator. <br /></td></tr>
-<tr class="separator:aa78f02f18ed29d289a6ef37b8ea98a21"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae81438be8deff4894b104e65d8acdd24"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#ae81438be8deff4894b104e65d8acdd24">lzma_index_iter_rewind</a> (<a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *iter) lzma_nothrow</td></tr>
-<tr class="memdesc:ae81438be8deff4894b104e65d8acdd24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rewind the iterator. <br /></td></tr>
-<tr class="separator:ae81438be8deff4894b104e65d8acdd24"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af428522e1b3eef137c65c5a01f766e0e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e">lzma_index_iter_next</a> (<a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *iter, <a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">lzma_index_iter_mode</a> mode) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:af428522e1b3eef137c65c5a01f766e0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the next Block or Stream. <br /></td></tr>
-<tr class="separator:af428522e1b3eef137c65c5a01f766e0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac4f56df9d210712e5d7add5502c9eb93"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#ac4f56df9d210712e5d7add5502c9eb93">lzma_index_iter_locate</a> (<a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *iter, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> target) lzma_nothrow</td></tr>
-<tr class="memdesc:ac4f56df9d210712e5d7add5502c9eb93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locate a Block. <br /></td></tr>
-<tr class="separator:ac4f56df9d210712e5d7add5502c9eb93"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abc4db36b4bd67af01819be9dd045c34a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a">lzma_index_cat</a> (<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *dest, <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *src, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:abc4db36b4bd67af01819be9dd045c34a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenate lzma_indexes. <br /></td></tr>
-<tr class="separator:abc4db36b4bd67af01819be9dd045c34a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5161e3f67156577882e1d95dcb57e33e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a5161e3f67156577882e1d95dcb57e33e">lzma_index_dup</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a5161e3f67156577882e1d95dcb57e33e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate lzma_index. <br /></td></tr>
-<tr class="separator:a5161e3f67156577882e1d95dcb57e33e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6800d70f3b2afca085496460cd03211d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a6800d70f3b2afca085496460cd03211d">lzma_index_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a6800d70f3b2afca085496460cd03211d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Index encoder. <br /></td></tr>
-<tr class="separator:a6800d70f3b2afca085496460cd03211d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abb56fd1d5914f8900ece7b88b78e5e23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#abb56fd1d5914f8900ece7b88b78e5e23">lzma_index_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> **i, uint64_t memlimit) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:abb56fd1d5914f8900ece7b88b78e5e23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Index decoder. <br /></td></tr>
-<tr class="separator:abb56fd1d5914f8900ece7b88b78e5e23"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:add1ef06dec8a26d08ae8651cff0fd8d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#add1ef06dec8a26d08ae8651cff0fd8d6">lzma_index_buffer_encode</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow</td></tr>
-<tr class="memdesc:add1ef06dec8a26d08ae8651cff0fd8d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Index encoder. <br /></td></tr>
-<tr class="separator:add1ef06dec8a26d08ae8651cff0fd8d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a028b8b8d59a413f9682eea1269a6ae8b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a028b8b8d59a413f9682eea1269a6ae8b">lzma_index_buffer_decode</a> (<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> **i, uint64_t *memlimit, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow</td></tr>
-<tr class="memdesc:a028b8b8d59a413f9682eea1269a6ae8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Index decoder. <br /></td></tr>
-<tr class="separator:a028b8b8d59a413f9682eea1269a6ae8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7c5d77cf8532d95977d4571a1eb0a222"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a7c5d77cf8532d95977d4571a1eb0a222">lzma_file_info_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> **dest_index, uint64_t memlimit, uint64_t file_size) lzma_nothrow</td></tr>
-<tr class="memdesc:a7c5d77cf8532d95977d4571a1eb0a222"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a .xz file information decoder. <br /></td></tr>
-<tr class="separator:a7c5d77cf8532d95977d4571a1eb0a222"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Handling of .xz Index and related information. </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
-</div><h2 class="groupheader">Typedef Documentation</h2>
-<a id="afc18c1443b3b9aa0d146b44e8755b62e" name="afc18c1443b3b9aa0d146b44e8755b62e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afc18c1443b3b9aa0d146b44e8755b62e">&#9670;&#160;</a></span>lzma_index</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef struct lzma_index_s <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Opaque data type to hold the Index(es) and other information. </p>
-<p>lzma_index often holds just one .xz Index and possibly the Stream Flags of the same Stream and size of the Stream Padding field. However, multiple lzma_indexes can be concatenated with <a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a" title="Concatenate lzma_indexes.">lzma_index_cat()</a> and then there may be information about multiple Streams in the same lzma_index.</p>
-<p>Notes about thread safety: Only one thread may modify lzma_index at a time. All functions that take non-const pointer to lzma_index modify it. As long as no thread is modifying the lzma_index, getting information from the same lzma_index can be done from multiple threads at the same time with functions that take a const pointer to lzma_index or use <a class="el" href="structlzma__index__iter.html" title="Iterator to get information about Blocks and Streams.">lzma_index_iter</a>. The same iterator must be used only by one thread at a time, of course, but there can be as many iterators for the same lzma_index as needed. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a id="a712b43192d944bf2f767711343cd9ca8" name="a712b43192d944bf2f767711343cd9ca8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a712b43192d944bf2f767711343cd9ca8">&#9670;&#160;</a></span>lzma_index_iter_mode</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">lzma_index_iter_mode</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Operation mode for <a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e" title="Get the next Block or Stream.">lzma_index_iter_next()</a> </p>
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a712b43192d944bf2f767711343cd9ca8af46f6e5c414471c7c96586f380e48315" name="a712b43192d944bf2f767711343cd9ca8af46f6e5c414471c7c96586f380e48315"></a>LZMA_INDEX_ITER_ANY&#160;</td><td class="fielddoc"><p>Get the next Block or Stream. </p>
-<p>Go to the next Block if the current Stream has at least one Block left. Otherwise go to the next Stream even if it has no Blocks. If the Stream has no Blocks (lzma_index_iter.stream.block_count == 0), lzma_index_iter.block will have undefined values. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a712b43192d944bf2f767711343cd9ca8a5b31d985de1c823151acdd7e4a966fc9" name="a712b43192d944bf2f767711343cd9ca8a5b31d985de1c823151acdd7e4a966fc9"></a>LZMA_INDEX_ITER_STREAM&#160;</td><td class="fielddoc"><p>Get the next Stream. </p>
-<p>Go to the next Stream even if the current Stream has unread Blocks left. If the next Stream has at least one Block, the iterator will point to the first Block. If there are no Blocks, lzma_index_iter.block will have undefined values. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a712b43192d944bf2f767711343cd9ca8a2702617d60d6fc15138a749e06ef3414" name="a712b43192d944bf2f767711343cd9ca8a2702617d60d6fc15138a749e06ef3414"></a>LZMA_INDEX_ITER_BLOCK&#160;</td><td class="fielddoc"><p>Get the next Block. </p>
-<p>Go to the next Block if the current Stream has at least one Block left. If the current Stream has no Blocks left, the next Stream with at least one Block is located and the iterator will be made to point to the first Block of that Stream. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a712b43192d944bf2f767711343cd9ca8aa49bf4d561d8f2c61d300edbb6c282c7" name="a712b43192d944bf2f767711343cd9ca8aa49bf4d561d8f2c61d300edbb6c282c7"></a>LZMA_INDEX_ITER_NONEMPTY_BLOCK&#160;</td><td class="fielddoc"><p>Get the next non-empty Block. </p>
-<p>This is like LZMA_INDEX_ITER_BLOCK except that it will skip Blocks whose Uncompressed Size is zero. </p>
-</td></tr>
-</table>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="a880def3727ecdd7f242807083d228fc5" name="a880def3727ecdd7f242807083d228fc5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a880def3727ecdd7f242807083d228fc5">&#9670;&#160;</a></span>lzma_index_memusage()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_index_memusage </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>streams</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>blocks</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate memory usage of lzma_index. </p>
-<p>On disk, the size of the Index field depends on both the number of Records stored and the size of the Records (due to variable-length integer encoding). When the Index is kept in lzma_index structure, the memory usage depends only on the number of Records/Blocks stored in the Index(es), and in case of concatenated lzma_indexes, the number of Streams. The size in RAM is almost always significantly bigger than in the encoded form on disk.</p>
-<p>This function calculates an approximate amount of memory needed to hold the given number of Streams and Blocks in lzma_index structure. This value may vary between CPU architectures and also between liblzma versions if the internal implementation is modified.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">streams</td><td>Number of Streams </td></tr>
- <tr><td class="paramname">blocks</td><td>Number of Blocks</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Approximate memory in bytes needed in a lzma_index structure. </dd></dl>
-
-</div>
-</div>
-<a id="a4118805ac7be6618aca6d6d7e5e4dde7" name="a4118805ac7be6618aca6d6d7e5e4dde7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4118805ac7be6618aca6d6d7e5e4dde7">&#9670;&#160;</a></span>lzma_index_memused()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_index_memused </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Calculate the memory usage of an existing lzma_index. </p>
-<p>This is a shorthand for lzma_index_memusage(lzma_index_stream_count(i), lzma_index_block_count(i)).</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Approximate memory in bytes used by the lzma_index structure. </dd></dl>
-
-</div>
-</div>
-<a id="a0850627d011111326d4278a3e2edec25" name="a0850627d011111326d4278a3e2edec25"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0850627d011111326d4278a3e2edec25">&#9670;&#160;</a></span>lzma_index_init()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> * lzma_index_init </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Allocate and initialize a new lzma_index structure. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>On success, a pointer to an empty initialized lzma_index is returned. If allocation fails, NULL is returned. </dd></dl>
-
-</div>
-</div>
-<a id="a0c2d0009f07fc315d5ac89e4bcd25abd" name="a0c2d0009f07fc315d5ac89e4bcd25abd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0c2d0009f07fc315d5ac89e4bcd25abd">&#9670;&#160;</a></span>lzma_index_end()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void lzma_index_end </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Deallocate lzma_index. </p>
-<p>If i is NULL, this does nothing.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to lzma_index structure to deallocate </td></tr>
- <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a id="ac347747eb933c7c408e6c801b33becc3" name="ac347747eb933c7c408e6c801b33becc3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac347747eb933c7c408e6c801b33becc3">&#9670;&#160;</a></span>lzma_index_append()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_append </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>unpadded_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>uncompressed_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Add a new Block to lzma_index. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to a lzma_index structure </td></tr>
- <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- <tr><td class="paramname">unpadded_size</td><td>Unpadded Size of a Block. This can be calculated with <a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a> after encoding or decoding the Block. </td></tr>
- <tr><td class="paramname">uncompressed_size</td><td>Uncompressed Size of a Block. This can be taken directly from <a class="el" href="structlzma__block.html" title="Options for the Block and Block Header encoders and decoders.">lzma_block</a> structure after encoding or decoding the Block.</td></tr>
- </table>
- </dd>
-</dl>
-<p>Appending a new Block does not invalidate iterators. For example, if an iterator was pointing to the end of the lzma_index, after <a class="el" href="index_8h.html#ac347747eb933c7c408e6c801b33becc3" title="Add a new Block to lzma_index.">lzma_index_append()</a> it is possible to read the next Block with an existing iterator.</p>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_DATA_ERROR: Compressed or uncompressed size of the Stream or size of the Index field would grow too big.</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a79a19669237f19f0b11c9f3be80a62b4" name="a79a19669237f19f0b11c9f3be80a62b4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a79a19669237f19f0b11c9f3be80a62b4">&#9670;&#160;</a></span>lzma_index_stream_flags()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_stream_flags </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
- <td class="paramname"><em>stream_flags</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Set the Stream Flags. </p>
-<p>Set the Stream Flags of the last (and typically the only) Stream in lzma_index. This can be useful when reading information from the lzma_index, because to decode Blocks, knowing the integrity check type is needed.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to lzma_index structure </td></tr>
- <tr><td class="paramname">stream_flags</td><td>Pointer to <a class="el" href="structlzma__stream__flags.html" title="Options for encoding/decoding Stream Header and Stream Footer.">lzma_stream_flags</a> structure. This is copied into the internal preallocated structure, so the caller doesn't need to keep the flags' data available after calling this function.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_OPTIONS_ERROR: Unsupported stream_flags-&gt;version.</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="af8d6528a04241841bd0a4322b0c57eaa" name="af8d6528a04241841bd0a4322b0c57eaa"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af8d6528a04241841bd0a4322b0c57eaa">&#9670;&#160;</a></span>lzma_index_checks()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_index_checks </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the types of integrity Checks. </p>
-<p>If <a class="el" href="index_8h.html#a79a19669237f19f0b11c9f3be80a62b4" title="Set the Stream Flags.">lzma_index_stream_flags()</a> is used to set the Stream Flags for every Stream, <a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa" title="Get the types of integrity Checks.">lzma_index_checks()</a> can be used to get a bitmask to indicate which Check types have been used. It can be useful e.g. if showing the Check types to the user.</p>
-<p>The bitmask is 1 &lt;&lt; check_id, e.g. CRC32 is 1 &lt;&lt; 1 and SHA-256 is 1 &lt;&lt; 10.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Bitmask indicating which Check types are used in the lzma_index </dd></dl>
-
-</div>
-</div>
-<a id="a3ed82f96c688f3c953f6509b6f4e2ef3" name="a3ed82f96c688f3c953f6509b6f4e2ef3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3ed82f96c688f3c953f6509b6f4e2ef3">&#9670;&#160;</a></span>lzma_index_stream_padding()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_stream_padding </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>stream_padding</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Set the amount of Stream Padding. </p>
-<p>Set the amount of Stream Padding of the last (and typically the only) Stream in the lzma_index. This is needed when planning to do random-access reading within multiple concatenated Streams.</p>
-<p>By default, the amount of Stream Padding is assumed to be zero bytes.</p>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_DATA_ERROR: The file size would grow too big.</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="afd159a765b09b0cf79186069a848d07e" name="afd159a765b09b0cf79186069a848d07e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afd159a765b09b0cf79186069a848d07e">&#9670;&#160;</a></span>lzma_index_stream_count()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_stream_count </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the number of Streams. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Number of Streams in the lzma_index </dd></dl>
-
-</div>
-</div>
-<a id="add1a8c506f67dbc19cae6747107e3bec" name="add1a8c506f67dbc19cae6747107e3bec"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#add1a8c506f67dbc19cae6747107e3bec">&#9670;&#160;</a></span>lzma_index_block_count()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_block_count </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the number of Blocks. </p>
-<p>This returns the total number of Blocks in lzma_index. To get number of Blocks in individual Streams, use <a class="el" href="structlzma__index__iter.html" title="Iterator to get information about Blocks and Streams.">lzma_index_iter</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Number of blocks in the lzma_index </dd></dl>
-
-</div>
-</div>
-<a id="a669ed1a82b1941217cfbb07e7826afc2" name="a669ed1a82b1941217cfbb07e7826afc2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a669ed1a82b1941217cfbb07e7826afc2">&#9670;&#160;</a></span>lzma_index_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_size </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the size of the Index field as bytes. </p>
-<p>This is needed to verify the Backward Size field in the Stream Footer.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Size in bytes of the Index </dd></dl>
-
-</div>
-</div>
-<a id="af3630369b43c9ccc906065d759b49663" name="af3630369b43c9ccc906065d759b49663"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af3630369b43c9ccc906065d759b49663">&#9670;&#160;</a></span>lzma_index_stream_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_stream_size </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the total size of the Stream. </p>
-<p>If multiple lzma_indexes have been combined, this works as if the Blocks were in a single Stream. This is useful if you are going to combine Blocks from multiple Streams into a single new Stream.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Size in bytes of the Stream (if all Blocks are combined into one Stream). </dd></dl>
-
-</div>
-</div>
-<a id="a7829942b83ee1fa5b6443cc248b81041" name="a7829942b83ee1fa5b6443cc248b81041"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7829942b83ee1fa5b6443cc248b81041">&#9670;&#160;</a></span>lzma_index_total_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_total_size </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the total size of the Blocks. </p>
-<p>This doesn't include the Stream Header, Stream Footer, Stream Padding, or Index fields.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Size in bytes of all Blocks in the Stream(s) </dd></dl>
-
-</div>
-</div>
-<a id="ac875ed47d35385e5dac461b25c5ea1c9" name="ac875ed47d35385e5dac461b25c5ea1c9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac875ed47d35385e5dac461b25c5ea1c9">&#9670;&#160;</a></span>lzma_index_file_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_file_size </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the total size of the file. </p>
-<p>When no lzma_indexes have been combined with <a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a" title="Concatenate lzma_indexes.">lzma_index_cat()</a> and there is no Stream Padding, this function is identical to <a class="el" href="index_8h.html#af3630369b43c9ccc906065d759b49663" title="Get the total size of the Stream.">lzma_index_stream_size()</a>. If multiple lzma_indexes have been combined, this includes also the headers of each separate Stream and the possible Stream Padding fields.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Total size of the .xz file in bytes </dd></dl>
-
-</div>
-</div>
-<a id="a620fe6317f1f9d7af9cc27c748bf07d6" name="a620fe6317f1f9d7af9cc27c748bf07d6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a620fe6317f1f9d7af9cc27c748bf07d6">&#9670;&#160;</a></span>lzma_index_uncompressed_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_uncompressed_size </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the uncompressed size of the file. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Size in bytes of the uncompressed data in the file </dd></dl>
-
-</div>
-</div>
-<a id="aa78f02f18ed29d289a6ef37b8ea98a21" name="aa78f02f18ed29d289a6ef37b8ea98a21"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa78f02f18ed29d289a6ef37b8ea98a21">&#9670;&#160;</a></span>lzma_index_iter_init()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void lzma_index_iter_init </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *&#160;</td>
- <td class="paramname"><em>iter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize an iterator. </p>
-<p>This function associates the iterator with the given lzma_index, and calls <a class="el" href="index_8h.html#ae81438be8deff4894b104e65d8acdd24" title="Rewind the iterator.">lzma_index_iter_rewind()</a> on the iterator.</p>
-<p>This function doesn't allocate any memory, thus there is no lzma_index_iter_end(). The iterator is valid as long as the associated lzma_index is valid, that is, until <a class="el" href="index_8h.html#a0c2d0009f07fc315d5ac89e4bcd25abd" title="Deallocate lzma_index.">lzma_index_end()</a> or using it as source in <a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a" title="Concatenate lzma_indexes.">lzma_index_cat()</a>. Specifically, lzma_index doesn't become invalid if new Blocks are added to it with <a class="el" href="index_8h.html#ac347747eb933c7c408e6c801b33becc3" title="Add a new Block to lzma_index.">lzma_index_append()</a> or if it is used as the destination in <a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a" title="Concatenate lzma_indexes.">lzma_index_cat()</a>.</p>
-<p>It is safe to make copies of an initialized <a class="el" href="structlzma__index__iter.html" title="Iterator to get information about Blocks and Streams.">lzma_index_iter</a>, for example, to easily restart reading at some particular position.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">iter</td><td>Pointer to a <a class="el" href="structlzma__index__iter.html" title="Iterator to get information about Blocks and Streams.">lzma_index_iter</a> structure </td></tr>
- <tr><td class="paramname">i</td><td>lzma_index to which the iterator will be associated </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a id="ae81438be8deff4894b104e65d8acdd24" name="ae81438be8deff4894b104e65d8acdd24"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae81438be8deff4894b104e65d8acdd24">&#9670;&#160;</a></span>lzma_index_iter_rewind()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void lzma_index_iter_rewind </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *&#160;</td>
- <td class="paramname"><em>iter</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rewind the iterator. </p>
-<p>Rewind the iterator so that next call to <a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e" title="Get the next Block or Stream.">lzma_index_iter_next()</a> will return the first Block or Stream.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">iter</td><td>Pointer to a <a class="el" href="structlzma__index__iter.html" title="Iterator to get information about Blocks and Streams.">lzma_index_iter</a> structure </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a id="af428522e1b3eef137c65c5a01f766e0e" name="af428522e1b3eef137c65c5a01f766e0e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af428522e1b3eef137c65c5a01f766e0e">&#9670;&#160;</a></span>lzma_index_iter_next()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_index_iter_next </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *&#160;</td>
- <td class="paramname"><em>iter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">lzma_index_iter_mode</a>&#160;</td>
- <td class="paramname"><em>mode</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the next Block or Stream. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">iter</td><td>Iterator initialized with <a class="el" href="index_8h.html#aa78f02f18ed29d289a6ef37b8ea98a21" title="Initialize an iterator.">lzma_index_iter_init()</a> </td></tr>
- <tr><td class="paramname">mode</td><td>Specify what kind of information the caller wants to get. See lzma_index_iter_mode for details.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
-<li>true if no Block or Stream matching the mode is found. *iter is not updated (failure).</li>
-<li>false if the next Block or Stream matching the mode was found. *iter is updated (success). </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="ac4f56df9d210712e5d7add5502c9eb93" name="ac4f56df9d210712e5d7add5502c9eb93"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac4f56df9d210712e5d7add5502c9eb93">&#9670;&#160;</a></span>lzma_index_iter_locate()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_index_iter_locate </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *&#160;</td>
- <td class="paramname"><em>iter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>target</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Locate a Block. </p>
-<p>If it is possible to seek in the .xz file, it is possible to parse the Index field(s) and use <a class="el" href="index_8h.html#ac4f56df9d210712e5d7add5502c9eb93" title="Locate a Block.">lzma_index_iter_locate()</a> to do random-access reading with granularity of Block size.</p>
-<p>If the target is smaller than the uncompressed size of the Stream (can be checked with <a class="el" href="index_8h.html#a620fe6317f1f9d7af9cc27c748bf07d6" title="Get the uncompressed size of the file.">lzma_index_uncompressed_size()</a>):</p><ul>
-<li>Information about the Stream and Block containing the requested uncompressed offset is stored into *iter.</li>
-<li>Internal state of the iterator is adjusted so that <a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e" title="Get the next Block or Stream.">lzma_index_iter_next()</a> can be used to read subsequent Blocks or Streams.</li>
-</ul>
-<p>If the target is greater than the uncompressed size of the Stream, *iter is not modified.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">iter</td><td>Iterator that was earlier initialized with <a class="el" href="index_8h.html#aa78f02f18ed29d289a6ef37b8ea98a21" title="Initialize an iterator.">lzma_index_iter_init()</a>. </td></tr>
- <tr><td class="paramname">target</td><td>Uncompressed target offset which the caller would like to locate from the Stream</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
-<li>true if the target is greater than or equal to the uncompressed size of the Stream (failure)</li>
-<li>false if the target is smaller than the uncompressed size of the Stream (success) </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="abc4db36b4bd67af01819be9dd045c34a" name="abc4db36b4bd67af01819be9dd045c34a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abc4db36b4bd67af01819be9dd045c34a">&#9670;&#160;</a></span>lzma_index_cat()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_cat </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>dest</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>src</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Concatenate lzma_indexes. </p>
-<p>Concatenating lzma_indexes is useful when doing random-access reading in multi-Stream .xz file, or when combining multiple Streams into single Stream.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">dest</td><td>lzma_index after which src is appended </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">src</td><td>lzma_index to be appended after dest. If this function succeeds, the memory allocated for src is freed or moved to be part of dest, and all iterators pointing to src will become invalid. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: lzma_indexes were concatenated successfully. src is now a dangling pointer.</li>
-<li>LZMA_DATA_ERROR: *dest would grow too big.</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a5161e3f67156577882e1d95dcb57e33e" name="a5161e3f67156577882e1d95dcb57e33e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5161e3f67156577882e1d95dcb57e33e">&#9670;&#160;</a></span>lzma_index_dup()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> * lzma_index_dup </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Duplicate lzma_index. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">i</td><td>Pointer to lzma_index structure to be duplicated </td></tr>
- <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A copy of the lzma_index, or NULL if memory allocation failed. </dd></dl>
-
-</div>
-</div>
-<a id="a6800d70f3b2afca085496460cd03211d" name="a6800d70f3b2afca085496460cd03211d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6800d70f3b2afca085496460cd03211d">&#9670;&#160;</a></span>lzma_index_encoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_encoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize .xz Index encoder. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">strm</td><td>Pointer to properly prepared <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> </td></tr>
- <tr><td class="paramname">i</td><td>Pointer to lzma_index which should be encoded.</td></tr>
- </table>
- </dd>
-</dl>
-<p>The valid `action' values for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN and LZMA_FINISH. It is enough to use only one of them (you can choose freely).</p>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Initialization succeeded, continue with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>.</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="abb56fd1d5914f8900ece7b88b78e5e23" name="abb56fd1d5914f8900ece7b88b78e5e23"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abb56fd1d5914f8900ece7b88b78e5e23">&#9670;&#160;</a></span>lzma_index_decoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_decoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> **&#160;</td>
- <td class="paramname"><em>i</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t&#160;</td>
- <td class="paramname"><em>memlimit</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize .xz Index decoder. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">strm</td><td>Pointer to properly prepared <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">i</td><td>The decoded Index will be made available via this pointer. Initially this function will set *i to NULL (the old value is ignored). If decoding succeeds (<a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> returns LZMA_STREAM_END), *i will be set to point to a new lzma_index, which the application has to later free with <a class="el" href="index_8h.html#a0c2d0009f07fc315d5ac89e4bcd25abd" title="Deallocate lzma_index.">lzma_index_end()</a>. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">memlimit</td><td>How much memory the resulting lzma_index is allowed to require. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified.</td></tr>
- </table>
- </dd>
-</dl>
-<p>Valid `action' arguments to <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN and LZMA_FINISH. There is no need to use LZMA_FINISH, but it's allowed because it may simplify certain types of applications.</p>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Initialization succeeded, continue with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>.</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_PROG_ERROR</li>
-</ul>
-</dd></dl>
-<dl class="section note"><dt>Note</dt><dd>liblzma 5.2.3 and older list also LZMA_MEMLIMIT_ERROR here but that error code has never been possible from this initialization function. </dd></dl>
-
-</div>
-</div>
-<a id="add1ef06dec8a26d08ae8651cff0fd8d6" name="add1ef06dec8a26d08ae8651cff0fd8d6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#add1ef06dec8a26d08ae8651cff0fd8d6">&#9670;&#160;</a></span>lzma_index_buffer_encode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_buffer_encode </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
- <td class="paramname"><em>i</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>out_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>out_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-call .xz Index encoder. </p>
-<dl class="section note"><dt>Note</dt><dd>This function doesn't take allocator argument since all the internal data is allocated on stack.</dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">i</td><td>lzma_index to be encoded </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Encoding was successful.</li>
-<li>LZMA_BUF_ERROR: Output buffer is too small. Use <a class="el" href="index_8h.html#a669ed1a82b1941217cfbb07e7826afc2" title="Get the size of the Index field as bytes.">lzma_index_size()</a> to find out how much output space is needed.</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a028b8b8d59a413f9682eea1269a6ae8b" name="a028b8b8d59a413f9682eea1269a6ae8b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a028b8b8d59a413f9682eea1269a6ae8b">&#9670;&#160;</a></span>lzma_index_buffer_decode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_buffer_decode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> **&#160;</td>
- <td class="paramname"><em>i</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t *&#160;</td>
- <td class="paramname"><em>memlimit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>in_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>in_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-call .xz Index decoder. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">i</td><td>If decoding succeeds, *i will point to a new lzma_index, which the application has to later free with <a class="el" href="index_8h.html#a0c2d0009f07fc315d5ac89e4bcd25abd" title="Deallocate lzma_index.">lzma_index_end()</a>. If an error occurs, *i will be NULL. The old value of *i is always ignored and thus doesn't need to be initialized by the caller. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">memlimit</td><td>Pointer to how much memory the resulting lzma_index is allowed to require. The value pointed by this pointer is modified if and only if LZMA_MEMLIMIT_ERROR is returned. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_pos</td><td>The next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer; the first byte that won't be read is in[in_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Decoding was successful.</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_MEMLIMIT_ERROR: Memory usage limit was reached. The minimum required memlimit value was stored to *memlimit.</li>
-<li>LZMA_DATA_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a7c5d77cf8532d95977d4571a1eb0a222" name="a7c5d77cf8532d95977d4571a1eb0a222"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7c5d77cf8532d95977d4571a1eb0a222">&#9670;&#160;</a></span>lzma_file_info_decoder()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_file_info_decoder </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
- <td class="paramname"><em>strm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> **&#160;</td>
- <td class="paramname"><em>dest_index</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t&#160;</td>
- <td class="paramname"><em>memlimit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t&#160;</td>
- <td class="paramname"><em>file_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Initialize a .xz file information decoder. </p>
-<p>This decoder decodes the Stream Header, Stream Footer, Index, and Stream Padding field(s) from the input .xz file and stores the resulting combined index in *dest_index. This information can be used to get the uncompressed file size with lzma_index_uncompressed_size(*dest_index) or, for example, to implement random access reading by locating the Blocks in the Streams.</p>
-<p>To get the required information from the .xz file, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> may ask the application to seek in the input file by returning LZMA_SEEK_NEEDED and having the target file position specified in <a class="el" href="structlzma__stream.html#af7c43a61f3dfeb0b9c8487b7f275054e" title="New seek input position for LZMA_SEEK_NEEDED.">lzma_stream.seek_pos</a>. The number of seeks required depends on the input file and how big buffers the application provides. When possible, the decoder will seek backward and forward in the given buffer to avoid useless seek requests. Thus, if the application provides the whole file at once, no external seeking will be required (that is, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> won't return LZMA_SEEK_NEEDED).</p>
-<p>The value in <a class="el" href="structlzma__stream.html#a1a411e1755d6185756caefabc3932c7b">lzma_stream.total_in</a> can be used to estimate how much data liblzma had to read to get the file information. However, due to seeking and the way total_in is updated, the value of total_in will be somewhat inaccurate (a little too big). Thus, total_in is a good estimate but don't expect to see the same exact value for the same file if you change the input buffer size or switch to a different liblzma version.</p>
-<p>Valid `action' arguments to <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN and LZMA_FINISH. You only need to use LZMA_RUN; LZMA_FINISH is only supported because it might be convenient for some applications. If you use LZMA_FINISH and if <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> asks the application to seek, remember to reset `action' back to LZMA_RUN unless you hit the end of the file again.</p>
-<p>Possible return values from <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>:</p><ul>
-<li>LZMA_OK: All OK so far, more input needed</li>
-<li>LZMA_SEEK_NEEDED: Provide more input starting from the absolute file position strm-&gt;seek_pos</li>
-<li>LZMA_STREAM_END: Decoding was successful, *dest_index has been set</li>
-<li>LZMA_FORMAT_ERROR: The input file is not in the .xz format (the expected magic bytes were not found from the beginning of the file)</li>
-<li>LZMA_OPTIONS_ERROR: File looks valid but contains headers that aren't supported by this version of liblzma</li>
-<li>LZMA_DATA_ERROR: File is corrupt</li>
-<li>LZMA_BUF_ERROR</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_MEMLIMIT_ERROR</li>
-<li>LZMA_PROG_ERROR</li>
-</ul>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">strm</td><td>Pointer to a properly prepared <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">dest_index</td><td>Pointer to a pointer where the decoder will put the decoded lzma_index. The old value of *dest_index is ignored (not freed). </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">memlimit</td><td>How much memory the resulting lzma_index is allowed to require. Use UINT64_MAX to effectively disable the limiter. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">file_size</td><td>Size of the input .xz file</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_MEM_ERROR</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/index__hash_8h.html b/doc/api/index__hash_8h.html
deleted file mode 100644
index 1f568ed..0000000
--- a/doc/api/index__hash_8h.html
+++ /dev/null
@@ -1,311 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/index_hash.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> &#124;
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle"><div class="title">index_hash.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Validate Index by using a hash function.
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:a2db9f438838c8ff72a8a6fd3fc856f8c"><td class="memItemLeft" align="right" valign="top"><a id="a2db9f438838c8ff72a8a6fd3fc856f8c" name="a2db9f438838c8ff72a8a6fd3fc856f8c"></a>
-typedef struct lzma_index_hash_s&#160;</td><td class="memItemRight" valign="bottom"><b>lzma_index_hash</b></td></tr>
-<tr class="memdesc:a2db9f438838c8ff72a8a6fd3fc856f8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque data type to hold the Index hash. <br /></td></tr>
-<tr class="separator:a2db9f438838c8ff72a8a6fd3fc856f8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:aaafae4967a4a266d97dc34a98bfcabfb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index__hash_8h.html#aaafae4967a4a266d97dc34a98bfcabfb">lzma_index_hash_init</a> (<a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *index_hash, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:aaafae4967a4a266d97dc34a98bfcabfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate and initialize a new lzma_index_hash structure. <br /></td></tr>
-<tr class="separator:aaafae4967a4a266d97dc34a98bfcabfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7dacb41b9ec1c8df5d33dfdae97743b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index__hash_8h.html#a7dacb41b9ec1c8df5d33dfdae97743b3">lzma_index_hash_end</a> (<a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *index_hash, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow</td></tr>
-<tr class="memdesc:a7dacb41b9ec1c8df5d33dfdae97743b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deallocate lzma_index_hash structure. <br /></td></tr>
-<tr class="separator:a7dacb41b9ec1c8df5d33dfdae97743b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2bdbe4f0b5fa2fadb7528447feaaa97f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f">lzma_index_hash_append</a> (<a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *index_hash, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> unpadded_size, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> uncompressed_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a2bdbe4f0b5fa2fadb7528447feaaa97f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new Record to an Index hash. <br /></td></tr>
-<tr class="separator:a2bdbe4f0b5fa2fadb7528447feaaa97f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a891eb955284c9117155f92eb0ddba44c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index__hash_8h.html#a891eb955284c9117155f92eb0ddba44c">lzma_index_hash_decode</a> (<a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *index_hash, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a891eb955284c9117155f92eb0ddba44c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode and validate the Index field. <br /></td></tr>
-<tr class="separator:a891eb955284c9117155f92eb0ddba44c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0f8ab3b57b117f9547866156755c917f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index__hash_8h.html#a0f8ab3b57b117f9547866156755c917f">lzma_index_hash_size</a> (const <a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *index_hash) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a0f8ab3b57b117f9547866156755c917f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the Index field as bytes. <br /></td></tr>
-<tr class="separator:a0f8ab3b57b117f9547866156755c917f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Validate Index by using a hash function. </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead.</dd></dl>
-<p>Hashing makes it possible to use constant amount of memory to validate Index of arbitrary size. </p>
-</div><h2 class="groupheader">Function Documentation</h2>
-<a id="aaafae4967a4a266d97dc34a98bfcabfb" name="aaafae4967a4a266d97dc34a98bfcabfb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aaafae4967a4a266d97dc34a98bfcabfb">&#9670;&#160;</a></span>lzma_index_hash_init()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> * lzma_index_hash_init </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *&#160;</td>
- <td class="paramname"><em>index_hash</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Allocate and initialize a new lzma_index_hash structure. </p>
-<p>If index_hash is NULL, this function allocates and initializes a new lzma_index_hash structure and returns a pointer to it. If allocation fails, NULL is returned.</p>
-<p>If index_hash is non-NULL, this function reinitializes the lzma_index_hash structure and returns the same pointer. In this case, return value cannot be NULL or a different pointer than the index_hash that was given as an argument.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">index_hash</td><td>Pointer to a lzma_index_hash structure or NULL. </td></tr>
- <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Initialized lzma_index_hash structure on success or NULL on failure. </dd></dl>
-
-</div>
-</div>
-<a id="a7dacb41b9ec1c8df5d33dfdae97743b3" name="a7dacb41b9ec1c8df5d33dfdae97743b3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7dacb41b9ec1c8df5d33dfdae97743b3">&#9670;&#160;</a></span>lzma_index_hash_end()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void lzma_index_hash_end </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *&#160;</td>
- <td class="paramname"><em>index_hash</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
- <td class="paramname"><em>allocator</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Deallocate lzma_index_hash structure. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">index_hash</td><td>Pointer to a lzma_index_hash structure to free. </td></tr>
- <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a id="a2bdbe4f0b5fa2fadb7528447feaaa97f" name="a2bdbe4f0b5fa2fadb7528447feaaa97f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2bdbe4f0b5fa2fadb7528447feaaa97f">&#9670;&#160;</a></span>lzma_index_hash_append()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_hash_append </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *&#160;</td>
- <td class="paramname"><em>index_hash</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>unpadded_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>uncompressed_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Add a new Record to an Index hash. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">index_hash</td><td>Pointer to a lzma_index_hash structure </td></tr>
- <tr><td class="paramname">unpadded_size</td><td>Unpadded Size of a Block </td></tr>
- <tr><td class="paramname">uncompressed_size</td><td>Uncompressed Size of a Block</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK</li>
-<li>LZMA_DATA_ERROR: Compressed or uncompressed size of the Stream or size of the Index field would grow too big.</li>
-<li>LZMA_PROG_ERROR: Invalid arguments or this function is being used when <a class="el" href="index__hash_8h.html#a891eb955284c9117155f92eb0ddba44c" title="Decode and validate the Index field.">lzma_index_hash_decode()</a> has already been used. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a891eb955284c9117155f92eb0ddba44c" name="a891eb955284c9117155f92eb0ddba44c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a891eb955284c9117155f92eb0ddba44c">&#9670;&#160;</a></span>lzma_index_hash_decode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_hash_decode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *&#160;</td>
- <td class="paramname"><em>index_hash</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>in_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>in_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Decode and validate the Index field. </p>
-<p>After telling the sizes of all Blocks with <a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f" title="Add a new Record to an Index hash.">lzma_index_hash_append()</a>, the actual Index field is decoded with this function. Specifically, once decoding of the Index field has been started, no more Records can be added using <a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f" title="Add a new Record to an Index hash.">lzma_index_hash_append()</a>.</p>
-<p>This function doesn't use <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure to pass the input data. Instead, the input buffer is specified using three arguments. This is because it matches better the internal APIs of liblzma.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">index_hash</td><td>Pointer to a lzma_index_hash structure </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Pointer to the beginning of the input buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">in_pos</td><td>in[*in_pos] is the next byte to process </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>in[in_size] is the first byte not to process</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: So far good, but more input is needed.</li>
-<li>LZMA_STREAM_END: Index decoded successfully and it matches the Records given with <a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f" title="Add a new Record to an Index hash.">lzma_index_hash_append()</a>.</li>
-<li>LZMA_DATA_ERROR: Index is corrupt or doesn't match the information given with <a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f" title="Add a new Record to an Index hash.">lzma_index_hash_append()</a>.</li>
-<li>LZMA_BUF_ERROR: Cannot progress because *in_pos &gt;= in_size.</li>
-<li>LZMA_PROG_ERROR </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a0f8ab3b57b117f9547866156755c917f" name="a0f8ab3b57b117f9547866156755c917f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0f8ab3b57b117f9547866156755c917f">&#9670;&#160;</a></span>lzma_index_hash_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_hash_size </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *&#160;</td>
- <td class="paramname"><em>index_hash</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the size of the Index field as bytes. </p>
-<p>This is needed to verify the Backward Size field in the Stream Footer.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">index_hash</td><td>Pointer to a lzma_index_hash structure</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Size of the Index field in bytes. </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/lzma12_8h.html b/doc/api/lzma12_8h.html
deleted file mode 100644
index 1d8330c..0000000
--- a/doc/api/lzma12_8h.html
+++ /dev/null
@@ -1,436 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/lzma12.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> &#124;
-<a href="#define-members">Macros</a> &#124;
-<a href="#enum-members">Enumerations</a> &#124;
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle"><div class="title">lzma12.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>LZMA1 and LZMA2 filters.
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options specific to the LZMA1 and LZMA2 filters. <a href="structlzma__options__lzma.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:accedd16abcb758e7f748bac1102abda9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#accedd16abcb758e7f748bac1102abda9">LZMA_FILTER_LZMA1</a>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x4000000000000001)</td></tr>
-<tr class="memdesc:accedd16abcb758e7f748bac1102abda9"><td class="mdescLeft">&#160;</td><td class="mdescRight">LZMA1 Filter ID (for raw encoder/decoder only, not in .xz) <br /></td></tr>
-<tr class="separator:accedd16abcb758e7f748bac1102abda9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a98a7fd42aa78a273a6b138629e46772d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#a98a7fd42aa78a273a6b138629e46772d">LZMA_FILTER_LZMA1EXT</a>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x4000000000000002)</td></tr>
-<tr class="memdesc:a98a7fd42aa78a273a6b138629e46772d"><td class="mdescLeft">&#160;</td><td class="mdescRight">LZMA1 Filter ID with extended options (for raw encoder/decoder) <br /></td></tr>
-<tr class="separator:a98a7fd42aa78a273a6b138629e46772d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a04f9d9a018a47cc99491e6e94e92f96b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#a04f9d9a018a47cc99491e6e94e92f96b">LZMA_FILTER_LZMA2</a>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x21)</td></tr>
-<tr class="memdesc:a04f9d9a018a47cc99491e6e94e92f96b"><td class="mdescLeft">&#160;</td><td class="mdescRight">LZMA2 Filter ID. <br /></td></tr>
-<tr class="separator:a04f9d9a018a47cc99491e6e94e92f96b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a221f69f8a1f604c1aa5d79ae8afec1e0"><td class="memItemLeft" align="right" valign="top"><a id="a221f69f8a1f604c1aa5d79ae8afec1e0" name="a221f69f8a1f604c1aa5d79ae8afec1e0"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_DICT_SIZE_MIN</b>&#160;&#160;&#160;UINT32_C(4096)</td></tr>
-<tr class="separator:a221f69f8a1f604c1aa5d79ae8afec1e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abadf9a9599c106a1381756219c16f8ee"><td class="memItemLeft" align="right" valign="top"><a id="abadf9a9599c106a1381756219c16f8ee" name="abadf9a9599c106a1381756219c16f8ee"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_DICT_SIZE_DEFAULT</b>&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; 23)</td></tr>
-<tr class="separator:abadf9a9599c106a1381756219c16f8ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a36552f4d49390d060692424817222d9c"><td class="memItemLeft" align="right" valign="top"><a id="a36552f4d49390d060692424817222d9c" name="a36552f4d49390d060692424817222d9c"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_LCLP_MIN</b>&#160;&#160;&#160;0</td></tr>
-<tr class="separator:a36552f4d49390d060692424817222d9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6890226055b5069e83835af1fb804654"><td class="memItemLeft" align="right" valign="top"><a id="a6890226055b5069e83835af1fb804654" name="a6890226055b5069e83835af1fb804654"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_LCLP_MAX</b>&#160;&#160;&#160;4</td></tr>
-<tr class="separator:a6890226055b5069e83835af1fb804654"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af3769f40103ec40516e1235c4b912d05"><td class="memItemLeft" align="right" valign="top"><a id="af3769f40103ec40516e1235c4b912d05" name="af3769f40103ec40516e1235c4b912d05"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_LC_DEFAULT</b>&#160;&#160;&#160;3</td></tr>
-<tr class="separator:af3769f40103ec40516e1235c4b912d05"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afa8ed908b2c1a88f3a76c47610036e68"><td class="memItemLeft" align="right" valign="top"><a id="afa8ed908b2c1a88f3a76c47610036e68" name="afa8ed908b2c1a88f3a76c47610036e68"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_LP_DEFAULT</b>&#160;&#160;&#160;0</td></tr>
-<tr class="separator:afa8ed908b2c1a88f3a76c47610036e68"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a11ed595416a499021cd571f08bbd38bc"><td class="memItemLeft" align="right" valign="top"><a id="a11ed595416a499021cd571f08bbd38bc" name="a11ed595416a499021cd571f08bbd38bc"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_PB_MIN</b>&#160;&#160;&#160;0</td></tr>
-<tr class="separator:a11ed595416a499021cd571f08bbd38bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5e2661cef9dbcbb309239ec243a7c034"><td class="memItemLeft" align="right" valign="top"><a id="a5e2661cef9dbcbb309239ec243a7c034" name="a5e2661cef9dbcbb309239ec243a7c034"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_PB_MAX</b>&#160;&#160;&#160;4</td></tr>
-<tr class="separator:a5e2661cef9dbcbb309239ec243a7c034"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5072e13ce7b6abcdffdf6456da5959a1"><td class="memItemLeft" align="right" valign="top"><a id="a5072e13ce7b6abcdffdf6456da5959a1" name="a5072e13ce7b6abcdffdf6456da5959a1"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_PB_DEFAULT</b>&#160;&#160;&#160;2</td></tr>
-<tr class="separator:a5072e13ce7b6abcdffdf6456da5959a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad088307349f27b38fda0d1f21588adc9"><td class="memItemLeft" align="right" valign="top"><a id="ad088307349f27b38fda0d1f21588adc9" name="ad088307349f27b38fda0d1f21588adc9"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_LZMA1EXT_ALLOW_EOPM</b>&#160;&#160;&#160;UINT32_C(0x01)</td></tr>
-<tr class="separator:ad088307349f27b38fda0d1f21588adc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a73ed0293db4e59d73a702d66fef537c3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#a73ed0293db4e59d73a702d66fef537c3">lzma_set_ext_size</a>(opt_lzma2, u64size)</td></tr>
-<tr class="memdesc:a73ed0293db4e59d73a702d66fef537c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to set the 64-bit uncompressed size in ext_size_*. <br /></td></tr>
-<tr class="separator:a73ed0293db4e59d73a702d66fef537c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:acf740075f86fa61dc408d6d0dbf8fa80"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma_match_finder</a> { <br />
-&#160;&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a6eb38f634021a192cada8a978b5de93b">LZMA_MF_HC3</a> = 0x03
-, <a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a0944620f4949289c2ebde613cae12b04">LZMA_MF_HC4</a> = 0x04
-, <a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a7ab212446c3f6520f5c33ccfa4b3386a">LZMA_MF_BT2</a> = 0x12
-, <a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a983ecc59bf3e07a7c43fea551ea11865">LZMA_MF_BT3</a> = 0x13
-, <br />
-&#160;&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a468c32cdea9861d1ff98478364e6c547">LZMA_MF_BT4</a> = 0x14
-<br />
- }</td></tr>
-<tr class="memdesc:acf740075f86fa61dc408d6d0dbf8fa80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Match finders. <a href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">More...</a><br /></td></tr>
-<tr class="separator:acf740075f86fa61dc408d6d0dbf8fa80"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1032316e3075c2c8086fb17104b91866"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma_mode</a> { <a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866ac8c0926a91b4f756e11121efd30648cc">LZMA_MODE_FAST</a> = 1
-, <a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866ad37225f30d5cd21fc8bb3eaba283bbf9">LZMA_MODE_NORMAL</a> = 2
- }</td></tr>
-<tr class="memdesc:a1032316e3075c2c8086fb17104b91866"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compression modes. <a href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">More...</a><br /></td></tr>
-<tr class="separator:a1032316e3075c2c8086fb17104b91866"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:aefba1f7214ddcf8cd408a0702e8642b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#aefba1f7214ddcf8cd408a0702e8642b5">lzma_mf_is_supported</a> (<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma_match_finder</a> match_finder) lzma_nothrow lzma_attr_const</td></tr>
-<tr class="memdesc:aefba1f7214ddcf8cd408a0702e8642b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if given match finder is supported. <br /></td></tr>
-<tr class="separator:aefba1f7214ddcf8cd408a0702e8642b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad1add1c2600fdbb3d737e4fb3465dfcb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#ad1add1c2600fdbb3d737e4fb3465dfcb">lzma_mode_is_supported</a> (<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma_mode</a> mode) lzma_nothrow lzma_attr_const</td></tr>
-<tr class="memdesc:ad1add1c2600fdbb3d737e4fb3465dfcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if given compression mode is supported. <br /></td></tr>
-<tr class="separator:ad1add1c2600fdbb3d737e4fb3465dfcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa62c28944fe3575653a4c25780400d77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#aa62c28944fe3575653a4c25780400d77">lzma_lzma_preset</a> (<a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a> *options, uint32_t preset) lzma_nothrow</td></tr>
-<tr class="memdesc:aa62c28944fe3575653a4c25780400d77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a compression preset to <a class="el" href="structlzma__options__lzma.html" title="Options specific to the LZMA1 and LZMA2 filters.">lzma_options_lzma</a> structure. <br /></td></tr>
-<tr class="separator:aa62c28944fe3575653a4c25780400d77"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>LZMA1 and LZMA2 filters. </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="accedd16abcb758e7f748bac1102abda9" name="accedd16abcb758e7f748bac1102abda9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#accedd16abcb758e7f748bac1102abda9">&#9670;&#160;</a></span>LZMA_FILTER_LZMA1</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_FILTER_LZMA1&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x4000000000000001)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>LZMA1 Filter ID (for raw encoder/decoder only, not in .xz) </p>
-<p>LZMA1 is the very same thing as what was called just LZMA in LZMA Utils, 7-Zip, and LZMA SDK. It's called LZMA1 here to prevent developers from accidentally using LZMA when they actually want LZMA2. </p>
-
-</div>
-</div>
-<a id="a98a7fd42aa78a273a6b138629e46772d" name="a98a7fd42aa78a273a6b138629e46772d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a98a7fd42aa78a273a6b138629e46772d">&#9670;&#160;</a></span>LZMA_FILTER_LZMA1EXT</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_FILTER_LZMA1EXT&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x4000000000000002)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>LZMA1 Filter ID with extended options (for raw encoder/decoder) </p>
-<p>This is like LZMA_FILTER_LZMA1 but with this ID a few extra options are supported in the <a class="el" href="structlzma__options__lzma.html" title="Options specific to the LZMA1 and LZMA2 filters.">lzma_options_lzma</a> structure:</p>
-<ul>
-<li>A flag to tell the encoder if the end of payload marker (EOPM) alias end of stream (EOS) marker must be written at the end of the stream. In contrast, LZMA_FILTER_LZMA1 always writes the end marker.</li>
-<li>Decoder needs to be told the uncompressed size of the stream or that it is unknown (using the special value UINT64_MAX). If the size is known, a flag can be set to allow the presence of the end marker anyway. In contrast, LZMA_FILTER_LZMA1 always behaves as if the uncompressed size was unknown.</li>
-</ul>
-<p>This allows handling file formats where LZMA1 streams are used but where the end marker isn't allowed or where it might not (always) be present. This extended LZMA1 functionality is provided as a Filter ID for raw encoder and decoder instead of adding new encoder and decoder initialization functions because this way it is possible to also use extra filters, for example, LZMA_FILTER_X86 in a filter chain with LZMA_FILTER_LZMA1EXT, which might be needed to handle some file formats. </p>
-
-</div>
-</div>
-<a id="a04f9d9a018a47cc99491e6e94e92f96b" name="a04f9d9a018a47cc99491e6e94e92f96b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a04f9d9a018a47cc99491e6e94e92f96b">&#9670;&#160;</a></span>LZMA_FILTER_LZMA2</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_FILTER_LZMA2&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x21)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>LZMA2 Filter ID. </p>
-<p>Usually you want this instead of LZMA1. Compared to LZMA1, LZMA2 adds support for LZMA_SYNC_FLUSH, uncompressed chunks (smaller expansion when trying to compress incompressible data), possibility to change lc/lp/pb in the middle of encoding, and some other internal improvements. </p>
-
-</div>
-</div>
-<a id="a73ed0293db4e59d73a702d66fef537c3" name="a73ed0293db4e59d73a702d66fef537c3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a73ed0293db4e59d73a702d66fef537c3">&#9670;&#160;</a></span>lzma_set_ext_size</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define lzma_set_ext_size</td>
- <td>(</td>
- <td class="paramtype">&#160;</td>
- <td class="paramname">opt_lzma2, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">&#160;</td>
- <td class="paramname">u64size&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> (opt_lzma2).ext_size_low = (uint32_t)(u64size); \</div>
-<div class="line"> (opt_lzma2).ext_size_high = (uint32_t)((uint64_t)(u64size) &gt;&gt; 32); \</div>
-<div class="line">} <span class="keywordflow">while</span> (0)</div>
-</div><!-- fragment -->
-<p>Macro to set the 64-bit uncompressed size in ext_size_*. </p>
-<p>This might be convenient when decoding using LZMA_FILTER_LZMA1EXT. This isn't used with LZMA_FILTER_LZMA1 or LZMA_FILTER_LZMA2. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a id="acf740075f86fa61dc408d6d0dbf8fa80" name="acf740075f86fa61dc408d6d0dbf8fa80"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acf740075f86fa61dc408d6d0dbf8fa80">&#9670;&#160;</a></span>lzma_match_finder</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma_match_finder</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Match finders. </p>
-<p>Match finder has major effect on both speed and compression ratio. Usually hash chains are faster than binary trees.</p>
-<p>If you will use LZMA_SYNC_FLUSH often, the hash chains may be a better choice, because binary trees get much higher compression ratio penalty with LZMA_SYNC_FLUSH.</p>
-<p>The memory usage formulas are only rough estimates, which are closest to reality when dict_size is a power of two. The formulas are more complex in reality, and can also change a little between liblzma versions. Use <a class="el" href="filter_8h.html#a730f9391e85a5979bcd1b32643ae7176" title="Calculate approximate memory requirements for raw encoder.">lzma_raw_encoder_memusage()</a> to get more accurate estimate of memory usage. </p>
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="acf740075f86fa61dc408d6d0dbf8fa80a6eb38f634021a192cada8a978b5de93b" name="acf740075f86fa61dc408d6d0dbf8fa80a6eb38f634021a192cada8a978b5de93b"></a>LZMA_MF_HC3&#160;</td><td class="fielddoc"><p>Hash Chain with 2- and 3-byte hashing. </p>
-<p>Minimum nice_len: 3</p>
-<p>Memory usage:</p><ul>
-<li>dict_size &lt;= 16 MiB: dict_size * 7.5</li>
-<li>dict_size &gt; 16 MiB: dict_size * 5.5 + 64 MiB </li>
-</ul>
-</td></tr>
-<tr><td class="fieldname"><a id="acf740075f86fa61dc408d6d0dbf8fa80a0944620f4949289c2ebde613cae12b04" name="acf740075f86fa61dc408d6d0dbf8fa80a0944620f4949289c2ebde613cae12b04"></a>LZMA_MF_HC4&#160;</td><td class="fielddoc"><p>Hash Chain with 2-, 3-, and 4-byte hashing. </p>
-<p>Minimum nice_len: 4</p>
-<p>Memory usage:</p><ul>
-<li>dict_size &lt;= 32 MiB: dict_size * 7.5</li>
-<li>dict_size &gt; 32 MiB: dict_size * 6.5 </li>
-</ul>
-</td></tr>
-<tr><td class="fieldname"><a id="acf740075f86fa61dc408d6d0dbf8fa80a7ab212446c3f6520f5c33ccfa4b3386a" name="acf740075f86fa61dc408d6d0dbf8fa80a7ab212446c3f6520f5c33ccfa4b3386a"></a>LZMA_MF_BT2&#160;</td><td class="fielddoc"><p>Binary Tree with 2-byte hashing. </p>
-<p>Minimum nice_len: 2</p>
-<p>Memory usage: dict_size * 9.5 </p>
-</td></tr>
-<tr><td class="fieldname"><a id="acf740075f86fa61dc408d6d0dbf8fa80a983ecc59bf3e07a7c43fea551ea11865" name="acf740075f86fa61dc408d6d0dbf8fa80a983ecc59bf3e07a7c43fea551ea11865"></a>LZMA_MF_BT3&#160;</td><td class="fielddoc"><p>Binary Tree with 2- and 3-byte hashing. </p>
-<p>Minimum nice_len: 3</p>
-<p>Memory usage:</p><ul>
-<li>dict_size &lt;= 16 MiB: dict_size * 11.5</li>
-<li>dict_size &gt; 16 MiB: dict_size * 9.5 + 64 MiB </li>
-</ul>
-</td></tr>
-<tr><td class="fieldname"><a id="acf740075f86fa61dc408d6d0dbf8fa80a468c32cdea9861d1ff98478364e6c547" name="acf740075f86fa61dc408d6d0dbf8fa80a468c32cdea9861d1ff98478364e6c547"></a>LZMA_MF_BT4&#160;</td><td class="fielddoc"><p>Binary Tree with 2-, 3-, and 4-byte hashing. </p>
-<p>Minimum nice_len: 4</p>
-<p>Memory usage:</p><ul>
-<li>dict_size &lt;= 32 MiB: dict_size * 11.5</li>
-<li>dict_size &gt; 32 MiB: dict_size * 10.5 </li>
-</ul>
-</td></tr>
-</table>
-
-</div>
-</div>
-<a id="a1032316e3075c2c8086fb17104b91866" name="a1032316e3075c2c8086fb17104b91866"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1032316e3075c2c8086fb17104b91866">&#9670;&#160;</a></span>lzma_mode</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma_mode</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compression modes. </p>
-<p>This selects the function used to analyze the data produced by the match finder. </p>
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a1032316e3075c2c8086fb17104b91866ac8c0926a91b4f756e11121efd30648cc" name="a1032316e3075c2c8086fb17104b91866ac8c0926a91b4f756e11121efd30648cc"></a>LZMA_MODE_FAST&#160;</td><td class="fielddoc"><p>Fast compression. </p>
-<p>Fast mode is usually at its best when combined with a hash chain match finder. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a1032316e3075c2c8086fb17104b91866ad37225f30d5cd21fc8bb3eaba283bbf9" name="a1032316e3075c2c8086fb17104b91866ad37225f30d5cd21fc8bb3eaba283bbf9"></a>LZMA_MODE_NORMAL&#160;</td><td class="fielddoc"><p>Normal compression. </p>
-<p>This is usually notably slower than fast mode. Use this together with binary tree match finders to expose the full potential of the LZMA1 or LZMA2 encoder. </p>
-</td></tr>
-</table>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="aefba1f7214ddcf8cd408a0702e8642b5" name="aefba1f7214ddcf8cd408a0702e8642b5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aefba1f7214ddcf8cd408a0702e8642b5">&#9670;&#160;</a></span>lzma_mf_is_supported()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_mf_is_supported </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma_match_finder</a>&#160;</td>
- <td class="paramname"><em>match_finder</em></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Test if given match finder is supported. </p>
-<p>It is safe to call this with a value that isn't listed in lzma_match_finder enumeration; the return value will be false.</p>
-<p>There is no way to list which match finders are available in this particular liblzma version and build. It would be useless, because a new match finder, which the application developer wasn't aware, could require giving additional options to the encoder that the older match finders don't need.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">match_finder</td><td>Match finder ID</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
-<li>true if the match finder is supported by this liblzma build.</li>
-<li>false otherwise. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="ad1add1c2600fdbb3d737e4fb3465dfcb" name="ad1add1c2600fdbb3d737e4fb3465dfcb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad1add1c2600fdbb3d737e4fb3465dfcb">&#9670;&#160;</a></span>lzma_mode_is_supported()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_mode_is_supported </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma_mode</a>&#160;</td>
- <td class="paramname"><em>mode</em></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Test if given compression mode is supported. </p>
-<p>It is safe to call this with a value that isn't listed in lzma_mode enumeration; the return value will be false.</p>
-<p>There is no way to list which modes are available in this particular liblzma version and build. It would be useless, because a new compression mode, which the application developer wasn't aware, could require giving additional options to the encoder that the older modes don't need.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">mode</td><td>Mode ID.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
-<li>true if the compression mode is supported by this liblzma build.</li>
-<li>false otherwise. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="aa62c28944fe3575653a4c25780400d77" name="aa62c28944fe3575653a4c25780400d77"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa62c28944fe3575653a4c25780400d77">&#9670;&#160;</a></span>lzma_lzma_preset()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_lzma_preset </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a> *&#160;</td>
- <td class="paramname"><em>options</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t&#160;</td>
- <td class="paramname"><em>preset</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Set a compression preset to <a class="el" href="structlzma__options__lzma.html" title="Options specific to the LZMA1 and LZMA2 filters.">lzma_options_lzma</a> structure. </p>
-<p>0 is the fastest and 9 is the slowest. These match the switches -0 .. -9 of the xz command line tool. In addition, it is possible to bitwise-or flags to the preset. Currently only LZMA_PRESET_EXTREME is supported. The flags are defined in <a class="el" href="container_8h.html" title="File formats.">container.h</a>, because the flags are used also with <a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4" title="Initialize .xz Stream encoder using a preset number.">lzma_easy_encoder()</a>.</p>
-<p>The preset levels are subject to changes between liblzma versions.</p>
-<p>This function is available only if LZMA1 or LZMA2 encoder has been enabled when building liblzma.</p>
-<p>If features (like certain match finders) have been disabled at build time, then the function may return success (false) even though the resulting LZMA1/LZMA2 options may not be usable for encoder initialization (LZMA_OPTIONS_ERROR).</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">options</td><td>Pointer to LZMA1 or LZMA2 options to be filled </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">preset</td><td>Preset level bitwse-ORed with preset flags</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
-<li>true if the preset is not supported (failure).</li>
-<li>false otherwise (success). </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/lzma_8h.html b/doc/api/lzma_8h.html
deleted file mode 100644
index ec417c6..0000000
--- a/doc/api/lzma_8h.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> </div>
- <div class="headertitle"><div class="title">lzma.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>The public API of liblzma data compression library.
-<a href="#details">More...</a></p>
-<div class="textblock"><code>#include &lt;stddef.h&gt;</code><br />
-<code>#include &lt;inttypes.h&gt;</code><br />
-<code>#include &lt;limits.h&gt;</code><br />
-<code>#include &quot;<a class="el" href="version_8h.html">lzma/version.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="base_8h.html">lzma/base.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="vli_8h.html">lzma/vli.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="check_8h.html">lzma/check.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="filter_8h.html">lzma/filter.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="bcj_8h.html">lzma/bcj.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="delta_8h.html">lzma/delta.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="lzma12_8h.html">lzma/lzma12.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="container_8h.html">lzma/container.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="stream__flags_8h.html">lzma/stream_flags.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="block_8h.html">lzma/block.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="index_8h.html">lzma/index.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="index__hash_8h.html">lzma/index_hash.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="hardware_8h.html">lzma/hardware.h</a>&quot;</code><br />
-</div><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:acecee981dc3f28418f54035e20d7e578"><td class="memItemLeft" align="right" valign="top"><a id="acecee981dc3f28418f54035e20d7e578" name="acecee981dc3f28418f54035e20d7e578"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>UINT32_C</b>(n)&#160;&#160;&#160;n ## U</td></tr>
-<tr class="separator:acecee981dc3f28418f54035e20d7e578"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac6548785b283106d4d7bfc7a4ef87fc4"><td class="memItemLeft" align="right" valign="top"><a id="ac6548785b283106d4d7bfc7a4ef87fc4" name="ac6548785b283106d4d7bfc7a4ef87fc4"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>UINT64_C</b>(n)&#160;&#160;&#160;n ## UL</td></tr>
-<tr class="separator:ac6548785b283106d4d7bfc7a4ef87fc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab5eb23180f7cc12b7d6c04a8ec067fdd"><td class="memItemLeft" align="right" valign="top"><a id="ab5eb23180f7cc12b7d6c04a8ec067fdd" name="ab5eb23180f7cc12b7d6c04a8ec067fdd"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>UINT32_MAX</b>&#160;&#160;&#160;(UINT32_C(4294967295))</td></tr>
-<tr class="separator:ab5eb23180f7cc12b7d6c04a8ec067fdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a30654b4b67d97c42ca3f9b6052dda916"><td class="memItemLeft" align="right" valign="top"><a id="a30654b4b67d97c42ca3f9b6052dda916" name="a30654b4b67d97c42ca3f9b6052dda916"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>UINT64_MAX</b>&#160;&#160;&#160;(UINT64_C(18446744073709551615))</td></tr>
-<tr class="separator:a30654b4b67d97c42ca3f9b6052dda916"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a55854429aba444dbb0bd8325fed4eece"><td class="memItemLeft" align="right" valign="top"><a id="a55854429aba444dbb0bd8325fed4eece" name="a55854429aba444dbb0bd8325fed4eece"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>lzma_nothrow</b></td></tr>
-<tr class="separator:a55854429aba444dbb0bd8325fed4eece"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adbc570ea8654f0c96699e38249ac8032"><td class="memItemLeft" align="right" valign="top"><a id="adbc570ea8654f0c96699e38249ac8032" name="adbc570ea8654f0c96699e38249ac8032"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>lzma_attr_pure</b>&#160;&#160;&#160;lzma_attribute((__pure__))</td></tr>
-<tr class="separator:adbc570ea8654f0c96699e38249ac8032"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0aaafb664f89a525ff22530d61704556"><td class="memItemLeft" align="right" valign="top"><a id="a0aaafb664f89a525ff22530d61704556" name="a0aaafb664f89a525ff22530d61704556"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>lzma_attr_const</b>&#160;&#160;&#160;lzma_attribute((__const__))</td></tr>
-<tr class="separator:a0aaafb664f89a525ff22530d61704556"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af15e147fcd7986ec4dd82660aec2b695"><td class="memItemLeft" align="right" valign="top"><a id="af15e147fcd7986ec4dd82660aec2b695" name="af15e147fcd7986ec4dd82660aec2b695"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>lzma_attr_warn_unused_result</b>&#160;&#160;&#160; lzma_attribute((__warn_unused_result__))</td></tr>
-<tr class="separator:af15e147fcd7986ec4dd82660aec2b695"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af828f75941ade54f8379bb847da37349"><td class="memItemLeft" align="right" valign="top"><a id="af828f75941ade54f8379bb847da37349" name="af828f75941ade54f8379bb847da37349"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_H_INTERNAL</b>&#160;&#160;&#160;1</td></tr>
-<tr class="separator:af828f75941ade54f8379bb847da37349"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>The public API of liblzma data compression library. </p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/nav_f.png b/doc/api/nav_f.png
deleted file mode 100644
index 113913e..0000000
--- a/doc/api/nav_f.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/nav_fd.png b/doc/api/nav_fd.png
deleted file mode 100644
index 978df01..0000000
--- a/doc/api/nav_fd.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/nav_g.png b/doc/api/nav_g.png
deleted file mode 100644
index 2093a23..0000000
--- a/doc/api/nav_g.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/nav_h.png b/doc/api/nav_h.png
deleted file mode 100644
index 4e34efd..0000000
--- a/doc/api/nav_h.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/nav_hd.png b/doc/api/nav_hd.png
deleted file mode 100644
index b717d93..0000000
--- a/doc/api/nav_hd.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/open.png b/doc/api/open.png
deleted file mode 100644
index b4e49d8..0000000
--- a/doc/api/open.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/splitbar.png b/doc/api/splitbar.png
deleted file mode 100644
index ee781cf..0000000
--- a/doc/api/splitbar.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/splitbard.png b/doc/api/splitbard.png
deleted file mode 100644
index aa4d029..0000000
--- a/doc/api/splitbard.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/stream__flags_8h.html b/doc/api/stream__flags_8h.html
deleted file mode 100644
index 5cc0df9..0000000
--- a/doc/api/stream__flags_8h.html
+++ /dev/null
@@ -1,348 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/stream_flags.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> &#124;
-<a href="#define-members">Macros</a> &#124;
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle"><div class="title">stream_flags.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>.xz Stream Header and Stream Footer encoder and decoder
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options for encoding/decoding Stream Header and Stream Footer. <a href="structlzma__stream__flags.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:ada7e0a4f5e7146f547962cb9e9ef08ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html#ada7e0a4f5e7146f547962cb9e9ef08ee">LZMA_STREAM_HEADER_SIZE</a>&#160;&#160;&#160;12</td></tr>
-<tr class="memdesc:ada7e0a4f5e7146f547962cb9e9ef08ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of Stream Header and Stream Footer. <br /></td></tr>
-<tr class="separator:ada7e0a4f5e7146f547962cb9e9ef08ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae8da8190f1396f66332073946bc45634"><td class="memItemLeft" align="right" valign="top"><a id="ae8da8190f1396f66332073946bc45634" name="ae8da8190f1396f66332073946bc45634"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_BACKWARD_SIZE_MIN</b>&#160;&#160;&#160;4</td></tr>
-<tr class="memdesc:ae8da8190f1396f66332073946bc45634"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum value for <a class="el" href="structlzma__stream__flags.html#aaa65ed7a55a098f829f04dba25d0f212" title="Backward Size.">lzma_stream_flags.backward_size</a>. <br /></td></tr>
-<tr class="separator:ae8da8190f1396f66332073946bc45634"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2e5e09010880f8caa6cd6539c7341239"><td class="memItemLeft" align="right" valign="top"><a id="a2e5e09010880f8caa6cd6539c7341239" name="a2e5e09010880f8caa6cd6539c7341239"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_BACKWARD_SIZE_MAX</b>&#160;&#160;&#160;(<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(1) &lt;&lt; 34)</td></tr>
-<tr class="memdesc:a2e5e09010880f8caa6cd6539c7341239"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum value for <a class="el" href="structlzma__stream__flags.html#aaa65ed7a55a098f829f04dba25d0f212" title="Backward Size.">lzma_stream_flags.backward_size</a>. <br /></td></tr>
-<tr class="separator:a2e5e09010880f8caa6cd6539c7341239"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a2ebb8d6dff23daeb3de398913b845eff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html#a2ebb8d6dff23daeb3de398913b845eff">lzma_stream_header_encode</a> (const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *options, uint8_t *out) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a2ebb8d6dff23daeb3de398913b845eff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode Stream Header. <br /></td></tr>
-<tr class="separator:a2ebb8d6dff23daeb3de398913b845eff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a438249a75ea8da952a7474b92bfe7b7a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html#a438249a75ea8da952a7474b92bfe7b7a">lzma_stream_footer_encode</a> (const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *options, uint8_t *out) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:a438249a75ea8da952a7474b92bfe7b7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode Stream Footer. <br /></td></tr>
-<tr class="separator:a438249a75ea8da952a7474b92bfe7b7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae03198e464f0d296e601ff841e100805"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html#ae03198e464f0d296e601ff841e100805">lzma_stream_header_decode</a> (<a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *options, const uint8_t *in) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:ae03198e464f0d296e601ff841e100805"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode Stream Header. <br /></td></tr>
-<tr class="separator:ae03198e464f0d296e601ff841e100805"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa92a383f85753bb79ee23227fa68186c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html#aa92a383f85753bb79ee23227fa68186c">lzma_stream_footer_decode</a> (<a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *options, const uint8_t *in) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
-<tr class="memdesc:aa92a383f85753bb79ee23227fa68186c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode Stream Footer. <br /></td></tr>
-<tr class="separator:aa92a383f85753bb79ee23227fa68186c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3e25ca4205021302882a696283d45263"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html#a3e25ca4205021302882a696283d45263">lzma_stream_flags_compare</a> (const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *a, const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *b) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a3e25ca4205021302882a696283d45263"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare two <a class="el" href="structlzma__stream__flags.html" title="Options for encoding/decoding Stream Header and Stream Footer.">lzma_stream_flags</a> structures. <br /></td></tr>
-<tr class="separator:a3e25ca4205021302882a696283d45263"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>.xz Stream Header and Stream Footer encoder and decoder </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ada7e0a4f5e7146f547962cb9e9ef08ee" name="ada7e0a4f5e7146f547962cb9e9ef08ee"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ada7e0a4f5e7146f547962cb9e9ef08ee">&#9670;&#160;</a></span>LZMA_STREAM_HEADER_SIZE</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_STREAM_HEADER_SIZE&#160;&#160;&#160;12</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Size of Stream Header and Stream Footer. </p>
-<p>Stream Header and Stream Footer have the same size and they are not going to change even if a newer version of the .xz file format is developed in future. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="a2ebb8d6dff23daeb3de398913b845eff" name="a2ebb8d6dff23daeb3de398913b845eff"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2ebb8d6dff23daeb3de398913b845eff">&#9670;&#160;</a></span>lzma_stream_header_encode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_header_encode </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
- <td class="paramname"><em>options</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Encode Stream Header. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">options</td><td>Stream Header options to be encoded. options-&gt;backward_size is ignored and doesn't need to be initialized. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer of LZMA_STREAM_HEADER_SIZE bytes.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Encoding was successful.</li>
-<li>LZMA_OPTIONS_ERROR: options-&gt;version is not supported by this liblzma version.</li>
-<li>LZMA_PROG_ERROR: Invalid options. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a438249a75ea8da952a7474b92bfe7b7a" name="a438249a75ea8da952a7474b92bfe7b7a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a438249a75ea8da952a7474b92bfe7b7a">&#9670;&#160;</a></span>lzma_stream_footer_encode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_footer_encode </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
- <td class="paramname"><em>options</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Encode Stream Footer. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">options</td><td>Stream Footer options to be encoded. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer of LZMA_STREAM_HEADER_SIZE bytes.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Encoding was successful.</li>
-<li>LZMA_OPTIONS_ERROR: options-&gt;version is not supported by this liblzma version.</li>
-<li>LZMA_PROG_ERROR: Invalid options. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="ae03198e464f0d296e601ff841e100805" name="ae03198e464f0d296e601ff841e100805"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae03198e464f0d296e601ff841e100805">&#9670;&#160;</a></span>lzma_stream_header_decode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_header_decode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
- <td class="paramname"><em>options</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Decode Stream Header. </p>
-<p>options-&gt;backward_size is always set to LZMA_VLI_UNKNOWN. This is to help comparing Stream Flags from Stream Header and Stream Footer with <a class="el" href="stream__flags_8h.html#a3e25ca4205021302882a696283d45263" title="Compare two lzma_stream_flags structures.">lzma_stream_flags_compare()</a>.</p>
-<dl class="section note"><dt>Note</dt><dd>When decoding .xz files that contain multiple Streams, it may make sense to print "file format not recognized" only if decoding of the Stream Header of the <em>first</em> Stream gives LZMA_FORMAT_ERROR. If non-first Stream Header gives LZMA_FORMAT_ERROR, the message used for LZMA_DATA_ERROR is probably more appropriate. For example, the Stream decoder in liblzma uses LZMA_DATA_ERROR if LZMA_FORMAT_ERROR is returned by <a class="el" href="stream__flags_8h.html#ae03198e464f0d296e601ff841e100805" title="Decode Stream Header.">lzma_stream_header_decode()</a> when decoding non-first Stream.</dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">options</td><td>Target for the decoded Stream Header options. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer of LZMA_STREAM_HEADER_SIZE bytes.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Decoding was successful.</li>
-<li>LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given buffer cannot be Stream Header.</li>
-<li>LZMA_DATA_ERROR: CRC32 doesn't match, thus the header is corrupt.</li>
-<li>LZMA_OPTIONS_ERROR: Unsupported options are present in the header. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="aa92a383f85753bb79ee23227fa68186c" name="aa92a383f85753bb79ee23227fa68186c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa92a383f85753bb79ee23227fa68186c">&#9670;&#160;</a></span>lzma_stream_footer_decode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_footer_decode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
- <td class="paramname"><em>options</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Decode Stream Footer. </p>
-<dl class="section note"><dt>Note</dt><dd>If Stream Header was already decoded successfully, but decoding Stream Footer returns LZMA_FORMAT_ERROR, the application should probably report some other error message than "file format not recognized". The file likely is corrupt (possibly truncated). The Stream decoder in liblzma uses LZMA_DATA_ERROR in this situation.</dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">options</td><td>Target for the decoded Stream Footer options. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer of LZMA_STREAM_HEADER_SIZE bytes.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Decoding was successful.</li>
-<li>LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given buffer cannot be Stream Footer.</li>
-<li>LZMA_DATA_ERROR: CRC32 doesn't match, thus the Stream Footer is corrupt.</li>
-<li>LZMA_OPTIONS_ERROR: Unsupported options are present in Stream Footer. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a3e25ca4205021302882a696283d45263" name="a3e25ca4205021302882a696283d45263"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3e25ca4205021302882a696283d45263">&#9670;&#160;</a></span>lzma_stream_flags_compare()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_flags_compare </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
- <td class="paramname"><em>b</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compare two <a class="el" href="structlzma__stream__flags.html" title="Options for encoding/decoding Stream Header and Stream Footer.">lzma_stream_flags</a> structures. </p>
-<p>backward_size values are compared only if both are not LZMA_VLI_UNKNOWN.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">a</td><td>Pointer to <a class="el" href="structlzma__stream__flags.html" title="Options for encoding/decoding Stream Header and Stream Footer.">lzma_stream_flags</a> structure </td></tr>
- <tr><td class="paramname">b</td><td>Pointer to <a class="el" href="structlzma__stream__flags.html" title="Options for encoding/decoding Stream Header and Stream Footer.">lzma_stream_flags</a> structure</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
-<li>LZMA_OK: Both are equal. If either had backward_size set to LZMA_VLI_UNKNOWN, backward_size values were not compared or validated.</li>
-<li>LZMA_DATA_ERROR: The structures differ.</li>
-<li>LZMA_OPTIONS_ERROR: version in either structure is greater than the maximum supported version (currently zero).</li>
-<li>LZMA_PROG_ERROR: Invalid value, e.g. invalid check or backward_size. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/structlzma__allocator.html b/doc/api/structlzma__allocator.html
deleted file mode 100644
index 593647b..0000000
--- a/doc/api/structlzma__allocator.html
+++ /dev/null
@@ -1,153 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma_allocator Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle"><div class="title">lzma_allocator Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Custom functions for memory handling.
- <a href="structlzma__allocator.html#details">More...</a></p>
-
-<p><code>#include &lt;base.h&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:aba5c4369af94cc9943423b49171462ec"><td class="memItemLeft" align="right" valign="top">void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec">alloc</a> )(void *<a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">opaque</a>, size_t nmemb, size_t size)</td></tr>
-<tr class="memdesc:aba5c4369af94cc9943423b49171462ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to a custom memory allocation function. <br /></td></tr>
-<tr class="separator:aba5c4369af94cc9943423b49171462ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3726deffd08393934263c04660208009"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009">free</a> )(void *<a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">opaque</a>, void *ptr)</td></tr>
-<tr class="memdesc:a3726deffd08393934263c04660208009"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to a custom memory freeing function. <br /></td></tr>
-<tr class="separator:a3726deffd08393934263c04660208009"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aab293a5007a93299cc97ee8b5fb81268"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">opaque</a></td></tr>
-<tr class="memdesc:aab293a5007a93299cc97ee8b5fb81268"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer passed to .<a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec" title="Pointer to a custom memory allocation function.">alloc()</a> and .<a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009" title="Pointer to a custom memory freeing function.">free()</a> <br /></td></tr>
-<tr class="separator:aab293a5007a93299cc97ee8b5fb81268"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Custom functions for memory handling. </p>
-<p>A pointer to <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> may be passed via <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure to liblzma, and some advanced functions take a pointer to <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> as a separate function argument. The library will use the functions specified in <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for memory handling instead of the default malloc() and <a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009" title="Pointer to a custom memory freeing function.">free()</a>. C++ users should note that the custom memory handling functions must not throw exceptions.</p>
-<p>Single-threaded mode only: liblzma doesn't make an internal copy of <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a>. Thus, it is OK to change these function pointers in the middle of the coding process, but obviously it must be done carefully to make sure that the replacement `free' can deallocate memory allocated by the earlier `alloc' function(s).</p>
-<p>Multithreaded mode: liblzma might internally store pointers to the <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> given via the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure. The application must not change the allocator pointer in <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> or the contents of the pointed <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> structure until <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a> has been used to free the memory associated with that <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>. The allocation functions might be called simultaneously from multiple threads, and thus they must be thread safe. </p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a id="aba5c4369af94cc9943423b49171462ec" name="aba5c4369af94cc9943423b49171462ec"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aba5c4369af94cc9943423b49171462ec">&#9670;&#160;</a></span>alloc</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void *(* lzma_allocator::alloc) (void *<a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">opaque</a>, size_t nmemb, size_t size)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Pointer to a custom memory allocation function. </p>
-<p>If you don't want a custom allocator, but still want custom <a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009" title="Pointer to a custom memory freeing function.">free()</a>, set this to NULL and liblzma will use the standard malloc().</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">opaque</td><td><a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268" title="Pointer passed to .alloc() and .free()">lzma_allocator.opaque</a> (see below) </td></tr>
- <tr><td class="paramname">nmemb</td><td>Number of elements like in calloc(). liblzma will always set nmemb to 1, so it is safe to ignore nmemb in a custom allocator if you like. The nmemb argument exists only for compatibility with zlib and libbzip2. </td></tr>
- <tr><td class="paramname">size</td><td>Size of an element in bytes. liblzma never sets this to zero.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Pointer to the beginning of a memory block of `size' bytes, or NULL if allocation fails for some reason. When allocation fails, functions of liblzma return LZMA_MEM_ERROR.</dd></dl>
-<p>The allocator should not waste time zeroing the allocated buffers. This is not only about speed, but also memory usage, since the operating system kernel doesn't necessarily allocate the requested memory in physical memory until it is actually used. With small input files, liblzma may actually need only a fraction of the memory that it requested for allocation.</p>
-<dl class="section note"><dt>Note</dt><dd>LZMA_MEM_ERROR is also used when the size of the allocation would be greater than SIZE_MAX. Thus, don't assume that the custom allocator must have returned NULL if some function from liblzma returns LZMA_MEM_ERROR. </dd></dl>
-
-</div>
-</div>
-<a id="a3726deffd08393934263c04660208009" name="a3726deffd08393934263c04660208009"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3726deffd08393934263c04660208009">&#9670;&#160;</a></span>free</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void(* lzma_allocator::free) (void *<a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">opaque</a>, void *ptr)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Pointer to a custom memory freeing function. </p>
-<p>If you don't want a custom freeing function, but still want a custom allocator, set this to NULL and liblzma will use the standard <a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009" title="Pointer to a custom memory freeing function.">free()</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">opaque</td><td><a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268" title="Pointer passed to .alloc() and .free()">lzma_allocator.opaque</a> (see below) </td></tr>
- <tr><td class="paramname">ptr</td><td>Pointer returned by <a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec" title="Pointer to a custom memory allocation function.">lzma_allocator.alloc()</a>, or when it is set to NULL, a pointer returned by the standard malloc(). </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a id="aab293a5007a93299cc97ee8b5fb81268" name="aab293a5007a93299cc97ee8b5fb81268"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aab293a5007a93299cc97ee8b5fb81268">&#9670;&#160;</a></span>opaque</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void* lzma_allocator::opaque</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Pointer passed to .<a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec" title="Pointer to a custom memory allocation function.">alloc()</a> and .<a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009" title="Pointer to a custom memory freeing function.">free()</a> </p>
-<p>opaque is passed as the first argument to <a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec" title="Pointer to a custom memory allocation function.">lzma_allocator.alloc()</a> and <a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009" title="Pointer to a custom memory freeing function.">lzma_allocator.free()</a>. This intended to ease implementing custom memory allocation functions for use with liblzma.</p>
-<p>If you don't need this, you should set this to NULL. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>lzma/<a class="el" href="base_8h.html">base.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/structlzma__block.html b/doc/api/structlzma__block.html
deleted file mode 100644
index 69aa245..0000000
--- a/doc/api/structlzma__block.html
+++ /dev/null
@@ -1,347 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma_block Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle"><div class="title">lzma_block Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Options for the Block and Block Header encoders and decoders.
- <a href="structlzma__block.html#details">More...</a></p>
-
-<p><code>#include &lt;block.h&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:ac3936a5b0ec3f9b8f9c7ad68e7d149a5"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#ac3936a5b0ec3f9b8f9c7ad68e7d149a5">version</a></td></tr>
-<tr class="memdesc:ac3936a5b0ec3f9b8f9c7ad68e7d149a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Block format version. <br /></td></tr>
-<tr class="separator:ac3936a5b0ec3f9b8f9c7ad68e7d149a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6689c4f7524b2c05772a2d6151138610"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a6689c4f7524b2c05772a2d6151138610">header_size</a></td></tr>
-<tr class="memdesc:a6689c4f7524b2c05772a2d6151138610"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the Block Header field in bytes. <br /></td></tr>
-<tr class="separator:a6689c4f7524b2c05772a2d6151138610"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80cd9d3025991db4a476ce7588f853e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a80cd9d3025991db4a476ce7588f853e6">check</a></td></tr>
-<tr class="memdesc:a80cd9d3025991db4a476ce7588f853e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of integrity Check. <br /></td></tr>
-<tr class="separator:a80cd9d3025991db4a476ce7588f853e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8383d489c9ffea8af390669a105c74e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a8383d489c9ffea8af390669a105c74e5">compressed_size</a></td></tr>
-<tr class="memdesc:a8383d489c9ffea8af390669a105c74e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the Compressed Data in bytes. <br /></td></tr>
-<tr class="separator:a8383d489c9ffea8af390669a105c74e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a17362d38d1946dd16a9686557ec19a94"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a17362d38d1946dd16a9686557ec19a94">uncompressed_size</a></td></tr>
-<tr class="memdesc:a17362d38d1946dd16a9686557ec19a94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed Size in bytes. <br /></td></tr>
-<tr class="separator:a17362d38d1946dd16a9686557ec19a94"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5900e517e6e0a473a3184074ae7defd1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a5900e517e6e0a473a3184074ae7defd1">filters</a></td></tr>
-<tr class="memdesc:a5900e517e6e0a473a3184074ae7defd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of filters. <br /></td></tr>
-<tr class="separator:a5900e517e6e0a473a3184074ae7defd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a25e9bf1bb1699017694b18ca24f965d2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a25e9bf1bb1699017694b18ca24f965d2">raw_check</a> [<a class="el" href="check_8h.html#a379e931cf86351ab1d97896cda9abbe0">LZMA_CHECK_SIZE_MAX</a>]</td></tr>
-<tr class="memdesc:a25e9bf1bb1699017694b18ca24f965d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raw value stored in the Check field. <br /></td></tr>
-<tr class="separator:a25e9bf1bb1699017694b18ca24f965d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a516ac9cc63bc1a4fadd9fbfc189a206b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a516ac9cc63bc1a4fadd9fbfc189a206b">ignore_check</a></td></tr>
-<tr class="memdesc:a516ac9cc63bc1a4fadd9fbfc189a206b"><td class="mdescLeft">&#160;</td><td class="mdescRight">A flag to Block decoder to not verify the Check field. <br /></td></tr>
-<tr class="separator:a516ac9cc63bc1a4fadd9fbfc189a206b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Options for the Block and Block Header encoders and decoders. </p>
-<p>Different Block handling functions use different parts of this structure. Some read some members, other functions write, and some do both. Only the members listed for reading need to be initialized when the specified functions are called. The members marked for writing will be assigned new values at some point either by calling the given function or by later calls to <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>. </p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a id="ac3936a5b0ec3f9b8f9c7ad68e7d149a5" name="ac3936a5b0ec3f9b8f9c7ad68e7d149a5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac3936a5b0ec3f9b8f9c7ad68e7d149a5">&#9670;&#160;</a></span>version</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_block::version</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Block format version. </p>
-<p>To prevent API and ABI breakages when new features are needed, a version number is used to indicate which members in this structure are in use:</p><ul>
-<li>liblzma &gt;= 5.0.0: version = 0 is supported.</li>
-<li>liblzma &gt;= 5.1.4beta: Support for version = 1 was added, which adds the ignore_check member.</li>
-</ul>
-<p>If version is greater than one, most Block related functions will return LZMA_OPTIONS_ERROR (<a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a> works with any version value).</p>
-<p>Read by:</p><ul>
-<li><a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a></li>
-<li><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a></li>
-<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a></li>
-<li><a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc" title="Validate and set Compressed Size according to Unpadded Size.">lzma_block_compressed_size()</a></li>
-<li><a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a></li>
-<li><a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9" title="Calculate the total encoded size of a Block.">lzma_block_total_size()</a></li>
-<li><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a></li>
-<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
-<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
-<li><a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c" title="Single-call uncompressed .xz Block encoder.">lzma_block_uncomp_encode()</a></li>
-<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a></li>
-</ul>
-<p>Written by:</p><ul>
-<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a> </li>
-</ul>
-
-</div>
-</div>
-<a id="a6689c4f7524b2c05772a2d6151138610" name="a6689c4f7524b2c05772a2d6151138610"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6689c4f7524b2c05772a2d6151138610">&#9670;&#160;</a></span>header_size</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_block::header_size</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Size of the Block Header field in bytes. </p>
-<p>This is always a multiple of four.</p>
-<p>Read by:</p><ul>
-<li><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a></li>
-<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a></li>
-<li><a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc" title="Validate and set Compressed Size according to Unpadded Size.">lzma_block_compressed_size()</a></li>
-<li><a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a></li>
-<li><a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9" title="Calculate the total encoded size of a Block.">lzma_block_total_size()</a></li>
-<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
-<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a></li>
-</ul>
-<p>Written by:</p><ul>
-<li><a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a></li>
-<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
-<li><a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c" title="Single-call uncompressed .xz Block encoder.">lzma_block_uncomp_encode()</a> </li>
-</ul>
-
-</div>
-</div>
-<a id="a80cd9d3025991db4a476ce7588f853e6" name="a80cd9d3025991db4a476ce7588f853e6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a80cd9d3025991db4a476ce7588f853e6">&#9670;&#160;</a></span>check</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> lzma_block::check</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Type of integrity Check. </p>
-<p>The Check ID is not stored into the Block Header, thus its value must be provided also when decoding.</p>
-<p>Read by:</p><ul>
-<li><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a></li>
-<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a></li>
-<li><a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc" title="Validate and set Compressed Size according to Unpadded Size.">lzma_block_compressed_size()</a></li>
-<li><a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a></li>
-<li><a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9" title="Calculate the total encoded size of a Block.">lzma_block_total_size()</a></li>
-<li><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a></li>
-<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
-<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
-<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a> </li>
-</ul>
-
-</div>
-</div>
-<a id="a8383d489c9ffea8af390669a105c74e5" name="a8383d489c9ffea8af390669a105c74e5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8383d489c9ffea8af390669a105c74e5">&#9670;&#160;</a></span>compressed_size</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_block::compressed_size</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Size of the Compressed Data in bytes. </p>
-<p>Encoding: If this is not LZMA_VLI_UNKNOWN, Block Header encoder will store this value to the Block Header. Block encoder doesn't care about this value, but will set it once the encoding has been finished.</p>
-<p>Decoding: If this is not LZMA_VLI_UNKNOWN, Block decoder will verify that the size of the Compressed Data field matches compressed_size.</p>
-<p>Usually you don't know this value when encoding in streamed mode, and thus cannot write this field into the Block Header.</p>
-<p>In non-streamed mode you can reserve space for this field before encoding the actual Block. After encoding the data, finish the Block by encoding the Block Header. Steps in detail:</p>
-<ul>
-<li>Set compressed_size to some big enough value. If you don't know better, use LZMA_VLI_MAX, but remember that bigger values take more space in Block Header.</li>
-<li>Call <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a> to see how much space you need to reserve for the Block Header.</li>
-<li>Encode the Block using <a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a> and <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>. It sets compressed_size to the correct value.</li>
-<li>Use <a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a> to encode the Block Header. Because space was reserved in the first step, you don't need to call <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a> anymore, because due to reserving, header_size has to be big enough. If it is "too big", <a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a> will add enough Header Padding to make Block Header to match the size specified by header_size.</li>
-</ul>
-<p>Read by:</p><ul>
-<li><a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a></li>
-<li><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a></li>
-<li><a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc" title="Validate and set Compressed Size according to Unpadded Size.">lzma_block_compressed_size()</a></li>
-<li><a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a></li>
-<li><a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9" title="Calculate the total encoded size of a Block.">lzma_block_total_size()</a></li>
-<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
-<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a></li>
-</ul>
-<p>Written by:</p><ul>
-<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a></li>
-<li><a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc" title="Validate and set Compressed Size according to Unpadded Size.">lzma_block_compressed_size()</a></li>
-<li><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a></li>
-<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
-<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
-<li><a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c" title="Single-call uncompressed .xz Block encoder.">lzma_block_uncomp_encode()</a></li>
-<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a> </li>
-</ul>
-
-</div>
-</div>
-<a id="a17362d38d1946dd16a9686557ec19a94" name="a17362d38d1946dd16a9686557ec19a94"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a17362d38d1946dd16a9686557ec19a94">&#9670;&#160;</a></span>uncompressed_size</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_block::uncompressed_size</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Uncompressed Size in bytes. </p>
-<p>This is handled very similarly to compressed_size above.</p>
-<p>uncompressed_size is needed by fewer functions than compressed_size. This is because uncompressed_size isn't needed to validate that Block stays within proper limits.</p>
-<p>Read by:</p><ul>
-<li><a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a></li>
-<li><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a></li>
-<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
-<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a></li>
-</ul>
-<p>Written by:</p><ul>
-<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a></li>
-<li><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a></li>
-<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
-<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
-<li><a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c" title="Single-call uncompressed .xz Block encoder.">lzma_block_uncomp_encode()</a></li>
-<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a> </li>
-</ul>
-
-</div>
-</div>
-<a id="a5900e517e6e0a473a3184074ae7defd1" name="a5900e517e6e0a473a3184074ae7defd1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5900e517e6e0a473a3184074ae7defd1">&#9670;&#160;</a></span>filters</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structlzma__filter.html">lzma_filter</a>* lzma_block::filters</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Array of filters. </p>
-<p>There can be 1-4 filters. The end of the array is marked with .id = LZMA_VLI_UNKNOWN.</p>
-<p>Read by:</p><ul>
-<li><a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a></li>
-<li><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a></li>
-<li><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a></li>
-<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
-<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
-<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a></li>
-</ul>
-<p>Written by:</p><ul>
-<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a>: Note that this does NOT free() the old filter options structures. All unused filters[] will have .id == LZMA_VLI_UNKNOWN and .options == NULL. If decoding fails, all filters[] are guaranteed to be LZMA_VLI_UNKNOWN and NULL.</li>
-</ul>
-<dl class="section note"><dt>Note</dt><dd>Because of the array is terminated with .id = LZMA_VLI_UNKNOWN, the actual array must have LZMA_FILTERS_MAX + 1 members or the Block Header decoder will overflow the buffer. </dd></dl>
-
-</div>
-</div>
-<a id="a25e9bf1bb1699017694b18ca24f965d2" name="a25e9bf1bb1699017694b18ca24f965d2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a25e9bf1bb1699017694b18ca24f965d2">&#9670;&#160;</a></span>raw_check</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint8_t lzma_block::raw_check[<a class="el" href="check_8h.html#a379e931cf86351ab1d97896cda9abbe0">LZMA_CHECK_SIZE_MAX</a>]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Raw value stored in the Check field. </p>
-<p>After successful coding, the first lzma_check_size(check) bytes of this array contain the raw value stored in the Check field.</p>
-<p>Note that CRC32 and CRC64 are stored in little endian byte order. Take it into account if you display the Check values to the user.</p>
-<p>Written by:</p><ul>
-<li><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a></li>
-<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
-<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
-<li><a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c" title="Single-call uncompressed .xz Block encoder.">lzma_block_uncomp_encode()</a></li>
-<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a> </li>
-</ul>
-
-</div>
-</div>
-<a id="a516ac9cc63bc1a4fadd9fbfc189a206b" name="a516ac9cc63bc1a4fadd9fbfc189a206b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a516ac9cc63bc1a4fadd9fbfc189a206b">&#9670;&#160;</a></span>ignore_check</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_block::ignore_check</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>A flag to Block decoder to not verify the Check field. </p>
-<p>This member is supported by liblzma &gt;= 5.1.4beta if .version &gt;= 1.</p>
-<p>If this is set to true, the integrity check won't be calculated and verified. Unless you know what you are doing, you should leave this to false. (A reason to set this to true is when the file integrity is verified externally anyway and you want to speed up the decompression, which matters mostly when using SHA-256 as the integrity check.)</p>
-<p>If .version &gt;= 1, read by:</p><ul>
-<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
-<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a></li>
-</ul>
-<p>Written by (.version is ignored):</p><ul>
-<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a> always sets this to false </li>
-</ul>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>lzma/<a class="el" href="block_8h.html">block.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/structlzma__filter.html b/doc/api/structlzma__filter.html
deleted file mode 100644
index b78081c..0000000
--- a/doc/api/structlzma__filter.html
+++ /dev/null
@@ -1,114 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma_filter Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle"><div class="title">lzma_filter Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Filter options.
- <a href="structlzma__filter.html#details">More...</a></p>
-
-<p><code>#include &lt;filter.h&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:aef1d9709759f39e61db77547b2326929"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__filter.html#aef1d9709759f39e61db77547b2326929">id</a></td></tr>
-<tr class="memdesc:aef1d9709759f39e61db77547b2326929"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter ID. <br /></td></tr>
-<tr class="separator:aef1d9709759f39e61db77547b2326929"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a10dfbaa1601793657d12320bef933ee6"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__filter.html#a10dfbaa1601793657d12320bef933ee6">options</a></td></tr>
-<tr class="memdesc:a10dfbaa1601793657d12320bef933ee6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to filter-specific options structure. <br /></td></tr>
-<tr class="separator:a10dfbaa1601793657d12320bef933ee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Filter options. </p>
-<p>This structure is used to pass a Filter ID and a pointer to the filter's options to liblzma. A few functions work with a single <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> structure, while most functions expect a filter chain.</p>
-<p>A filter chain is indicated with an array of <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> structures. The array is terminated with .id = LZMA_VLI_UNKNOWN. Thus, the filter array must have LZMA_FILTERS_MAX + 1 elements (that is, five) to be able to hold any arbitrary filter chain. This is important when using <a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a> from <a class="el" href="block_8h.html" title=".xz Block handling">block.h</a>, because a filter array that is too small would make liblzma write past the end of the array. </p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a id="aef1d9709759f39e61db77547b2326929" name="aef1d9709759f39e61db77547b2326929"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aef1d9709759f39e61db77547b2326929">&#9670;&#160;</a></span>id</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_filter::id</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Filter ID. </p>
-<p>Use constants whose name begin with `LZMA_FILTER_' to specify different filters. In an array of <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> structures, use LZMA_VLI_UNKNOWN to indicate end of filters.</p>
-<dl class="section note"><dt>Note</dt><dd>This is not an enum, because on some systems enums cannot be 64-bit. </dd></dl>
-
-</div>
-</div>
-<a id="a10dfbaa1601793657d12320bef933ee6" name="a10dfbaa1601793657d12320bef933ee6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a10dfbaa1601793657d12320bef933ee6">&#9670;&#160;</a></span>options</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void* lzma_filter::options</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Pointer to filter-specific options structure. </p>
-<p>If the filter doesn't need options, set this to NULL. If id is set to LZMA_VLI_UNKNOWN, options is ignored, and thus doesn't need be initialized. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>lzma/<a class="el" href="filter_8h.html">filter.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/structlzma__index__iter.html b/doc/api/structlzma__index__iter.html
deleted file mode 100644
index d75595a..0000000
--- a/doc/api/structlzma__index__iter.html
+++ /dev/null
@@ -1,407 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma_index_iter Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle"><div class="title">lzma_index_iter Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Iterator to get information about Blocks and Streams.
- <a href="structlzma__index__iter.html#details">More...</a></p>
-
-<p><code>#include &lt;index.h&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:ad92e1ccf25428b1a207dc1bdb4a45b2c"><td class="memItemLeft" ><a id="ad92e1ccf25428b1a207dc1bdb4a45b2c" name="ad92e1ccf25428b1a207dc1bdb4a45b2c"></a>
-struct {&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a49a96c22ae9b653df6263a7fe271807a"><td class="memItemLeft" >&#160;&#160;&#160;const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a223a046bcf09077a6e720967682deeae">flags</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:a49a96c22ae9b653df6263a7fe271807a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to Stream Flags. <a href="structlzma__index__iter.html#a223a046bcf09077a6e720967682deeae">More...</a><br /></td></tr>
-<tr class="separator:a49a96c22ae9b653df6263a7fe271807a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae8d181cfac5188dd4a678d4115fbbcb2"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a115a307dbc778a9de296376dc39c7b23">number</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:ae8d181cfac5188dd4a678d4115fbbcb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stream number in the lzma_index. <a href="structlzma__index__iter.html#a115a307dbc778a9de296376dc39c7b23">More...</a><br /></td></tr>
-<tr class="separator:ae8d181cfac5188dd4a678d4115fbbcb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aeff742c77bbdb23c7f31f6d179b47f31"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#abc6ee9be23e54f31aed07382c8caaf7c">block_count</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:aeff742c77bbdb23c7f31f6d179b47f31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of Blocks in the Stream. <a href="structlzma__index__iter.html#abc6ee9be23e54f31aed07382c8caaf7c">More...</a><br /></td></tr>
-<tr class="separator:aeff742c77bbdb23c7f31f6d179b47f31"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a286009ecb802eb150adb6c6ad1a50918"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a426705df8dde4b094a42f91ea20a46ac">compressed_offset</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:a286009ecb802eb150adb6c6ad1a50918"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compressed start offset of this Stream. <a href="structlzma__index__iter.html#a426705df8dde4b094a42f91ea20a46ac">More...</a><br /></td></tr>
-<tr class="separator:a286009ecb802eb150adb6c6ad1a50918"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af1203268640946888544f0af52c19a66"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#abd374b748b4a42e122b90841709609bc">uncompressed_offset</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:af1203268640946888544f0af52c19a66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed start offset of this Stream. <a href="structlzma__index__iter.html#abd374b748b4a42e122b90841709609bc">More...</a><br /></td></tr>
-<tr class="separator:af1203268640946888544f0af52c19a66"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6e8737468f3bc6b779c78f45fe6c561c"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a6e73b1f37e3fcf1e9491e4a53b2c52c7">compressed_size</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:a6e8737468f3bc6b779c78f45fe6c561c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compressed size of this Stream. <a href="structlzma__index__iter.html#a6e73b1f37e3fcf1e9491e4a53b2c52c7">More...</a><br /></td></tr>
-<tr class="separator:a6e8737468f3bc6b779c78f45fe6c561c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a591f6115029d2655276d7709a604cddc"><td class="memItemLeft" >
-&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<b>uncompressed_size</b>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:a591f6115029d2655276d7709a604cddc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed size of this Stream. <br /></td></tr>
-<tr class="separator:a591f6115029d2655276d7709a604cddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a081a8169e2014da2f8c8539120809cb5"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a48cfc856f283fe00b0df37402e012818">padding</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:a081a8169e2014da2f8c8539120809cb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of Stream Padding after this Stream. <a href="structlzma__index__iter.html#a48cfc856f283fe00b0df37402e012818">More...</a><br /></td></tr>
-<tr class="separator:a081a8169e2014da2f8c8539120809cb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad92e1ccf25428b1a207dc1bdb4a45b2c"><td class="memItemLeft" valign="top">}&#160;</td><td class="memItemRight" valign="bottom"><b>stream</b>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="separator:ad92e1ccf25428b1a207dc1bdb4a45b2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5092ff3be1ff1066585a9066dc5fd2b4"><td class="memItemLeft" ><a id="a5092ff3be1ff1066585a9066dc5fd2b4" name="a5092ff3be1ff1066585a9066dc5fd2b4"></a>
-struct {&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7f332b95b77bd86ea2b3f86fb30375bd"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#abe5333de53562189012d5ed084c0ef98">number_in_file</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:a7f332b95b77bd86ea2b3f86fb30375bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Block number in the file. <a href="structlzma__index__iter.html#abe5333de53562189012d5ed084c0ef98">More...</a><br /></td></tr>
-<tr class="separator:a7f332b95b77bd86ea2b3f86fb30375bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abc9701ec21240e8d2701afe55d742167"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a26436e75d4c2b5dd8d1de24140d8003e">compressed_file_offset</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:abc9701ec21240e8d2701afe55d742167"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compressed start offset of this Block. <a href="structlzma__index__iter.html#a26436e75d4c2b5dd8d1de24140d8003e">More...</a><br /></td></tr>
-<tr class="separator:abc9701ec21240e8d2701afe55d742167"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae5593002adfeef61b9325b33a4eb687d"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a2f3ecf341b5dc043e9673759b8ff47b9">uncompressed_file_offset</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:ae5593002adfeef61b9325b33a4eb687d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed start offset of this Block. <a href="structlzma__index__iter.html#a2f3ecf341b5dc043e9673759b8ff47b9">More...</a><br /></td></tr>
-<tr class="separator:ae5593002adfeef61b9325b33a4eb687d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a19a8e58670a1b22612428d5da300f2d2"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a35a752d344ff5d35d2a858a20bd6e5e8">number_in_stream</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:a19a8e58670a1b22612428d5da300f2d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Block number in this Stream. <a href="structlzma__index__iter.html#a35a752d344ff5d35d2a858a20bd6e5e8">More...</a><br /></td></tr>
-<tr class="separator:a19a8e58670a1b22612428d5da300f2d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4111d3bc81eb08bf42421814cd76ef33"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a578bba553c43dc59a5e4032d4f6c89a3">compressed_stream_offset</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:a4111d3bc81eb08bf42421814cd76ef33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compressed start offset of this Block. <a href="structlzma__index__iter.html#a578bba553c43dc59a5e4032d4f6c89a3">More...</a><br /></td></tr>
-<tr class="separator:a4111d3bc81eb08bf42421814cd76ef33"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aba1991fc46f4ebd0a3ac0bec43d36d56"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a0fc4959fab08e1a6a4902c728c735a99">uncompressed_stream_offset</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:aba1991fc46f4ebd0a3ac0bec43d36d56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed start offset of this Block. <a href="structlzma__index__iter.html#a0fc4959fab08e1a6a4902c728c735a99">More...</a><br /></td></tr>
-<tr class="separator:aba1991fc46f4ebd0a3ac0bec43d36d56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8de4ea7cdf905303a31d851e222595db"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#aafc48408ed40060a84ecd66bae5e1b23">uncompressed_size</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:a8de4ea7cdf905303a31d851e222595db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed size of this Block. <a href="structlzma__index__iter.html#aafc48408ed40060a84ecd66bae5e1b23">More...</a><br /></td></tr>
-<tr class="separator:a8de4ea7cdf905303a31d851e222595db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1eeb164c66c723607b3ee7ed68b4c22a"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a9f4e405b9884be08e3a35bc06e3e15df">unpadded_size</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:a1eeb164c66c723607b3ee7ed68b4c22a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unpadded size of this Block. <a href="structlzma__index__iter.html#a9f4e405b9884be08e3a35bc06e3e15df">More...</a><br /></td></tr>
-<tr class="separator:a1eeb164c66c723607b3ee7ed68b4c22a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a340f9c08cd05d0931468ab976050ffa2"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#ae164ca3d7492dcf5883769c38baac30e">total_size</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="memdesc:a340f9c08cd05d0931468ab976050ffa2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total compressed size. <a href="structlzma__index__iter.html#ae164ca3d7492dcf5883769c38baac30e">More...</a><br /></td></tr>
-<tr class="separator:a340f9c08cd05d0931468ab976050ffa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5092ff3be1ff1066585a9066dc5fd2b4"><td class="memItemLeft" valign="top">}&#160;</td><td class="memItemRight" valign="bottom"><b>block</b>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="separator:a5092ff3be1ff1066585a9066dc5fd2b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Iterator to get information about Blocks and Streams. </p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a id="a223a046bcf09077a6e720967682deeae" name="a223a046bcf09077a6e720967682deeae"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a223a046bcf09077a6e720967682deeae">&#9670;&#160;</a></span>flags</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a>* lzma_index_iter::flags</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Pointer to Stream Flags. </p>
-<p>This is NULL if Stream Flags have not been set for this Stream with <a class="el" href="index_8h.html#a79a19669237f19f0b11c9f3be80a62b4" title="Set the Stream Flags.">lzma_index_stream_flags()</a>. </p>
-
-</div>
-</div>
-<a id="a115a307dbc778a9de296376dc39c7b23" name="a115a307dbc778a9de296376dc39c7b23"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a115a307dbc778a9de296376dc39c7b23">&#9670;&#160;</a></span>number</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::number</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Stream number in the lzma_index. </p>
-<p>The first Stream is 1. </p>
-
-</div>
-</div>
-<a id="abc6ee9be23e54f31aed07382c8caaf7c" name="abc6ee9be23e54f31aed07382c8caaf7c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abc6ee9be23e54f31aed07382c8caaf7c">&#9670;&#160;</a></span>block_count</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::block_count</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Number of Blocks in the Stream. </p>
-<p>If this is zero, the block structure below has undefined values. </p>
-
-</div>
-</div>
-<a id="a426705df8dde4b094a42f91ea20a46ac" name="a426705df8dde4b094a42f91ea20a46ac"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a426705df8dde4b094a42f91ea20a46ac">&#9670;&#160;</a></span>compressed_offset</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::compressed_offset</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compressed start offset of this Stream. </p>
-<p>The offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file). </p>
-
-</div>
-</div>
-<a id="abd374b748b4a42e122b90841709609bc" name="abd374b748b4a42e122b90841709609bc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abd374b748b4a42e122b90841709609bc">&#9670;&#160;</a></span>uncompressed_offset</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::uncompressed_offset</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Uncompressed start offset of this Stream. </p>
-<p>The offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file). </p>
-
-</div>
-</div>
-<a id="a6e73b1f37e3fcf1e9491e4a53b2c52c7" name="a6e73b1f37e3fcf1e9491e4a53b2c52c7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6e73b1f37e3fcf1e9491e4a53b2c52c7">&#9670;&#160;</a></span>compressed_size</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::compressed_size</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compressed size of this Stream. </p>
-<p>This includes all headers except the possible Stream Padding after this Stream. </p>
-
-</div>
-</div>
-<a id="aafc48408ed40060a84ecd66bae5e1b23" name="aafc48408ed40060a84ecd66bae5e1b23"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aafc48408ed40060a84ecd66bae5e1b23">&#9670;&#160;</a></span>uncompressed_size</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::uncompressed_size</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Uncompressed size of this Stream. </p>
-<p>Uncompressed size of this Block.</p>
-<p>You should pass this to the Block decoder if you will decode this Block. It will allow the Block decoder to validate the uncompressed size. </p>
-
-</div>
-</div>
-<a id="a48cfc856f283fe00b0df37402e012818" name="a48cfc856f283fe00b0df37402e012818"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a48cfc856f283fe00b0df37402e012818">&#9670;&#160;</a></span>padding</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::padding</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Size of Stream Padding after this Stream. </p>
-<p>If it hasn't been set with <a class="el" href="index_8h.html#a3ed82f96c688f3c953f6509b6f4e2ef3" title="Set the amount of Stream Padding.">lzma_index_stream_padding()</a>, this defaults to zero. Stream Padding is always a multiple of four bytes. </p>
-
-</div>
-</div>
-<a id="abe5333de53562189012d5ed084c0ef98" name="abe5333de53562189012d5ed084c0ef98"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abe5333de53562189012d5ed084c0ef98">&#9670;&#160;</a></span>number_in_file</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::number_in_file</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Block number in the file. </p>
-<p>The first Block is 1. </p>
-
-</div>
-</div>
-<a id="a26436e75d4c2b5dd8d1de24140d8003e" name="a26436e75d4c2b5dd8d1de24140d8003e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a26436e75d4c2b5dd8d1de24140d8003e">&#9670;&#160;</a></span>compressed_file_offset</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::compressed_file_offset</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compressed start offset of this Block. </p>
-<p>This offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file). Normally this is where you should seek in the .xz file to start decompressing this Block. </p>
-
-</div>
-</div>
-<a id="a2f3ecf341b5dc043e9673759b8ff47b9" name="a2f3ecf341b5dc043e9673759b8ff47b9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2f3ecf341b5dc043e9673759b8ff47b9">&#9670;&#160;</a></span>uncompressed_file_offset</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::uncompressed_file_offset</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Uncompressed start offset of this Block. </p>
-<p>This offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).</p>
-<p>When doing random-access reading, it is possible that the target offset is not exactly at Block boundary. One will need to compare the target offset against uncompressed_file_offset or uncompressed_stream_offset, and possibly decode and throw away some amount of data before reaching the target offset. </p>
-
-</div>
-</div>
-<a id="a35a752d344ff5d35d2a858a20bd6e5e8" name="a35a752d344ff5d35d2a858a20bd6e5e8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a35a752d344ff5d35d2a858a20bd6e5e8">&#9670;&#160;</a></span>number_in_stream</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::number_in_stream</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Block number in this Stream. </p>
-<p>The first Block is 1. </p>
-
-</div>
-</div>
-<a id="a578bba553c43dc59a5e4032d4f6c89a3" name="a578bba553c43dc59a5e4032d4f6c89a3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a578bba553c43dc59a5e4032d4f6c89a3">&#9670;&#160;</a></span>compressed_stream_offset</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::compressed_stream_offset</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compressed start offset of this Block. </p>
-<p>This offset is relative to the beginning of the Stream containing this Block. </p>
-
-</div>
-</div>
-<a id="a0fc4959fab08e1a6a4902c728c735a99" name="a0fc4959fab08e1a6a4902c728c735a99"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0fc4959fab08e1a6a4902c728c735a99">&#9670;&#160;</a></span>uncompressed_stream_offset</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::uncompressed_stream_offset</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Uncompressed start offset of this Block. </p>
-<p>This offset is relative to the beginning of the Stream containing this Block. </p>
-
-</div>
-</div>
-<a id="a9f4e405b9884be08e3a35bc06e3e15df" name="a9f4e405b9884be08e3a35bc06e3e15df"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9f4e405b9884be08e3a35bc06e3e15df">&#9670;&#160;</a></span>unpadded_size</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::unpadded_size</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unpadded size of this Block. </p>
-<p>You should pass this to the Block decoder if you will decode this Block. It will allow the Block decoder to validate the unpadded size. </p>
-
-</div>
-</div>
-<a id="ae164ca3d7492dcf5883769c38baac30e" name="ae164ca3d7492dcf5883769c38baac30e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae164ca3d7492dcf5883769c38baac30e">&#9670;&#160;</a></span>total_size</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::total_size</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Total compressed size. </p>
-<p>This includes all headers and padding in this Block. This is useful if you need to know how many bytes the Block decoder will actually read. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>lzma/<a class="el" href="index_8h.html">index.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/structlzma__mt.html b/doc/api/structlzma__mt.html
deleted file mode 100644
index 17a16cc..0000000
--- a/doc/api/structlzma__mt.html
+++ /dev/null
@@ -1,256 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma_mt Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle"><div class="title">lzma_mt Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Multithreading options.
- <a href="structlzma__mt.html#details">More...</a></p>
-
-<p><code>#include &lt;container.h&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a1c2fe028f547bf58b48b5199557d9a9f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#a1c2fe028f547bf58b48b5199557d9a9f">flags</a></td></tr>
-<tr class="memdesc:a1c2fe028f547bf58b48b5199557d9a9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flags. <br /></td></tr>
-<tr class="separator:a1c2fe028f547bf58b48b5199557d9a9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a881761f858dbda33c697e74acde0be70"><td class="memItemLeft" align="right" valign="top"><a id="a881761f858dbda33c697e74acde0be70" name="a881761f858dbda33c697e74acde0be70"></a>
-uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>threads</b></td></tr>
-<tr class="memdesc:a881761f858dbda33c697e74acde0be70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of worker threads to use. <br /></td></tr>
-<tr class="separator:a881761f858dbda33c697e74acde0be70"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a20cdc7865266ccb88da36a6e68f84d15"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#a20cdc7865266ccb88da36a6e68f84d15">block_size</a></td></tr>
-<tr class="memdesc:a20cdc7865266ccb88da36a6e68f84d15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoder only: Maximum uncompressed size of a Block. <br /></td></tr>
-<tr class="separator:a20cdc7865266ccb88da36a6e68f84d15"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a298992bf7d2154d8dd814560219d10c2"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#a298992bf7d2154d8dd814560219d10c2">timeout</a></td></tr>
-<tr class="memdesc:a298992bf7d2154d8dd814560219d10c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timeout to allow <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> to return early. <br /></td></tr>
-<tr class="separator:a298992bf7d2154d8dd814560219d10c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab3883b5644752cdd15f01387d58dd050"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#ab3883b5644752cdd15f01387d58dd050">preset</a></td></tr>
-<tr class="memdesc:ab3883b5644752cdd15f01387d58dd050"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoder only: Compression preset. <br /></td></tr>
-<tr class="separator:ab3883b5644752cdd15f01387d58dd050"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad43a62ef2178c76405e5be0ece7a98b4"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#ad43a62ef2178c76405e5be0ece7a98b4">filters</a></td></tr>
-<tr class="memdesc:ad43a62ef2178c76405e5be0ece7a98b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoder only: Filter chain (alternative to a preset) <br /></td></tr>
-<tr class="separator:ad43a62ef2178c76405e5be0ece7a98b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae38846e8aca5b20d2a86a2364283b730"><td class="memItemLeft" align="right" valign="top"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#ae38846e8aca5b20d2a86a2364283b730">check</a></td></tr>
-<tr class="memdesc:ae38846e8aca5b20d2a86a2364283b730"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoder only: Integrity check type. <br /></td></tr>
-<tr class="separator:ae38846e8aca5b20d2a86a2364283b730"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5a7fb0c7c2db350e09e77477bc3c9509"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#a5a7fb0c7c2db350e09e77477bc3c9509">memlimit_threading</a></td></tr>
-<tr class="memdesc:a5a7fb0c7c2db350e09e77477bc3c9509"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory usage limit to reduce the number of threads. <br /></td></tr>
-<tr class="separator:a5a7fb0c7c2db350e09e77477bc3c9509"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab5e0b530d4c572c7a2361aabbad656aa"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#ab5e0b530d4c572c7a2361aabbad656aa">memlimit_stop</a></td></tr>
-<tr class="memdesc:ab5e0b530d4c572c7a2361aabbad656aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory usage limit that should never be exceeded. <br /></td></tr>
-<tr class="separator:ab5e0b530d4c572c7a2361aabbad656aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Multithreading options. </p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a id="a1c2fe028f547bf58b48b5199557d9a9f" name="a1c2fe028f547bf58b48b5199557d9a9f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1c2fe028f547bf58b48b5199557d9a9f">&#9670;&#160;</a></span>flags</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_mt::flags</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Flags. </p>
-<p>Set this to zero if no flags are wanted.</p>
-<p>Encoder: No flags are currently supported.</p>
-<p>Decoder: Bitwise-or of zero or more of the decoder flags:</p><ul>
-<li>LZMA_TELL_NO_CHECK</li>
-<li>LZMA_TELL_UNSUPPORTED_CHECK</li>
-<li>LZMA_TELL_ANY_CHECK</li>
-<li>LZMA_IGNORE_CHECK</li>
-<li>LZMA_CONCATENATED</li>
-<li>LZMA_FAIL_FAST </li>
-</ul>
-
-</div>
-</div>
-<a id="a20cdc7865266ccb88da36a6e68f84d15" name="a20cdc7865266ccb88da36a6e68f84d15"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a20cdc7865266ccb88da36a6e68f84d15">&#9670;&#160;</a></span>block_size</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_mt::block_size</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Encoder only: Maximum uncompressed size of a Block. </p>
-<p>The encoder will start a new .xz Block every block_size bytes. Using LZMA_FULL_FLUSH or LZMA_FULL_BARRIER with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> the caller may tell liblzma to start a new Block earlier.</p>
-<p>With LZMA2, a recommended block size is 2-4 times the LZMA2 dictionary size. With very small dictionaries, it is recommended to use at least 1 MiB block size for good compression ratio, even if this is more than four times the dictionary size. Note that these are only recommendations for typical use cases; feel free to use other values. Just keep in mind that using a block size less than the LZMA2 dictionary size is waste of RAM.</p>
-<p>Set this to 0 to let liblzma choose the block size depending on the compression options. For LZMA2 it will be 3*dict_size or 1 MiB, whichever is more.</p>
-<p>For each thread, about 3 * block_size bytes of memory will be allocated. This may change in later liblzma versions. If so, the memory usage will probably be reduced, not increased. </p>
-
-</div>
-</div>
-<a id="a298992bf7d2154d8dd814560219d10c2" name="a298992bf7d2154d8dd814560219d10c2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a298992bf7d2154d8dd814560219d10c2">&#9670;&#160;</a></span>timeout</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_mt::timeout</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Timeout to allow <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> to return early. </p>
-<p>Multithreading can make liblzma consume input and produce output in a very bursty way: it may first read a lot of input to fill internal buffers, then no input or output occurs for a while.</p>
-<p>In single-threaded mode, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> won't return until it has either consumed all the input or filled the output buffer. If this is done in multithreaded mode, it may cause a call <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> to take even tens of seconds, which isn't acceptable in all applications.</p>
-<p>To avoid very long blocking times in <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>, a timeout (in milliseconds) may be set here. If <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> would block longer than this number of milliseconds, it will return with LZMA_OK. Reasonable values are 100 ms or more. The xz command line tool uses 300 ms.</p>
-<p>If long blocking times are acceptable, set timeout to a special value of 0. This will disable the timeout mechanism and will make <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> block until all the input is consumed or the output buffer has been filled.</p>
-<dl class="section note"><dt>Note</dt><dd>Even with a timeout, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> might sometimes take a long time to return. No timing guarantees are made. </dd></dl>
-
-</div>
-</div>
-<a id="ab3883b5644752cdd15f01387d58dd050" name="ab3883b5644752cdd15f01387d58dd050"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab3883b5644752cdd15f01387d58dd050">&#9670;&#160;</a></span>preset</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_mt::preset</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Encoder only: Compression preset. </p>
-<p>The preset is set just like with <a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4" title="Initialize .xz Stream encoder using a preset number.">lzma_easy_encoder()</a>. The preset is ignored if filters below is non-NULL. </p>
-
-</div>
-</div>
-<a id="ad43a62ef2178c76405e5be0ece7a98b4" name="ad43a62ef2178c76405e5be0ece7a98b4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad43a62ef2178c76405e5be0ece7a98b4">&#9670;&#160;</a></span>filters</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const <a class="el" href="structlzma__filter.html">lzma_filter</a>* lzma_mt::filters</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Encoder only: Filter chain (alternative to a preset) </p>
-<p>If this is NULL, the preset above is used. Otherwise the preset is ignored and the filter chain specified here is used. </p>
-
-</div>
-</div>
-<a id="ae38846e8aca5b20d2a86a2364283b730" name="ae38846e8aca5b20d2a86a2364283b730"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae38846e8aca5b20d2a86a2364283b730">&#9670;&#160;</a></span>check</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> lzma_mt::check</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Encoder only: Integrity check type. </p>
-<p>See <a class="el" href="check_8h.html" title="Integrity checks.">check.h</a> for available checks. The xz command line tool defaults to LZMA_CHECK_CRC64, which is a good choice if you are unsure. </p>
-
-</div>
-</div>
-<a id="a5a7fb0c7c2db350e09e77477bc3c9509" name="a5a7fb0c7c2db350e09e77477bc3c9509"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5a7fb0c7c2db350e09e77477bc3c9509">&#9670;&#160;</a></span>memlimit_threading</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_mt::memlimit_threading</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Memory usage limit to reduce the number of threads. </p>
-<p>Encoder: Ignored.</p>
-<p>Decoder:</p>
-<p>If the number of threads has been set so high that more than memlimit_threading bytes of memory would be needed, the number of threads will be reduced so that the memory usage will not exceed memlimit_threading bytes. However, if memlimit_threading cannot be met even in single-threaded mode, then decoding will continue in single-threaded mode and memlimit_threading may be exceeded even by a large amount. That is, memlimit_threading will never make <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> return LZMA_MEMLIMIT_ERROR. To truly cap the memory usage, see memlimit_stop below.</p>
-<p>Setting memlimit_threading to UINT64_MAX or a similar huge value means that liblzma is allowed to keep the whole compressed file and the whole uncompressed file in memory in addition to the memory needed by the decompressor data structures used by each thread! In other words, a reasonable value limit must be set here or it will cause problems sooner or later. If you have no idea what a reasonable value could be, try <a class="el" href="hardware_8h.html#a85363e453b34272a9f26c9fdffb041ee" title="Get the total amount of physical memory (RAM) in bytes.">lzma_physmem()</a> / 4 as a starting point. Setting this limit will never prevent decompression of a file; this will only reduce the number of threads.</p>
-<p>If memlimit_threading is greater than memlimit_stop, then the value of memlimit_stop will be used for both. </p>
-
-</div>
-</div>
-<a id="ab5e0b530d4c572c7a2361aabbad656aa" name="ab5e0b530d4c572c7a2361aabbad656aa"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab5e0b530d4c572c7a2361aabbad656aa">&#9670;&#160;</a></span>memlimit_stop</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_mt::memlimit_stop</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Memory usage limit that should never be exceeded. </p>
-<p>Encoder: Ignored.</p>
-<p>Decoder: If decompressing will need more than this amount of memory even in the single-threaded mode, then <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> will return LZMA_MEMLIMIT_ERROR. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>lzma/<a class="el" href="container_8h.html">container.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/structlzma__options__bcj.html b/doc/api/structlzma__options__bcj.html
deleted file mode 100644
index b962092..0000000
--- a/doc/api/structlzma__options__bcj.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma_options_bcj Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle"><div class="title">lzma_options_bcj Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Options for BCJ filters.
- <a href="structlzma__options__bcj.html#details">More...</a></p>
-
-<p><code>#include &lt;bcj.h&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a3f5a3c62cd82ce89433684f12ed096ac"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__bcj.html#a3f5a3c62cd82ce89433684f12ed096ac">start_offset</a></td></tr>
-<tr class="memdesc:a3f5a3c62cd82ce89433684f12ed096ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start offset for conversions. <br /></td></tr>
-<tr class="separator:a3f5a3c62cd82ce89433684f12ed096ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Options for BCJ filters. </p>
-<p>The BCJ filters never change the size of the data. Specifying options for them is optional: if pointer to options is NULL, default value is used. You probably never need to specify options to BCJ filters, so just set the options pointer to NULL and be happy.</p>
-<p>If options with non-default values have been specified when encoding, the same options must also be specified when decoding.</p>
-<dl class="section note"><dt>Note</dt><dd>At the moment, none of the BCJ filters support LZMA_SYNC_FLUSH. If LZMA_SYNC_FLUSH is specified, LZMA_OPTIONS_ERROR will be returned. If there is need, partial support for LZMA_SYNC_FLUSH can be added in future. Partial means that flushing would be possible only at offsets that are multiple of 2, 4, or 16 depending on the filter, except x86 which cannot be made to support LZMA_SYNC_FLUSH predictably. </dd></dl>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a id="a3f5a3c62cd82ce89433684f12ed096ac" name="a3f5a3c62cd82ce89433684f12ed096ac"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3f5a3c62cd82ce89433684f12ed096ac">&#9670;&#160;</a></span>start_offset</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_options_bcj::start_offset</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Start offset for conversions. </p>
-<p>This setting is useful only when the same filter is used _separately_ for multiple sections of the same executable file, and the sections contain cross-section branch/call/jump instructions. In that case it is beneficial to set the start offset of the non-first sections so that the relative addresses of the cross-section branch/call/jump instructions will use the same absolute addresses as in the first section.</p>
-<p>When the pointer to options is NULL, the default value (zero) is used. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>lzma/<a class="el" href="bcj_8h.html">bcj.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/structlzma__options__delta.html b/doc/api/structlzma__options__delta.html
deleted file mode 100644
index 294586d..0000000
--- a/doc/api/structlzma__options__delta.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma_options_delta Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle"><div class="title">lzma_options_delta Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Options for the Delta filter.
- <a href="structlzma__options__delta.html#details">More...</a></p>
-
-<p><code>#include &lt;delta.h&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:af3f1ece7f8c472f4a794953b414c7cd7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">lzma_delta_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__delta.html#af3f1ece7f8c472f4a794953b414c7cd7">type</a></td></tr>
-<tr class="separator:af3f1ece7f8c472f4a794953b414c7cd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a31b4b0b5a2462cb9433c2663b8a62790"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__delta.html#a31b4b0b5a2462cb9433c2663b8a62790">dist</a></td></tr>
-<tr class="memdesc:a31b4b0b5a2462cb9433c2663b8a62790"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delta distance. <br /></td></tr>
-<tr class="separator:a31b4b0b5a2462cb9433c2663b8a62790"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Options for the Delta filter. </p>
-<p>These options are needed by both encoder and decoder. </p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a id="af3f1ece7f8c472f4a794953b414c7cd7" name="af3f1ece7f8c472f4a794953b414c7cd7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af3f1ece7f8c472f4a794953b414c7cd7">&#9670;&#160;</a></span>type</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">lzma_delta_type</a> lzma_options_delta::type</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>For now, this must always be LZMA_DELTA_TYPE_BYTE. </p>
-
-</div>
-</div>
-<a id="a31b4b0b5a2462cb9433c2663b8a62790" name="a31b4b0b5a2462cb9433c2663b8a62790"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a31b4b0b5a2462cb9433c2663b8a62790">&#9670;&#160;</a></span>dist</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_options_delta::dist</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Delta distance. </p>
-<p>With the only currently supported type, LZMA_DELTA_TYPE_BYTE, the distance is as bytes.</p>
-<p>Examples:</p><ul>
-<li>16-bit stereo audio: distance = 4 bytes</li>
-<li>24-bit RGB image data: distance = 3 bytes </li>
-</ul>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>lzma/<a class="el" href="delta_8h.html">delta.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/structlzma__options__lzma.html b/doc/api/structlzma__options__lzma.html
deleted file mode 100644
index f8e3adf..0000000
--- a/doc/api/structlzma__options__lzma.html
+++ /dev/null
@@ -1,363 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma_options_lzma Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle"><div class="title">lzma_options_lzma Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Options specific to the LZMA1 and LZMA2 filters.
- <a href="structlzma__options__lzma.html#details">More...</a></p>
-
-<p><code>#include &lt;lzma12.h&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:aeb3f86002405a1191af86def46fca5ad"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#aeb3f86002405a1191af86def46fca5ad">dict_size</a></td></tr>
-<tr class="memdesc:aeb3f86002405a1191af86def46fca5ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dictionary size in bytes. <br /></td></tr>
-<tr class="separator:aeb3f86002405a1191af86def46fca5ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a16a58c1ee3ec18c820d5cb03dde3739a"><td class="memItemLeft" align="right" valign="top">const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a16a58c1ee3ec18c820d5cb03dde3739a">preset_dict</a></td></tr>
-<tr class="memdesc:a16a58c1ee3ec18c820d5cb03dde3739a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to an initial dictionary. <br /></td></tr>
-<tr class="separator:a16a58c1ee3ec18c820d5cb03dde3739a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a655ad4cce9e4dac9cf2a5c8daaa629e0"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a655ad4cce9e4dac9cf2a5c8daaa629e0">preset_dict_size</a></td></tr>
-<tr class="memdesc:a655ad4cce9e4dac9cf2a5c8daaa629e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the preset dictionary. <br /></td></tr>
-<tr class="separator:a655ad4cce9e4dac9cf2a5c8daaa629e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a95f6188e5b5f05c50ec463a315df3585"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a95f6188e5b5f05c50ec463a315df3585">lc</a></td></tr>
-<tr class="memdesc:a95f6188e5b5f05c50ec463a315df3585"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of literal context bits. <br /></td></tr>
-<tr class="separator:a95f6188e5b5f05c50ec463a315df3585"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0fe9c54e808fce3090b6994d95fe41fe"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a0fe9c54e808fce3090b6994d95fe41fe">lp</a></td></tr>
-<tr class="memdesc:a0fe9c54e808fce3090b6994d95fe41fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of literal position bits. <br /></td></tr>
-<tr class="separator:a0fe9c54e808fce3090b6994d95fe41fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acae107b3d3e9d0d4fe16103be22f4408"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#acae107b3d3e9d0d4fe16103be22f4408">pb</a></td></tr>
-<tr class="memdesc:acae107b3d3e9d0d4fe16103be22f4408"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of position bits. <br /></td></tr>
-<tr class="separator:acae107b3d3e9d0d4fe16103be22f4408"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1d711df9bda046fd3899abf21fa250d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma_mode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a1d711df9bda046fd3899abf21fa250d5">mode</a></td></tr>
-<tr class="separator:a1d711df9bda046fd3899abf21fa250d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0352ea7f8b6a43b745a44f6cb4e2d263"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a0352ea7f8b6a43b745a44f6cb4e2d263">nice_len</a></td></tr>
-<tr class="memdesc:a0352ea7f8b6a43b745a44f6cb4e2d263"><td class="mdescLeft">&#160;</td><td class="mdescRight">Nice length of a match. <br /></td></tr>
-<tr class="separator:a0352ea7f8b6a43b745a44f6cb4e2d263"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa99612cd52259093007f33513882dcd0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma_match_finder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#aa99612cd52259093007f33513882dcd0">mf</a></td></tr>
-<tr class="separator:aa99612cd52259093007f33513882dcd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4226f686e8c9f6288595fe23d0e15713"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a4226f686e8c9f6288595fe23d0e15713">depth</a></td></tr>
-<tr class="memdesc:a4226f686e8c9f6288595fe23d0e15713"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum search depth in the match finder. <br /></td></tr>
-<tr class="separator:a4226f686e8c9f6288595fe23d0e15713"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ade251d13ef46bcacb4e052b83693878c"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#ade251d13ef46bcacb4e052b83693878c">ext_flags</a></td></tr>
-<tr class="memdesc:ade251d13ef46bcacb4e052b83693878c"><td class="mdescLeft">&#160;</td><td class="mdescRight">For LZMA_FILTER_LZMA1EXT: Extended flags. <br /></td></tr>
-<tr class="separator:ade251d13ef46bcacb4e052b83693878c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a971da8385dcebd01e60235afb3b717f9"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a971da8385dcebd01e60235afb3b717f9">ext_size_low</a></td></tr>
-<tr class="memdesc:a971da8385dcebd01e60235afb3b717f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">For LZMA_FILTER_LZMA1EXT: Uncompressed size (low bits) <br /></td></tr>
-<tr class="separator:a971da8385dcebd01e60235afb3b717f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae5b3c2375c43ddfacf093980385fb9e3"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#ae5b3c2375c43ddfacf093980385fb9e3">ext_size_high</a></td></tr>
-<tr class="memdesc:ae5b3c2375c43ddfacf093980385fb9e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">For LZMA_FILTER_LZMA1EXT: Uncompressed size (high bits) <br /></td></tr>
-<tr class="separator:ae5b3c2375c43ddfacf093980385fb9e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Options specific to the LZMA1 and LZMA2 filters. </p>
-<p>Since LZMA1 and LZMA2 share most of the code, it's simplest to share the options structure too. For encoding, all but the reserved variables need to be initialized unless specifically mentioned otherwise. <a class="el" href="lzma12_8h.html#aa62c28944fe3575653a4c25780400d77" title="Set a compression preset to lzma_options_lzma structure.">lzma_lzma_preset()</a> can be used to get a good starting point.</p>
-<p>For raw decoding, both LZMA1 and LZMA2 need dict_size, preset_dict, and preset_dict_size (if preset_dict != NULL). LZMA1 needs also lc, lp, and pb. </p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a id="aeb3f86002405a1191af86def46fca5ad" name="aeb3f86002405a1191af86def46fca5ad"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aeb3f86002405a1191af86def46fca5ad">&#9670;&#160;</a></span>dict_size</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_options_lzma::dict_size</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dictionary size in bytes. </p>
-<p>Dictionary size indicates how many bytes of the recently processed uncompressed data is kept in memory. One method to reduce size of the uncompressed data is to store distance-length pairs, which indicate what data to repeat from the dictionary buffer. Thus, the bigger the dictionary, the better the compression ratio usually is.</p>
-<p>Maximum size of the dictionary depends on multiple things:</p><ul>
-<li>Memory usage limit</li>
-<li>Available address space (not a problem on 64-bit systems)</li>
-<li>Selected match finder (encoder only)</li>
-</ul>
-<p>Currently the maximum dictionary size for encoding is 1.5 GiB (i.e. (UINT32_C(1) &lt;&lt; 30) + (UINT32_C(1) &lt;&lt; 29)) even on 64-bit systems for certain match finder implementation reasons. In the future, there may be match finders that support bigger dictionaries.</p>
-<p>Decoder already supports dictionaries up to 4 GiB - 1 B (i.e. UINT32_MAX), so increasing the maximum dictionary size of the encoder won't cause problems for old decoders.</p>
-<p>Because extremely small dictionaries sizes would have unneeded overhead in the decoder, the minimum dictionary size is 4096 bytes.</p>
-<dl class="section note"><dt>Note</dt><dd>When decoding, too big dictionary does no other harm than wasting memory. </dd></dl>
-
-</div>
-</div>
-<a id="a16a58c1ee3ec18c820d5cb03dde3739a" name="a16a58c1ee3ec18c820d5cb03dde3739a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a16a58c1ee3ec18c820d5cb03dde3739a">&#9670;&#160;</a></span>preset_dict</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const uint8_t* lzma_options_lzma::preset_dict</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Pointer to an initial dictionary. </p>
-<p>It is possible to initialize the LZ77 history window using a preset dictionary. It is useful when compressing many similar, relatively small chunks of data independently from each other. The preset dictionary should contain typical strings that occur in the files being compressed. The most probable strings should be near the end of the preset dictionary.</p>
-<p>This feature should be used only in special situations. For now, it works correctly only with raw encoding and decoding. Currently none of the container formats supported by liblzma allow preset dictionary when decoding, thus if you create a .xz or .lzma file with preset dictionary, it cannot be decoded with the regular decoder functions. In the future, the .xz format will likely get support for preset dictionary though. </p>
-
-</div>
-</div>
-<a id="a655ad4cce9e4dac9cf2a5c8daaa629e0" name="a655ad4cce9e4dac9cf2a5c8daaa629e0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a655ad4cce9e4dac9cf2a5c8daaa629e0">&#9670;&#160;</a></span>preset_dict_size</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_options_lzma::preset_dict_size</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Size of the preset dictionary. </p>
-<p>Specifies the size of the preset dictionary. If the size is bigger than dict_size, only the last dict_size bytes are processed.</p>
-<p>This variable is read only when preset_dict is not NULL. If preset_dict is not NULL but preset_dict_size is zero, no preset dictionary is used (identical to only setting preset_dict to NULL). </p>
-
-</div>
-</div>
-<a id="a95f6188e5b5f05c50ec463a315df3585" name="a95f6188e5b5f05c50ec463a315df3585"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a95f6188e5b5f05c50ec463a315df3585">&#9670;&#160;</a></span>lc</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_options_lzma::lc</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Number of literal context bits. </p>
-<p>How many of the highest bits of the previous uncompressed eight-bit byte (also known as `literal') are taken into account when predicting the bits of the next literal.</p>
-<p>E.g. in typical English text, an upper-case letter is often followed by a lower-case letter, and a lower-case letter is usually followed by another lower-case letter. In the US-ASCII character set, the highest three bits are 010 for upper-case letters and 011 for lower-case letters. When lc is at least 3, the literal coding can take advantage of this property in the uncompressed data.</p>
-<p>There is a limit that applies to literal context bits and literal position bits together: lc + lp &lt;= 4. Without this limit the decoding could become very slow, which could have security related results in some cases like email servers doing virus scanning. This limit also simplifies the internal implementation in liblzma.</p>
-<p>There may be LZMA1 streams that have lc + lp &gt; 4 (maximum possible lc would be 8). It is not possible to decode such streams with liblzma. </p>
-
-</div>
-</div>
-<a id="a0fe9c54e808fce3090b6994d95fe41fe" name="a0fe9c54e808fce3090b6994d95fe41fe"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0fe9c54e808fce3090b6994d95fe41fe">&#9670;&#160;</a></span>lp</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_options_lzma::lp</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Number of literal position bits. </p>
-<p>lp affects what kind of alignment in the uncompressed data is assumed when encoding literals. A literal is a single 8-bit byte. See pb below for more information about alignment. </p>
-
-</div>
-</div>
-<a id="acae107b3d3e9d0d4fe16103be22f4408" name="acae107b3d3e9d0d4fe16103be22f4408"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acae107b3d3e9d0d4fe16103be22f4408">&#9670;&#160;</a></span>pb</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_options_lzma::pb</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Number of position bits. </p>
-<p>pb affects what kind of alignment in the uncompressed data is assumed in general. The default means four-byte alignment (2^ pb =2^2=4), which is often a good choice when there's no better guess.</p>
-<p>When the alignment is known, setting pb accordingly may reduce the file size a little. E.g. with text files having one-byte alignment (US-ASCII, ISO-8859-*, UTF-8), setting pb=0 can improve compression slightly. For UTF-16 text, pb=1 is a good choice. If the alignment is an odd number like 3 bytes, pb=0 might be the best choice.</p>
-<p>Even though the assumed alignment can be adjusted with pb and lp, LZMA1 and LZMA2 still slightly favor 16-byte alignment. It might be worth taking into account when designing file formats that are likely to be often compressed with LZMA1 or LZMA2. </p>
-
-</div>
-</div>
-<a id="a1d711df9bda046fd3899abf21fa250d5" name="a1d711df9bda046fd3899abf21fa250d5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1d711df9bda046fd3899abf21fa250d5">&#9670;&#160;</a></span>mode</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma_mode</a> lzma_options_lzma::mode</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Compression mode </p>
-
-</div>
-</div>
-<a id="a0352ea7f8b6a43b745a44f6cb4e2d263" name="a0352ea7f8b6a43b745a44f6cb4e2d263"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0352ea7f8b6a43b745a44f6cb4e2d263">&#9670;&#160;</a></span>nice_len</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_options_lzma::nice_len</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Nice length of a match. </p>
-<p>This determines how many bytes the encoder compares from the match candidates when looking for the best match. Once a match of at least nice_len bytes long is found, the encoder stops looking for better candidates and encodes the match. (Naturally, if the found match is actually longer than nice_len, the actual length is encoded; it's not truncated to nice_len.)</p>
-<p>Bigger values usually increase the compression ratio and compression time. For most files, 32 to 128 is a good value, which gives very good compression ratio at good speed.</p>
-<p>The exact minimum value depends on the match finder. The maximum is 273, which is the maximum length of a match that LZMA1 and LZMA2 can encode. </p>
-
-</div>
-</div>
-<a id="aa99612cd52259093007f33513882dcd0" name="aa99612cd52259093007f33513882dcd0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa99612cd52259093007f33513882dcd0">&#9670;&#160;</a></span>mf</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma_match_finder</a> lzma_options_lzma::mf</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Match finder ID </p>
-
-</div>
-</div>
-<a id="a4226f686e8c9f6288595fe23d0e15713" name="a4226f686e8c9f6288595fe23d0e15713"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4226f686e8c9f6288595fe23d0e15713">&#9670;&#160;</a></span>depth</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_options_lzma::depth</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum search depth in the match finder. </p>
-<p>For every input byte, match finder searches through the hash chain or binary tree in a loop, each iteration going one step deeper in the chain or tree. The searching stops if</p><ul>
-<li>a match of at least nice_len bytes long is found;</li>
-<li>all match candidates from the hash chain or binary tree have been checked; or</li>
-<li>maximum search depth is reached.</li>
-</ul>
-<p>Maximum search depth is needed to prevent the match finder from wasting too much time in case there are lots of short match candidates. On the other hand, stopping the search before all candidates have been checked can reduce compression ratio.</p>
-<p>Setting depth to zero tells liblzma to use an automatic default value, that depends on the selected match finder and nice_len. The default is in the range [4, 200] or so (it may vary between liblzma versions).</p>
-<p>Using a bigger depth value than the default can increase compression ratio in some cases. There is no strict maximum value, but high values (thousands or millions) should be used with care: the encoder could remain fast enough with typical input, but malicious input could cause the match finder to slow down dramatically, possibly creating a denial of service attack. </p>
-
-</div>
-</div>
-<a id="ade251d13ef46bcacb4e052b83693878c" name="ade251d13ef46bcacb4e052b83693878c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ade251d13ef46bcacb4e052b83693878c">&#9670;&#160;</a></span>ext_flags</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_options_lzma::ext_flags</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>For LZMA_FILTER_LZMA1EXT: Extended flags. </p>
-<p>This is used only with LZMA_FILTER_LZMA1EXT.</p>
-<p>Currently only one flag is supported, LZMA_LZMA1EXT_ALLOW_EOPM:</p>
-<ul>
-<li>Encoder: If the flag is set, then end marker is written just like it is with LZMA_FILTER_LZMA1. Without this flag the end marker isn't written and the application has to store the uncompressed size somewhere outside the compressed stream. To decompress streams without the end marker, the application has to set the correct uncompressed size in ext_size_low and ext_size_high.</li>
-<li><p class="startli">Decoder: If the uncompressed size in ext_size_low and ext_size_high is set to the special value UINT64_MAX (indicating unknown uncompressed size) then this flag is ignored and the end marker must always be present, that is, the behavior is identical to LZMA_FILTER_LZMA1.</p>
-<p class="startli">Otherwise, if this flag isn't set, then the input stream must not have the end marker; if the end marker is detected then it will result in LZMA_DATA_ERROR. This is useful when it is known that the stream must not have the end marker and strict validation is wanted.</p>
-<p class="startli">If this flag is set, then it is autodetected if the end marker is present after the specified number of uncompressed bytes has been decompressed (ext_size_low and ext_size_high). The end marker isn't allowed in any other position. This behavior is useful when uncompressed size is known but the end marker may or may not be present. This is the case, for example, in .7z files (valid .7z files that have the end marker in LZMA1 streams are rare but they do exist). </p>
-</li>
-</ul>
-
-</div>
-</div>
-<a id="a971da8385dcebd01e60235afb3b717f9" name="a971da8385dcebd01e60235afb3b717f9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a971da8385dcebd01e60235afb3b717f9">&#9670;&#160;</a></span>ext_size_low</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_options_lzma::ext_size_low</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>For LZMA_FILTER_LZMA1EXT: Uncompressed size (low bits) </p>
-<p>The 64-bit uncompressed size is needed for decompression with LZMA_FILTER_LZMA1EXT. The size is ignored by the encoder.</p>
-<p>The special value UINT64_MAX indicates that the uncompressed size is unknown and that the end of payload marker (also known as end of stream marker) must be present to indicate the end of the LZMA1 stream. Any other value indicates the expected uncompressed size of the LZMA1 stream. (If LZMA1 was used together with filters that change the size of the data then the uncompressed size of the LZMA1 stream could be different than the final uncompressed size of the filtered stream.)</p>
-<p>ext_size_low holds the least significant 32 bits of the uncompressed size. The most significant 32 bits must be set in ext_size_high. The macro lzma_ext_size_set(opt_lzma, u64size) can be used to set these members.</p>
-<p>The 64-bit uncompressed size is split into two uint32_t variables because there were no reserved uint64_t members and using the same options structure for LZMA_FILTER_LZMA1, LZMA_FILTER_LZMA1EXT, and LZMA_FILTER_LZMA2 was otherwise more convenient than having a new options structure for LZMA_FILTER_LZMA1EXT. (Replacing two uint32_t members with one uint64_t changes the ABI on some systems as the alignment of this struct can increase from 4 bytes to 8.) </p>
-
-</div>
-</div>
-<a id="ae5b3c2375c43ddfacf093980385fb9e3" name="ae5b3c2375c43ddfacf093980385fb9e3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae5b3c2375c43ddfacf093980385fb9e3">&#9670;&#160;</a></span>ext_size_high</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_options_lzma::ext_size_high</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>For LZMA_FILTER_LZMA1EXT: Uncompressed size (high bits) </p>
-<p>This holds the most significant 32 bits of the uncompressed size. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>lzma/<a class="el" href="lzma12_8h.html">lzma12.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/structlzma__stream.html b/doc/api/structlzma__stream.html
deleted file mode 100644
index 5a0c784..0000000
--- a/doc/api/structlzma__stream.html
+++ /dev/null
@@ -1,251 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma_stream Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle"><div class="title">lzma_stream Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Passing data to and from liblzma.
- <a href="structlzma__stream.html#details">More...</a></p>
-
-<p><code>#include &lt;base.h&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a72fdc738c793f07a5c29715aa57802cf"><td class="memItemLeft" align="right" valign="top">const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a72fdc738c793f07a5c29715aa57802cf">next_in</a></td></tr>
-<tr class="separator:a72fdc738c793f07a5c29715aa57802cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abb680ecea31910cbda1d7a6ad4f191c0"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#abb680ecea31910cbda1d7a6ad4f191c0">avail_in</a></td></tr>
-<tr class="separator:abb680ecea31910cbda1d7a6ad4f191c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1a411e1755d6185756caefabc3932c7b"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a1a411e1755d6185756caefabc3932c7b">total_in</a></td></tr>
-<tr class="separator:a1a411e1755d6185756caefabc3932c7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a14ee64ed636ddcb775edf87e2b9f42ec"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a14ee64ed636ddcb775edf87e2b9f42ec">next_out</a></td></tr>
-<tr class="separator:a14ee64ed636ddcb775edf87e2b9f42ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5ff28ea4e39148723c19f59811627904"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a5ff28ea4e39148723c19f59811627904">avail_out</a></td></tr>
-<tr class="separator:a5ff28ea4e39148723c19f59811627904"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80d703ffdfd7661e344fe7b61ff737fa"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a80d703ffdfd7661e344fe7b61ff737fa">total_out</a></td></tr>
-<tr class="separator:a80d703ffdfd7661e344fe7b61ff737fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4eb2f3e87e32cc4bea613898b0bd353f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a4eb2f3e87e32cc4bea613898b0bd353f">allocator</a></td></tr>
-<tr class="memdesc:a4eb2f3e87e32cc4bea613898b0bd353f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Custom memory allocation functions. <br /></td></tr>
-<tr class="separator:a4eb2f3e87e32cc4bea613898b0bd353f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a209da54c2fb5dea40ad011c8408300d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#ab1a60127c640135687a5bcc232cec906">lzma_internal</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a209da54c2fb5dea40ad011c8408300d0">internal</a></td></tr>
-<tr class="separator:a209da54c2fb5dea40ad011c8408300d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af7c43a61f3dfeb0b9c8487b7f275054e"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#af7c43a61f3dfeb0b9c8487b7f275054e">seek_pos</a></td></tr>
-<tr class="memdesc:af7c43a61f3dfeb0b9c8487b7f275054e"><td class="mdescLeft">&#160;</td><td class="mdescRight">New seek input position for LZMA_SEEK_NEEDED. <br /></td></tr>
-<tr class="separator:af7c43a61f3dfeb0b9c8487b7f275054e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Passing data to and from liblzma. </p>
-<p>The <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure is used for</p><ul>
-<li>passing pointers to input and output buffers to liblzma;</li>
-<li>defining custom memory handler functions; and</li>
-<li>holding a pointer to coder-specific internal data structures.</li>
-</ul>
-<p>Typical usage:</p>
-<ul>
-<li>After allocating <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> (on stack or with malloc()), it must be initialized to LZMA_STREAM_INIT (see LZMA_STREAM_INIT for details).</li>
-<li>Initialize a coder to the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>, for example by using <a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4" title="Initialize .xz Stream encoder using a preset number.">lzma_easy_encoder()</a> or <a class="el" href="container_8h.html#a21cbebf2771617bb1e956385cfb353e3" title="Decode .xz, .lzma, and .lz (lzip) files with autodetection.">lzma_auto_decoder()</a>. Some notes:<ul>
-<li>In contrast to zlib, strm-&gt;next_in and strm-&gt;next_out are ignored by all initialization functions, thus it is safe to not initialize them yet.</li>
-<li>The initialization functions always set strm-&gt;total_in and strm-&gt;total_out to zero.</li>
-<li>If the initialization function fails, no memory is left allocated that would require freeing with <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a> even if some memory was associated with the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure when the initialization function was called.</li>
-</ul>
-</li>
-<li>Use <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> to do the actual work.</li>
-<li>Once the coding has been finished, the existing <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> can be reused. It is OK to reuse <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> with different initialization function without calling <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a> first. Old allocations are automatically freed.</li>
-<li>Finally, use <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a> to free the allocated memory. <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a> never frees the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure itself.</li>
-</ul>
-<p>Application may modify the values of total_in and total_out as it wants. They are updated by liblzma to match the amount of data read and written but aren't used for anything else except as a possible return values from <a class="el" href="base_8h.html#ab6447cd68eeecbd6b88f21daeb8ce751" title="Get progress information.">lzma_get_progress()</a>. </p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a id="a72fdc738c793f07a5c29715aa57802cf" name="a72fdc738c793f07a5c29715aa57802cf"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a72fdc738c793f07a5c29715aa57802cf">&#9670;&#160;</a></span>next_in</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const uint8_t* lzma_stream::next_in</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Pointer to the next input byte. </p>
-
-</div>
-</div>
-<a id="abb680ecea31910cbda1d7a6ad4f191c0" name="abb680ecea31910cbda1d7a6ad4f191c0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abb680ecea31910cbda1d7a6ad4f191c0">&#9670;&#160;</a></span>avail_in</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t lzma_stream::avail_in</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Number of available input bytes in next_in. </p>
-
-</div>
-</div>
-<a id="a1a411e1755d6185756caefabc3932c7b" name="a1a411e1755d6185756caefabc3932c7b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1a411e1755d6185756caefabc3932c7b">&#9670;&#160;</a></span>total_in</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_stream::total_in</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Total number of bytes read by liblzma. </p>
-
-</div>
-</div>
-<a id="a14ee64ed636ddcb775edf87e2b9f42ec" name="a14ee64ed636ddcb775edf87e2b9f42ec"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a14ee64ed636ddcb775edf87e2b9f42ec">&#9670;&#160;</a></span>next_out</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint8_t* lzma_stream::next_out</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Pointer to the next output position. </p>
-
-</div>
-</div>
-<a id="a5ff28ea4e39148723c19f59811627904" name="a5ff28ea4e39148723c19f59811627904"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5ff28ea4e39148723c19f59811627904">&#9670;&#160;</a></span>avail_out</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t lzma_stream::avail_out</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Amount of free space in next_out. </p>
-
-</div>
-</div>
-<a id="a80d703ffdfd7661e344fe7b61ff737fa" name="a80d703ffdfd7661e344fe7b61ff737fa"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a80d703ffdfd7661e344fe7b61ff737fa">&#9670;&#160;</a></span>total_out</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_stream::total_out</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Total number of bytes written by liblzma. </p>
-
-</div>
-</div>
-<a id="a4eb2f3e87e32cc4bea613898b0bd353f" name="a4eb2f3e87e32cc4bea613898b0bd353f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4eb2f3e87e32cc4bea613898b0bd353f">&#9670;&#160;</a></span>allocator</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a>* lzma_stream::allocator</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Custom memory allocation functions. </p>
-<p>In most cases this is NULL which makes liblzma use the standard malloc() and free().</p>
-<dl class="section note"><dt>Note</dt><dd>In 5.0.x this is not a const pointer. </dd></dl>
-
-</div>
-</div>
-<a id="a209da54c2fb5dea40ad011c8408300d0" name="a209da54c2fb5dea40ad011c8408300d0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a209da54c2fb5dea40ad011c8408300d0">&#9670;&#160;</a></span>internal</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#ab1a60127c640135687a5bcc232cec906">lzma_internal</a>* lzma_stream::internal</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Internal state is not visible to applications. </p>
-
-</div>
-</div>
-<a id="af7c43a61f3dfeb0b9c8487b7f275054e" name="af7c43a61f3dfeb0b9c8487b7f275054e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af7c43a61f3dfeb0b9c8487b7f275054e">&#9670;&#160;</a></span>seek_pos</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t lzma_stream::seek_pos</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>New seek input position for LZMA_SEEK_NEEDED. </p>
-<p>When <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> returns LZMA_SEEK_NEEDED, the new input position needed by liblzma will be available seek_pos. The value is guaranteed to not exceed the file size that was specified when this <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> was initialized.</p>
-<p>In all other situations the value of this variable is undefined. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>lzma/<a class="el" href="base_8h.html">base.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/structlzma__stream__flags.html b/doc/api/structlzma__stream__flags.html
deleted file mode 100644
index 9098ff3..0000000
--- a/doc/api/structlzma__stream__flags.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma_stream_flags Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle"><div class="title">lzma_stream_flags Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Options for encoding/decoding Stream Header and Stream Footer.
- <a href="structlzma__stream__flags.html#details">More...</a></p>
-
-<p><code>#include &lt;stream_flags.h&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a61e9151869d5b77c868aaa4958e74d10"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream__flags.html#a61e9151869d5b77c868aaa4958e74d10">version</a></td></tr>
-<tr class="memdesc:a61e9151869d5b77c868aaa4958e74d10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stream Flags format version. <br /></td></tr>
-<tr class="separator:a61e9151869d5b77c868aaa4958e74d10"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aaa65ed7a55a098f829f04dba25d0f212"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream__flags.html#aaa65ed7a55a098f829f04dba25d0f212">backward_size</a></td></tr>
-<tr class="memdesc:aaa65ed7a55a098f829f04dba25d0f212"><td class="mdescLeft">&#160;</td><td class="mdescRight">Backward Size. <br /></td></tr>
-<tr class="separator:aaa65ed7a55a098f829f04dba25d0f212"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab1052ea7047c8d67f127f33278166647"><td class="memItemLeft" align="right" valign="top"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream__flags.html#ab1052ea7047c8d67f127f33278166647">check</a></td></tr>
-<tr class="memdesc:ab1052ea7047c8d67f127f33278166647"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check ID. <br /></td></tr>
-<tr class="separator:ab1052ea7047c8d67f127f33278166647"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Options for encoding/decoding Stream Header and Stream Footer. </p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a id="a61e9151869d5b77c868aaa4958e74d10" name="a61e9151869d5b77c868aaa4958e74d10"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a61e9151869d5b77c868aaa4958e74d10">&#9670;&#160;</a></span>version</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_stream_flags::version</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Stream Flags format version. </p>
-<p>To prevent API and ABI breakages if new features are needed in Stream Header or Stream Footer, a version number is used to indicate which members in this structure are in use. For now, version must always be zero. With non-zero version, the <a class="el" href="stream__flags_8h.html#a2ebb8d6dff23daeb3de398913b845eff" title="Encode Stream Header.">lzma_stream_header_encode()</a> and <a class="el" href="stream__flags_8h.html#a438249a75ea8da952a7474b92bfe7b7a" title="Encode Stream Footer.">lzma_stream_footer_encode()</a> will return LZMA_OPTIONS_ERROR.</p>
-<p><a class="el" href="stream__flags_8h.html#ae03198e464f0d296e601ff841e100805" title="Decode Stream Header.">lzma_stream_header_decode()</a> and <a class="el" href="stream__flags_8h.html#aa92a383f85753bb79ee23227fa68186c" title="Decode Stream Footer.">lzma_stream_footer_decode()</a> will always set this to the lowest value that supports all the features indicated by the Stream Flags field. The application must check that the version number set by the decoding functions is supported by the application. Otherwise it is possible that the application will decode the Stream incorrectly. </p>
-
-</div>
-</div>
-<a id="aaa65ed7a55a098f829f04dba25d0f212" name="aaa65ed7a55a098f829f04dba25d0f212"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aaa65ed7a55a098f829f04dba25d0f212">&#9670;&#160;</a></span>backward_size</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_stream_flags::backward_size</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Backward Size. </p>
-<p>Backward Size must be a multiple of four bytes. In this Stream format version, Backward Size is the size of the Index field.</p>
-<p>Backward Size isn't actually part of the Stream Flags field, but it is convenient to include in this structure anyway. Backward Size is present only in the Stream Footer. There is no need to initialize backward_size when encoding Stream Header.</p>
-<p><a class="el" href="stream__flags_8h.html#ae03198e464f0d296e601ff841e100805" title="Decode Stream Header.">lzma_stream_header_decode()</a> always sets backward_size to LZMA_VLI_UNKNOWN so that it is convenient to use <a class="el" href="stream__flags_8h.html#a3e25ca4205021302882a696283d45263" title="Compare two lzma_stream_flags structures.">lzma_stream_flags_compare()</a> when both Stream Header and Stream Footer have been decoded. </p>
-
-</div>
-</div>
-<a id="ab1052ea7047c8d67f127f33278166647" name="ab1052ea7047c8d67f127f33278166647"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab1052ea7047c8d67f127f33278166647">&#9670;&#160;</a></span>check</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> lzma_stream_flags::check</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check ID. </p>
-<p>This indicates the type of the integrity check calculated from uncompressed data. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>lzma/<a class="el" href="stream__flags_8h.html">stream_flags.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/sync_off.png b/doc/api/sync_off.png
deleted file mode 100644
index 9b04abe..0000000
--- a/doc/api/sync_off.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/sync_on.png b/doc/api/sync_on.png
deleted file mode 100644
index 34a5b8b..0000000
--- a/doc/api/sync_on.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/tab_a.png b/doc/api/tab_a.png
deleted file mode 100644
index 3181cdf..0000000
--- a/doc/api/tab_a.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/tab_ad.png b/doc/api/tab_ad.png
deleted file mode 100644
index 3615386..0000000
--- a/doc/api/tab_ad.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/tab_b.png b/doc/api/tab_b.png
deleted file mode 100644
index 3feec4f..0000000
--- a/doc/api/tab_b.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/tab_bd.png b/doc/api/tab_bd.png
deleted file mode 100644
index 9fd6635..0000000
--- a/doc/api/tab_bd.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/tab_h.png b/doc/api/tab_h.png
deleted file mode 100644
index abb3d3d..0000000
--- a/doc/api/tab_h.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/tab_hd.png b/doc/api/tab_hd.png
deleted file mode 100644
index c59e413..0000000
--- a/doc/api/tab_hd.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/tab_s.png b/doc/api/tab_s.png
deleted file mode 100644
index a3f26f5..0000000
--- a/doc/api/tab_s.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/tab_sd.png b/doc/api/tab_sd.png
deleted file mode 100644
index 5d4917a..0000000
--- a/doc/api/tab_sd.png
+++ /dev/null
Binary files differ
diff --git a/doc/api/tabs.css b/doc/api/tabs.css
deleted file mode 100644
index b56f46e..0000000
--- a/doc/api/tabs.css
+++ /dev/null
@@ -1,62 +0,0 @@
-.tabs, .tabs2, .tabs3 {
- background-image: var(--nav-gradient-image);
- width: 100%;
- z-index: 101;
- font-size: var(--nav-font-size-level1);
- font-family: var(--font-family-nav);
- display: table;
-}
-
-.tabs2 {
- font-size: var(--nav-font-size-level2);
-}
-.tabs3 {
- font-size: var(--nav-font-size-level3);
-}
-
-.tablist {
- margin: 0;
- padding: 0;
- display: block;
-}
-
-.tablist li {
- float: left;
- display: table-cell;
- background-image: var(--nav-gradient-image);
- line-height: 36px;
- list-style: none;
-}
-
-.tablist a {
- display: block;
- padding: 0 20px;
- font-weight: bold;
- background-image:var(--nav-separator-image);
- background-repeat:no-repeat;
- background-position:right;
- color: var(--nav-text-normal-color);
- text-shadow: var(--nav-text-normal-shadow);
- text-decoration: none;
- outline: none;
-}
-
-.tabs3 .tablist a {
- padding: 0 10px;
-}
-
-.tablist a:hover {
- background-image: var(--nav-gradient-hover-image);
- background-repeat:repeat-x;
- color: var(--nav-text-hover-color);
- text-shadow: var(--nav-text-hover-shadow);
- text-decoration: none;
-}
-
-.tablist li.current a {
- background-image: var(--nav-gradient-active-image);
- background-repeat:repeat-x;
- color: var(--nav-text-active-color);
- text-shadow: var(--nav-text-active-shadow);
-}
-
diff --git a/doc/api/version_8h.html b/doc/api/version_8h.html
deleted file mode 100644
index fd27466..0000000
--- a/doc/api/version_8h.html
+++ /dev/null
@@ -1,239 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/version.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> &#124;
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle"><div class="title">version.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Version number.
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:aa0f450c9d3b0ff5f88b55888ed55701f"><td class="memItemLeft" align="right" valign="top"><a id="aa0f450c9d3b0ff5f88b55888ed55701f" name="aa0f450c9d3b0ff5f88b55888ed55701f"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_MAJOR</b>&#160;&#160;&#160;5</td></tr>
-<tr class="memdesc:aa0f450c9d3b0ff5f88b55888ed55701f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Major version number of the liblzma release. <br /></td></tr>
-<tr class="separator:aa0f450c9d3b0ff5f88b55888ed55701f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af8fd295cf8aa349b0731423ad7a56134"><td class="memItemLeft" align="right" valign="top"><a id="af8fd295cf8aa349b0731423ad7a56134" name="af8fd295cf8aa349b0731423ad7a56134"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_MINOR</b>&#160;&#160;&#160;4</td></tr>
-<tr class="memdesc:af8fd295cf8aa349b0731423ad7a56134"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minor version number of the liblzma release. <br /></td></tr>
-<tr class="separator:af8fd295cf8aa349b0731423ad7a56134"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8b550373cbff381f15d4308b852a3c2a"><td class="memItemLeft" align="right" valign="top"><a id="a8b550373cbff381f15d4308b852a3c2a" name="a8b550373cbff381f15d4308b852a3c2a"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_PATCH</b>&#160;&#160;&#160;5</td></tr>
-<tr class="memdesc:a8b550373cbff381f15d4308b852a3c2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Patch version number of the liblzma release. <br /></td></tr>
-<tr class="separator:a8b550373cbff381f15d4308b852a3c2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae289abe5dcc203c7cda9f6a9a2f36b3a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="version_8h.html#ae289abe5dcc203c7cda9f6a9a2f36b3a">LZMA_VERSION_STABILITY</a>&#160;&#160;&#160;LZMA_VERSION_STABILITY_STABLE</td></tr>
-<tr class="memdesc:ae289abe5dcc203c7cda9f6a9a2f36b3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version stability marker. <br /></td></tr>
-<tr class="separator:ae289abe5dcc203c7cda9f6a9a2f36b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7fd6169ff15ac7f01f94970359a331ea"><td class="memItemLeft" align="right" valign="top"><a id="a7fd6169ff15ac7f01f94970359a331ea" name="a7fd6169ff15ac7f01f94970359a331ea"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_COMMIT</b>&#160;&#160;&#160;&quot;&quot;</td></tr>
-<tr class="memdesc:a7fd6169ff15ac7f01f94970359a331ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Commit version number of the liblzma release. <br /></td></tr>
-<tr class="separator:a7fd6169ff15ac7f01f94970359a331ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5bc145ed7d9149eadb77e547ae8f1c5f"><td class="memItemLeft" align="right" valign="top"><a id="a5bc145ed7d9149eadb77e547ae8f1c5f" name="a5bc145ed7d9149eadb77e547ae8f1c5f"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_STABILITY_ALPHA</b>&#160;&#160;&#160;0</td></tr>
-<tr class="separator:a5bc145ed7d9149eadb77e547ae8f1c5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad53a96c53713062b4380f01fb115cd48"><td class="memItemLeft" align="right" valign="top"><a id="ad53a96c53713062b4380f01fb115cd48" name="ad53a96c53713062b4380f01fb115cd48"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_STABILITY_BETA</b>&#160;&#160;&#160;1</td></tr>
-<tr class="separator:ad53a96c53713062b4380f01fb115cd48"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a97f7ed9e90264388614837baf97a4d3b"><td class="memItemLeft" align="right" valign="top"><a id="a97f7ed9e90264388614837baf97a4d3b" name="a97f7ed9e90264388614837baf97a4d3b"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_STABILITY_STABLE</b>&#160;&#160;&#160;2</td></tr>
-<tr class="separator:a97f7ed9e90264388614837baf97a4d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a156c47ff34aa0c2b726d0daf799f10a0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="version_8h.html#a156c47ff34aa0c2b726d0daf799f10a0">LZMA_VERSION</a></td></tr>
-<tr class="memdesc:a156c47ff34aa0c2b726d0daf799f10a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile-time version number. <br /></td></tr>
-<tr class="separator:a156c47ff34aa0c2b726d0daf799f10a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a55a97e55fedce2c148796047ddc88c96"><td class="memItemLeft" align="right" valign="top"><a id="a55a97e55fedce2c148796047ddc88c96" name="a55a97e55fedce2c148796047ddc88c96"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_STABILITY_STRING</b>&#160;&#160;&#160;&quot;alpha&quot;</td></tr>
-<tr class="separator:a55a97e55fedce2c148796047ddc88c96"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0b89024f7a04da9b754abee2afe6df23"><td class="memItemLeft" align="right" valign="top"><a id="a0b89024f7a04da9b754abee2afe6df23" name="a0b89024f7a04da9b754abee2afe6df23"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_STRING_C_</b>(major, minor, patch, stability, commit)&#160;&#160;&#160; #major &quot;.&quot; #minor &quot;.&quot; #patch stability commit</td></tr>
-<tr class="separator:a0b89024f7a04da9b754abee2afe6df23"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad5614eaf4c2e9408a99bc2137c65ed17"><td class="memItemLeft" align="right" valign="top"><a id="ad5614eaf4c2e9408a99bc2137c65ed17" name="ad5614eaf4c2e9408a99bc2137c65ed17"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_STRING_C</b>(major, minor, patch, stability, commit)&#160;&#160;&#160; LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit)</td></tr>
-<tr class="separator:ad5614eaf4c2e9408a99bc2137c65ed17"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a57bb143c993c305a53e9aade831a546c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="version_8h.html#a57bb143c993c305a53e9aade831a546c">LZMA_VERSION_STRING</a></td></tr>
-<tr class="memdesc:a57bb143c993c305a53e9aade831a546c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile-time version as a string. <br /></td></tr>
-<tr class="separator:a57bb143c993c305a53e9aade831a546c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a72f929c9b9e8e730b790b3f8c80c3c80"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="version_8h.html#a72f929c9b9e8e730b790b3f8c80c3c80">lzma_version_number</a> (void) lzma_nothrow lzma_attr_const</td></tr>
-<tr class="memdesc:a72f929c9b9e8e730b790b3f8c80c3c80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run-time version number as an integer. <br /></td></tr>
-<tr class="separator:a72f929c9b9e8e730b790b3f8c80c3c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8998c1d8b4b5c2c1218bdfd58fdb1baa"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="version_8h.html#a8998c1d8b4b5c2c1218bdfd58fdb1baa">lzma_version_string</a> (void) lzma_nothrow lzma_attr_const</td></tr>
-<tr class="memdesc:a8998c1d8b4b5c2c1218bdfd58fdb1baa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run-time version as a string. <br /></td></tr>
-<tr class="separator:a8998c1d8b4b5c2c1218bdfd58fdb1baa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Version number. </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ae289abe5dcc203c7cda9f6a9a2f36b3a" name="ae289abe5dcc203c7cda9f6a9a2f36b3a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae289abe5dcc203c7cda9f6a9a2f36b3a">&#9670;&#160;</a></span>LZMA_VERSION_STABILITY</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_VERSION_STABILITY&#160;&#160;&#160;LZMA_VERSION_STABILITY_STABLE</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Version stability marker. </p>
-<p>This will always be one of three values:</p><ul>
-<li>LZMA_VERSION_STABILITY_ALPHA</li>
-<li>LZMA_VERSION_STABILITY_BETA</li>
-<li>LZMA_VERSION_STABILITY_STABLE </li>
-</ul>
-
-</div>
-</div>
-<a id="a156c47ff34aa0c2b726d0daf799f10a0" name="a156c47ff34aa0c2b726d0daf799f10a0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a156c47ff34aa0c2b726d0daf799f10a0">&#9670;&#160;</a></span>LZMA_VERSION</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_VERSION</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"> (<a class="code hl_define" href="version_8h.html#aa0f450c9d3b0ff5f88b55888ed55701f" title="Major version number of the liblzma release.">LZMA_VERSION_MAJOR</a> * UINT32_C(10000000) \</div>
-<div class="line"> + <a class="code hl_define" href="version_8h.html#af8fd295cf8aa349b0731423ad7a56134" title="Minor version number of the liblzma release.">LZMA_VERSION_MINOR</a> * UINT32_C(10000) \</div>
-<div class="line"> + <a class="code hl_define" href="version_8h.html#a8b550373cbff381f15d4308b852a3c2a" title="Patch version number of the liblzma release.">LZMA_VERSION_PATCH</a> * UINT32_C(10) \</div>
-<div class="line"> + <a class="code hl_define" href="version_8h.html#ae289abe5dcc203c7cda9f6a9a2f36b3a" title="Version stability marker.">LZMA_VERSION_STABILITY</a>)</div>
-</div><!-- fragment -->
-<p>Compile-time version number. </p>
-<p>The version number is of format xyyyzzzs where</p><ul>
-<li>x = major</li>
-<li>yyy = minor</li>
-<li>zzz = revision</li>
-<li>s indicates stability: 0 = alpha, 1 = beta, 2 = stable</li>
-</ul>
-<p>The same xyyyzzz triplet is never reused with different stability levels. For example, if 5.1.0alpha has been released, there will never be 5.1.0beta or 5.1.0 stable.</p>
-<dl class="section note"><dt>Note</dt><dd>The version number of liblzma has nothing to with the version number of Igor Pavlov's LZMA SDK. </dd></dl>
-
-</div>
-</div>
-<a id="a57bb143c993c305a53e9aade831a546c" name="a57bb143c993c305a53e9aade831a546c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a57bb143c993c305a53e9aade831a546c">&#9670;&#160;</a></span>LZMA_VERSION_STRING</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LZMA_VERSION_STRING</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"> LZMA_VERSION_STRING_C( \</div>
-<div class="line"> <a class="code hl_define" href="version_8h.html#aa0f450c9d3b0ff5f88b55888ed55701f" title="Major version number of the liblzma release.">LZMA_VERSION_MAJOR</a>, <a class="code hl_define" href="version_8h.html#af8fd295cf8aa349b0731423ad7a56134" title="Minor version number of the liblzma release.">LZMA_VERSION_MINOR</a>, \</div>
-<div class="line"> <a class="code hl_define" href="version_8h.html#a8b550373cbff381f15d4308b852a3c2a" title="Patch version number of the liblzma release.">LZMA_VERSION_PATCH</a>, LZMA_VERSION_STABILITY_STRING, \</div>
-<div class="line"> <a class="code hl_define" href="version_8h.html#a7fd6169ff15ac7f01f94970359a331ea" title="Commit version number of the liblzma release.">LZMA_VERSION_COMMIT</a>)</div>
-</div><!-- fragment -->
-<p>Compile-time version as a string. </p>
-<p>This can be for example "4.999.5alpha", "4.999.8beta", or "5.0.0" (stable versions don't have any "stable" suffix). In future, a snapshot built from source code repository may include an additional suffix, for example "4.999.8beta-21-g1d92". The commit ID won't be available in numeric form in LZMA_VERSION macro. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="a72f929c9b9e8e730b790b3f8c80c3c80" name="a72f929c9b9e8e730b790b3f8c80c3c80"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a72f929c9b9e8e730b790b3f8c80c3c80">&#9670;&#160;</a></span>lzma_version_number()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_version_number </td>
- <td>(</td>
- <td class="paramtype">void&#160;</td>
- <td class="paramname"></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Run-time version number as an integer. </p>
-<p>This allows an application to compare if it was built against the same, older, or newer version of liblzma that is currently running.</p>
-<dl class="section return"><dt>Returns</dt><dd>The value of LZMA_VERSION macro at the compile time of liblzma </dd></dl>
-
-</div>
-</div>
-<a id="a8998c1d8b4b5c2c1218bdfd58fdb1baa" name="a8998c1d8b4b5c2c1218bdfd58fdb1baa"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8998c1d8b4b5c2c1218bdfd58fdb1baa">&#9670;&#160;</a></span>lzma_version_string()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const char * lzma_version_string </td>
- <td>(</td>
- <td class="paramtype">void&#160;</td>
- <td class="paramname"></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Run-time version as a string. </p>
-<p>This function may be useful to display which version of liblzma an application is currently using.</p>
-<dl class="section return"><dt>Returns</dt><dd>Run-time version of liblzma </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/api/vli_8h.html b/doc/api/vli_8h.html
deleted file mode 100644
index 4e3da1f..0000000
--- a/doc/api/vli_8h.html
+++ /dev/null
@@ -1,323 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=11"/>
-<meta name="generator" content="Doxygen 1.9.7"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>liblzma (XZ Utils): lzma/vli.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-
-
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.4.5</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.7 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
- <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File&#160;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> &#124;
-<a href="#typedef-members">Typedefs</a> &#124;
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle"><div class="title">vli.h File Reference</div></div>
-</div><!--header-->
-<div class="contents">
-
-<p>Variable-length integer handling.
-<a href="#details">More...</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a7b782528bd1934db7c020adbedb20ec9"><td class="memItemLeft" align="right" valign="top"><a id="a7b782528bd1934db7c020adbedb20ec9" name="a7b782528bd1934db7c020adbedb20ec9"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VLI_MAX</b>&#160;&#160;&#160;(UINT64_MAX / 2)</td></tr>
-<tr class="memdesc:a7b782528bd1934db7c020adbedb20ec9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum supported value of a variable-length integer. <br /></td></tr>
-<tr class="separator:a7b782528bd1934db7c020adbedb20ec9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5a4b28254a30c859018b896ed371d69a"><td class="memItemLeft" align="right" valign="top"><a id="a5a4b28254a30c859018b896ed371d69a" name="a5a4b28254a30c859018b896ed371d69a"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VLI_UNKNOWN</b>&#160;&#160;&#160;UINT64_MAX</td></tr>
-<tr class="memdesc:a5a4b28254a30c859018b896ed371d69a"><td class="mdescLeft">&#160;</td><td class="mdescRight">VLI value to denote that the value is unknown. <br /></td></tr>
-<tr class="separator:a5a4b28254a30c859018b896ed371d69a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a063ecff4133aa2f8899b9fa3fdefd310"><td class="memItemLeft" align="right" valign="top"><a id="a063ecff4133aa2f8899b9fa3fdefd310" name="a063ecff4133aa2f8899b9fa3fdefd310"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VLI_BYTES_MAX</b>&#160;&#160;&#160;9</td></tr>
-<tr class="memdesc:a063ecff4133aa2f8899b9fa3fdefd310"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum supported encoded length of variable length integers. <br /></td></tr>
-<tr class="separator:a063ecff4133aa2f8899b9fa3fdefd310"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2d8bf5322898bfa11945848420585881"><td class="memItemLeft" align="right" valign="top"><a id="a2d8bf5322898bfa11945848420585881" name="a2d8bf5322898bfa11945848420585881"></a>
-#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VLI_C</b>(n)&#160;&#160;&#160;UINT64_C(n)</td></tr>
-<tr class="memdesc:a2d8bf5322898bfa11945848420585881"><td class="mdescLeft">&#160;</td><td class="mdescRight">VLI constant suffix. <br /></td></tr>
-<tr class="separator:a2d8bf5322898bfa11945848420585881"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4f67ed698215d865a2b87a95ab1320dd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a4f67ed698215d865a2b87a95ab1320dd">lzma_vli_is_valid</a>(vli)&#160;&#160;&#160; ((vli) &lt;= <a class="el" href="vli_8h.html#a7b782528bd1934db7c020adbedb20ec9">LZMA_VLI_MAX</a> || (vli) == <a class="el" href="vli_8h.html#a5a4b28254a30c859018b896ed371d69a">LZMA_VLI_UNKNOWN</a>)</td></tr>
-<tr class="memdesc:a4f67ed698215d865a2b87a95ab1320dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a variable-length integer. <br /></td></tr>
-<tr class="separator:a4f67ed698215d865a2b87a95ab1320dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:a1dbc0ffc3e72748f64df8f7f71898272"><td class="memItemLeft" align="right" valign="top">typedef uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a></td></tr>
-<tr class="memdesc:a1dbc0ffc3e72748f64df8f7f71898272"><td class="mdescLeft">&#160;</td><td class="mdescRight">Variable-length integer type. <br /></td></tr>
-<tr class="separator:a1dbc0ffc3e72748f64df8f7f71898272"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a50bbb77e9ec3b72c25586aa700c20970"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a50bbb77e9ec3b72c25586aa700c20970">lzma_vli_encode</a> (<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> vli, size_t *vli_pos, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow</td></tr>
-<tr class="memdesc:a50bbb77e9ec3b72c25586aa700c20970"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode a variable-length integer. <br /></td></tr>
-<tr class="separator:a50bbb77e9ec3b72c25586aa700c20970"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7b7d50e1074e0e2bcd81c29a5f7461c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a7b7d50e1074e0e2bcd81c29a5f7461c7">lzma_vli_decode</a> (<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> *vli, size_t *vli_pos, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow</td></tr>
-<tr class="memdesc:a7b7d50e1074e0e2bcd81c29a5f7461c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode a variable-length integer. <br /></td></tr>
-<tr class="separator:a7b7d50e1074e0e2bcd81c29a5f7461c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8d53e0b69934b43da8721fa6f1e8cc4f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a8d53e0b69934b43da8721fa6f1e8cc4f">lzma_vli_size</a> (<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> vli) lzma_nothrow lzma_attr_pure</td></tr>
-<tr class="memdesc:a8d53e0b69934b43da8721fa6f1e8cc4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of bytes required to encode a VLI. <br /></td></tr>
-<tr class="separator:a8d53e0b69934b43da8721fa6f1e8cc4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Variable-length integer handling. </p>
-<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead.</dd></dl>
-<p>In the .xz format, most integers are encoded in a variable-length representation, which is sometimes called little endian base-128 encoding. This saves space when smaller values are more likely than bigger values.</p>
-<p>The encoding scheme encodes seven bits to every byte, using minimum number of bytes required to represent the given value. Encodings that use non-minimum number of bytes are invalid, thus every integer has exactly one encoded representation. The maximum number of bits in a VLI is 63, thus the vli argument must be less than or equal to UINT64_MAX / 2. You should use LZMA_VLI_MAX for clarity. </p>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="a4f67ed698215d865a2b87a95ab1320dd" name="a4f67ed698215d865a2b87a95ab1320dd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4f67ed698215d865a2b87a95ab1320dd">&#9670;&#160;</a></span>lzma_vli_is_valid</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define lzma_vli_is_valid</td>
- <td>(</td>
- <td class="paramtype">&#160;</td>
- <td class="paramname">vli</td><td>)</td>
- <td>&#160;&#160;&#160; ((vli) &lt;= <a class="el" href="vli_8h.html#a7b782528bd1934db7c020adbedb20ec9">LZMA_VLI_MAX</a> || (vli) == <a class="el" href="vli_8h.html#a5a4b28254a30c859018b896ed371d69a">LZMA_VLI_UNKNOWN</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Validate a variable-length integer. </p>
-<p>This is useful to test that application has given acceptable values for example in the uncompressed_size and compressed_size variables.</p>
-<dl class="section return"><dt>Returns</dt><dd>True if the integer is representable as VLI or if it indicates unknown value. False if the integer cannot be represented as VLI. </dd></dl>
-
-</div>
-</div>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a id="a1dbc0ffc3e72748f64df8f7f71898272" name="a1dbc0ffc3e72748f64df8f7f71898272"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1dbc0ffc3e72748f64df8f7f71898272">&#9670;&#160;</a></span>lzma_vli</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef uint64_t <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Variable-length integer type. </p>
-<p>Valid VLI values are in the range [0, LZMA_VLI_MAX]. Unknown value is indicated with LZMA_VLI_UNKNOWN, which is the maximum value of the underlying integer type.</p>
-<p>lzma_vli will be uint64_t for the foreseeable future. If a bigger size is needed in the future, it is guaranteed that 2 * LZMA_VLI_MAX will not overflow lzma_vli. This simplifies integer overflow detection. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="a50bbb77e9ec3b72c25586aa700c20970" name="a50bbb77e9ec3b72c25586aa700c20970"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a50bbb77e9ec3b72c25586aa700c20970">&#9670;&#160;</a></span>lzma_vli_encode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_vli_encode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>vli</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>vli_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&#160;</td>
- <td class="paramname"><em>out</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>out_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>out_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Encode a variable-length integer. </p>
-<p>This function has two modes: single-call and multi-call. Single-call mode encodes the whole integer at once; it is an error if the output buffer is too small. Multi-call mode saves the position in *vli_pos, and thus it is possible to continue encoding if the buffer becomes full before the whole integer has been encoded.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir"></td><td class="paramname">vli</td><td>Integer to be encoded </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">vli_pos</td><td>How many VLI-encoded bytes have already been written out. When starting to encode a new integer in multi-call mode, *vli_pos must be set to zero. To use single-call encoding, set vli_pos to NULL. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Slightly different return values are used in multi-call and single-call modes.</dd></dl>
-<p>Single-call (vli_pos == NULL):</p><ul>
-<li>LZMA_OK: Integer successfully encoded.</li>
-<li>LZMA_PROG_ERROR: Arguments are not sane. This can be due to too little output space; single-call mode doesn't use LZMA_BUF_ERROR, since the application should have checked the encoded size with <a class="el" href="vli_8h.html#a8d53e0b69934b43da8721fa6f1e8cc4f" title="Get the number of bytes required to encode a VLI.">lzma_vli_size()</a>.</li>
-</ul>
-<p>Multi-call (vli_pos != NULL):</p><ul>
-<li>LZMA_OK: So far all OK, but the integer is not completely written out yet.</li>
-<li>LZMA_STREAM_END: Integer successfully encoded.</li>
-<li>LZMA_BUF_ERROR: No output space was provided.</li>
-<li>LZMA_PROG_ERROR: Arguments are not sane. </li>
-</ul>
-
-</div>
-</div>
-<a id="a7b7d50e1074e0e2bcd81c29a5f7461c7" name="a7b7d50e1074e0e2bcd81c29a5f7461c7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7b7d50e1074e0e2bcd81c29a5f7461c7">&#9670;&#160;</a></span>lzma_vli_decode()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_vli_decode </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> *&#160;</td>
- <td class="paramname"><em>vli</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>vli_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>in</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t *&#160;</td>
- <td class="paramname"><em>in_pos</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t&#160;</td>
- <td class="paramname"><em>in_size</em>&#160;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Decode a variable-length integer. </p>
-<p>Like <a class="el" href="vli_8h.html#a50bbb77e9ec3b72c25586aa700c20970" title="Encode a variable-length integer.">lzma_vli_encode()</a>, this function has single-call and multi-call modes.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">vli</td><td>Pointer to decoded integer. The decoder will initialize it to zero when *vli_pos == 0, so application isn't required to initialize *vli. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">vli_pos</td><td>How many bytes have already been decoded. When starting to decode a new integer in multi-call mode, *vli_pos must be initialized to zero. To use single-call decoding, set vli_pos to NULL. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">in_pos</td><td>The next byte will be read from in[*in_pos]. </td></tr>
- <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer; the first byte that won't be read is in[in_size].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Slightly different return values are used in multi-call and single-call modes.</dd></dl>
-<p>Single-call (vli_pos == NULL):</p><ul>
-<li>LZMA_OK: Integer successfully decoded.</li>
-<li>LZMA_DATA_ERROR: Integer is corrupt. This includes hitting the end of the input buffer before the whole integer was decoded; providing no input at all will use LZMA_DATA_ERROR.</li>
-<li>LZMA_PROG_ERROR: Arguments are not sane.</li>
-</ul>
-<p>Multi-call (vli_pos != NULL):</p><ul>
-<li>LZMA_OK: So far all OK, but the integer is not completely decoded yet.</li>
-<li>LZMA_STREAM_END: Integer successfully decoded.</li>
-<li>LZMA_DATA_ERROR: Integer is corrupt.</li>
-<li>LZMA_BUF_ERROR: No input was provided.</li>
-<li>LZMA_PROG_ERROR: Arguments are not sane. </li>
-</ul>
-
-</div>
-</div>
-<a id="a8d53e0b69934b43da8721fa6f1e8cc4f" name="a8d53e0b69934b43da8721fa6f1e8cc4f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8d53e0b69934b43da8721fa6f1e8cc4f">&#9670;&#160;</a></span>lzma_vli_size()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t lzma_vli_size </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
- <td class="paramname"><em>vli</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Get the number of bytes required to encode a VLI. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">vli</td><td>Integer whose encoded size is to be determined</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Number of bytes on success (1-9). If vli isn't valid, zero is returned. </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
-</small></address>
-</body>
-</html>
diff --git a/doc/examples/01_compress_easy.c b/doc/examples/01_compress_easy.c
index ec32a37..31bcf92 100644
--- a/doc/examples/01_compress_easy.c
+++ b/doc/examples/01_compress_easy.c
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: 0BSD
+
///////////////////////////////////////////////////////////////////////////////
//
/// \file 01_compress_easy.c
@@ -9,9 +11,6 @@
//
// Author: Lasse Collin
//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
///////////////////////////////////////////////////////////////////////////////
#include <stdbool.h>
@@ -27,7 +26,7 @@ show_usage_and_exit(const char *argv0)
{
fprintf(stderr, "Usage: %s PRESET < INFILE > OUTFILE\n"
"PRESET is a number 0-9 and can optionally be "
- "followed by `e' to indicate extreme preset\n",
+ "followed by 'e' to indicate extreme preset\n",
argv0);
exit(EXIT_FAILURE);
}
diff --git a/doc/examples/02_decompress.c b/doc/examples/02_decompress.c
index 98339be..a87a5d3 100644
--- a/doc/examples/02_decompress.c
+++ b/doc/examples/02_decompress.c
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: 0BSD
+
///////////////////////////////////////////////////////////////////////////////
//
/// \file 02_decompress.c
@@ -9,9 +11,6 @@
//
// Author: Lasse Collin
//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
///////////////////////////////////////////////////////////////////////////////
#include <stdbool.h>
diff --git a/doc/examples/03_compress_custom.c b/doc/examples/03_compress_custom.c
index 40c85e3..57797b8 100644
--- a/doc/examples/03_compress_custom.c
+++ b/doc/examples/03_compress_custom.c
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: 0BSD
+
///////////////////////////////////////////////////////////////////////////////
//
/// \file 03_compress_custom.c
@@ -9,9 +11,6 @@
//
// Author: Lasse Collin
//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
///////////////////////////////////////////////////////////////////////////////
#include <stdbool.h>
diff --git a/doc/examples/04_compress_easy_mt.c b/doc/examples/04_compress_easy_mt.c
index efe5697..c721a66 100644
--- a/doc/examples/04_compress_easy_mt.c
+++ b/doc/examples/04_compress_easy_mt.c
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: 0BSD
+
///////////////////////////////////////////////////////////////////////////////
//
/// \file 04_compress_easy_mt.c
@@ -9,9 +11,6 @@
//
// Author: Lasse Collin
//
-// This file has been put into the public domain.
-// You can do whatever you want with this file.
-//
///////////////////////////////////////////////////////////////////////////////
#include <stdbool.h>
diff --git a/doc/examples/11_file_info.c b/doc/examples/11_file_info.c
new file mode 100644
index 0000000..caadd98
--- /dev/null
+++ b/doc/examples/11_file_info.c
@@ -0,0 +1,205 @@
+// SPDX-License-Identifier: 0BSD
+
+///////////////////////////////////////////////////////////////////////////////
+//
+/// \file 11_file_info.c
+/// \brief Get uncompressed size of .xz file(s)
+///
+/// Usage: ./11_file_info INFILE1.xz [INFILEn.xz]...
+///
+/// Example: ./11_file_info foo.xz
+//
+// Author: Lasse Collin
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <stdbool.h>
+#include <inttypes.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <lzma.h>
+
+
+static bool
+print_file_size(lzma_stream *strm, FILE *infile, const char *filename)
+{
+ // Get the file size. In standard C it can be done by seeking to
+ // the end of the file and then getting the file position.
+ // In POSIX one can use fstat() and then st_size from struct stat.
+ // Also note that fseek() and ftell() use long and thus don't support
+ // large files on 32-bit systems (POSIX versions fseeko() and
+ // ftello() can support large files).
+ if (fseek(infile, 0, SEEK_END)) {
+ fprintf(stderr, "Error seeking the file '%s': %s\n",
+ filename, strerror(errno));
+ return false;
+ }
+
+ const long file_size = ftell(infile);
+
+ // The decoder wants to start from the beginning of the .xz file.
+ rewind(infile);
+
+ // Initialize the decoder.
+ lzma_index *i;
+ lzma_ret ret = lzma_file_info_decoder(strm, &i, UINT64_MAX,
+ (uint64_t)file_size);
+ switch (ret) {
+ case LZMA_OK:
+ // Initialization succeeded.
+ break;
+
+ case LZMA_MEM_ERROR:
+ fprintf(stderr, "Out of memory when initializing "
+ "the .xz file info decoder\n");
+ return false;
+
+ case LZMA_PROG_ERROR:
+ default:
+ fprintf(stderr, "Unknown error, possibly a bug\n");
+ return false;
+ }
+
+ // This example program reuses the same lzma_stream structure
+ // for multiple files, so we need to reset this when starting
+ // a new file.
+ strm->avail_in = 0;
+
+ // Buffer for input data.
+ uint8_t inbuf[BUFSIZ];
+
+ // Pass data to the decoder and seek when needed.
+ while (true) {
+ if (strm->avail_in == 0) {
+ strm->next_in = inbuf;
+ strm->avail_in = fread(inbuf, 1, sizeof(inbuf),
+ infile);
+
+ if (ferror(infile)) {
+ fprintf(stderr,
+ "Error reading from '%s': %s\n",
+ filename, strerror(errno));
+ return false;
+ }
+
+ // We don't need to care about hitting the end of
+ // the file so no need to check for feof().
+ }
+
+ ret = lzma_code(strm, LZMA_RUN);
+
+ switch (ret) {
+ case LZMA_OK:
+ break;
+
+ case LZMA_SEEK_NEEDED:
+ // The cast is safe because liblzma won't ask us to
+ // seek past the known size of the input file which
+ // did fit into a long.
+ //
+ // NOTE: Remember to change these to off_t if you
+ // switch fseeko() or lseek().
+ if (fseek(infile, (long)(strm->seek_pos), SEEK_SET)) {
+ fprintf(stderr, "Error seeking the "
+ "file '%s': %s\n",
+ filename, strerror(errno));
+ return false;
+ }
+
+ // The old data in the inbuf is useless now. Set
+ // avail_in to zero so that we will read new input
+ // from the new file position on the next iteration
+ // of this loop.
+ strm->avail_in = 0;
+ break;
+
+ case LZMA_STREAM_END:
+ // File information was successfully decoded.
+ // See <lzma/index.h> for functions that can be
+ // used on it. In this example we just print
+ // the uncompressed size (in bytes) of
+ // the .xz file followed by its file name.
+ printf("%10" PRIu64 " %s\n",
+ lzma_index_uncompressed_size(i),
+ filename);
+
+ // Free the memory of the lzma_index structure.
+ lzma_index_end(i, NULL);
+
+ return true;
+
+ case LZMA_FORMAT_ERROR:
+ // .xz magic bytes weren't found.
+ fprintf(stderr, "The file '%s' is not "
+ "in the .xz format\n", filename);
+ return false;
+
+ case LZMA_OPTIONS_ERROR:
+ fprintf(stderr, "The file '%s' has .xz headers that "
+ "are not supported by this liblzma "
+ "version\n", filename);
+ return false;
+
+ case LZMA_DATA_ERROR:
+ fprintf(stderr, "The file '%s' is corrupt\n",
+ filename);
+ return false;
+
+ case LZMA_MEM_ERROR:
+ fprintf(stderr, "Memory allocation failed when "
+ "decoding the file '%s'\n", filename);
+ return false;
+
+ // LZMA_MEMLIMIT_ERROR shouldn't happen because we used
+ // UINT64_MAX as the limit.
+ //
+ // LZMA_BUF_ERROR shouldn't happen because we always provide
+ // new input when the input buffer is empty. The decoder
+ // knows the input file size and thus won't try to read past
+ // the end of the file.
+ case LZMA_MEMLIMIT_ERROR:
+ case LZMA_BUF_ERROR:
+ case LZMA_PROG_ERROR:
+ default:
+ fprintf(stderr, "Unknown error, possibly a bug\n");
+ return false;
+ }
+ }
+
+ // This line is never reached.
+}
+
+
+extern int
+main(int argc, char **argv)
+{
+ bool success = true;
+ lzma_stream strm = LZMA_STREAM_INIT;
+
+ for (int i = 1; i < argc; ++i) {
+ FILE *infile = fopen(argv[i], "rb");
+
+ if (infile == NULL) {
+ fprintf(stderr, "Cannot open the file '%s': %s\n",
+ argv[i], strerror(errno));
+ success = false;
+ }
+
+ success &= print_file_size(&strm, infile, argv[i]);
+
+ (void)fclose(infile);
+ }
+
+ lzma_end(&strm);
+
+ // Close stdout to catch possible write errors that can occur
+ // when pending data is flushed from the stdio buffers.
+ if (fclose(stdout)) {
+ fprintf(stderr, "Write error: %s\n", strerror(errno));
+ success = false;
+ }
+
+ return success ? EXIT_SUCCESS : EXIT_FAILURE;
+}
diff --git a/doc/examples/Makefile b/doc/examples/Makefile
index e8839d8..f5b9878 100644
--- a/doc/examples/Makefile
+++ b/doc/examples/Makefile
@@ -1,9 +1,5 @@
-#
+# SPDX-License-Identifier: 0BSD
# Author: Lasse Collin
-#
-# This file has been put into the public domain.
-# You can do whatever you want with this file.
-#
CC = c99
CFLAGS = -g
diff --git a/doc/examples_old/xz_pipe_comp.c b/doc/examples_old/xz_pipe_comp.c
deleted file mode 100644
index 9f9224b..0000000
--- a/doc/examples_old/xz_pipe_comp.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * xz_pipe_comp.c
- * A simple example of pipe-only xz compressor implementation.
- * version: 2010-07-12 - by Daniel Mealha Cabrita
- * Not copyrighted -- provided to the public domain.
- *
- * Compiling:
- * Link with liblzma. GCC example:
- * $ gcc -llzma xz_pipe_comp.c -o xz_pipe_comp
- *
- * Usage example:
- * $ cat some_file | ./xz_pipe_comp > some_file.xz
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <inttypes.h>
-#include <stdbool.h>
-#include <lzma.h>
-
-
-/* COMPRESSION SETTINGS */
-
-/* analogous to xz CLI options: -0 to -9 */
-#define COMPRESSION_LEVEL 6
-
-/* boolean setting, analogous to xz CLI option: -e */
-#define COMPRESSION_EXTREME true
-
-/* see: /usr/include/lzma/check.h LZMA_CHECK_* */
-#define INTEGRITY_CHECK LZMA_CHECK_CRC64
-
-
-/* read/write buffer sizes */
-#define IN_BUF_MAX 4096
-#define OUT_BUF_MAX 4096
-
-/* error codes */
-#define RET_OK 0
-#define RET_ERROR_INIT 1
-#define RET_ERROR_INPUT 2
-#define RET_ERROR_OUTPUT 3
-#define RET_ERROR_COMPRESSION 4
-
-
-/* note: in_file and out_file must be open already */
-int xz_compress (FILE *in_file, FILE *out_file)
-{
- uint32_t preset = COMPRESSION_LEVEL | (COMPRESSION_EXTREME ? LZMA_PRESET_EXTREME : 0);
- lzma_check check = INTEGRITY_CHECK;
- lzma_stream strm = LZMA_STREAM_INIT; /* alloc and init lzma_stream struct */
- uint8_t in_buf [IN_BUF_MAX];
- uint8_t out_buf [OUT_BUF_MAX];
- size_t in_len; /* length of useful data in in_buf */
- size_t out_len; /* length of useful data in out_buf */
- bool in_finished = false;
- bool out_finished = false;
- lzma_action action;
- lzma_ret ret_xz;
- int ret;
-
- ret = RET_OK;
-
- /* initialize xz encoder */
- ret_xz = lzma_easy_encoder (&strm, preset, check);
- if (ret_xz != LZMA_OK) {
- fprintf (stderr, "lzma_easy_encoder error: %d\n", (int) ret_xz);
- return RET_ERROR_INIT;
- }
-
- while ((! in_finished) && (! out_finished)) {
- /* read incoming data */
- in_len = fread (in_buf, 1, IN_BUF_MAX, in_file);
-
- if (feof (in_file)) {
- in_finished = true;
- }
- if (ferror (in_file)) {
- in_finished = true;
- ret = RET_ERROR_INPUT;
- }
-
- strm.next_in = in_buf;
- strm.avail_in = in_len;
-
- /* if no more data from in_buf, flushes the
- internal xz buffers and closes the xz data
- with LZMA_FINISH */
- action = in_finished ? LZMA_FINISH : LZMA_RUN;
-
- /* loop until there's no pending compressed output */
- do {
- /* out_buf is clean at this point */
- strm.next_out = out_buf;
- strm.avail_out = OUT_BUF_MAX;
-
- /* compress data */
- ret_xz = lzma_code (&strm, action);
-
- if ((ret_xz != LZMA_OK) && (ret_xz != LZMA_STREAM_END)) {
- fprintf (stderr, "lzma_code error: %d\n", (int) ret_xz);
- out_finished = true;
- ret = RET_ERROR_COMPRESSION;
- } else {
- /* write compressed data */
- out_len = OUT_BUF_MAX - strm.avail_out;
- fwrite (out_buf, 1, out_len, out_file);
- if (ferror (out_file)) {
- out_finished = true;
- ret = RET_ERROR_OUTPUT;
- }
- }
- } while (strm.avail_out == 0);
- }
-
- lzma_end (&strm);
- return ret;
-}
-
-int main ()
-{
- int ret;
-
- ret = xz_compress (stdin, stdout);
- return ret;
-}
-
diff --git a/doc/examples_old/xz_pipe_decomp.c b/doc/examples_old/xz_pipe_decomp.c
deleted file mode 100644
index fb5ad89..0000000
--- a/doc/examples_old/xz_pipe_decomp.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * xz_pipe_decomp.c
- * A simple example of pipe-only xz decompressor implementation.
- * version: 2012-06-14 - by Daniel Mealha Cabrita
- * Not copyrighted -- provided to the public domain.
- *
- * Compiling:
- * Link with liblzma. GCC example:
- * $ gcc -llzma xz_pipe_decomp.c -o xz_pipe_decomp
- *
- * Usage example:
- * $ cat some_file.xz | ./xz_pipe_decomp > some_file
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <inttypes.h>
-#include <stdbool.h>
-#include <lzma.h>
-
-
-/* read/write buffer sizes */
-#define IN_BUF_MAX 4096
-#define OUT_BUF_MAX 4096
-
-/* error codes */
-#define RET_OK 0
-#define RET_ERROR_INIT 1
-#define RET_ERROR_INPUT 2
-#define RET_ERROR_OUTPUT 3
-#define RET_ERROR_DECOMPRESSION 4
-
-
-/* note: in_file and out_file must be open already */
-int xz_decompress (FILE *in_file, FILE *out_file)
-{
- lzma_stream strm = LZMA_STREAM_INIT; /* alloc and init lzma_stream struct */
- const uint32_t flags = LZMA_TELL_UNSUPPORTED_CHECK | LZMA_CONCATENATED;
- const uint64_t memory_limit = UINT64_MAX; /* no memory limit */
- uint8_t in_buf [IN_BUF_MAX];
- uint8_t out_buf [OUT_BUF_MAX];
- size_t in_len; /* length of useful data in in_buf */
- size_t out_len; /* length of useful data in out_buf */
- bool in_finished = false;
- bool out_finished = false;
- lzma_action action;
- lzma_ret ret_xz;
- int ret;
-
- ret = RET_OK;
-
- /* initialize xz decoder */
- ret_xz = lzma_stream_decoder (&strm, memory_limit, flags);
- if (ret_xz != LZMA_OK) {
- fprintf (stderr, "lzma_stream_decoder error: %d\n", (int) ret_xz);
- return RET_ERROR_INIT;
- }
-
- while ((! in_finished) && (! out_finished)) {
- /* read incoming data */
- in_len = fread (in_buf, 1, IN_BUF_MAX, in_file);
-
- if (feof (in_file)) {
- in_finished = true;
- }
- if (ferror (in_file)) {
- in_finished = true;
- ret = RET_ERROR_INPUT;
- }
-
- strm.next_in = in_buf;
- strm.avail_in = in_len;
-
- /* if no more data from in_buf, flushes the
- internal xz buffers and closes the decompressed data
- with LZMA_FINISH */
- action = in_finished ? LZMA_FINISH : LZMA_RUN;
-
- /* loop until there's no pending decompressed output */
- do {
- /* out_buf is clean at this point */
- strm.next_out = out_buf;
- strm.avail_out = OUT_BUF_MAX;
-
- /* decompress data */
- ret_xz = lzma_code (&strm, action);
-
- if ((ret_xz != LZMA_OK) && (ret_xz != LZMA_STREAM_END)) {
- fprintf (stderr, "lzma_code error: %d\n", (int) ret_xz);
- out_finished = true;
- ret = RET_ERROR_DECOMPRESSION;
- } else {
- /* write decompressed data */
- out_len = OUT_BUF_MAX - strm.avail_out;
- fwrite (out_buf, 1, out_len, out_file);
- if (ferror (out_file)) {
- out_finished = true;
- ret = RET_ERROR_OUTPUT;
- }
- }
- } while (strm.avail_out == 0);
- }
-
- /* Bug fix (2012-06-14): If no errors were detected, check
- that the last lzma_code() call returned LZMA_STREAM_END.
- If not, the file is probably truncated. */
- if ((ret == RET_OK) && (ret_xz != LZMA_STREAM_END)) {
- fprintf (stderr, "Input truncated or corrupt\n");
- ret = RET_ERROR_DECOMPRESSION;
- }
-
- lzma_end (&strm);
- return ret;
-}
-
-int main ()
-{
- int ret;
-
- ret = xz_decompress (stdin, stdout);
- return ret;
-}
-
diff --git a/doc/lzma-file-format.txt b/doc/lzma-file-format.txt
index 4865def..8cce5dc 100644
--- a/doc/lzma-file-format.txt
+++ b/doc/lzma-file-format.txt
@@ -40,10 +40,10 @@ The .lzma File Format
0.2. Changes
- Last modified: 2022-07-13 21:00+0300
+ Last modified: 2024-04-08 17:35+0300
- Compared to the previous version (2011-04-12 11:55+0300)
- the section 1.1.3 was modified to allow End of Payload Marker
+ From version 2011-04-12 11:55+0300 to 2022-07-13 21:00+0300:
+ The section 1.1.3 was modified to allow End of Payload Marker
with a known Uncompressed Size.
@@ -157,17 +157,17 @@ The .lzma File Format
2. References
LZMA SDK - The original LZMA implementation
- http://7-zip.org/sdk.html
+ https://7-zip.org/sdk.html
7-Zip
- http://7-zip.org/
+ https://7-zip.org/
LZMA Utils - LZMA adapted to POSIX-like systems
- http://tukaani.org/lzma/
+ https://tukaani.org/lzma/
XZ Utils - The next generation of LZMA Utils
- http://tukaani.org/xz/
+ https://tukaani.org/xz/
The .xz file format - The successor of the .lzma format
- http://tukaani.org/xz/xz-file-format.txt
+ https://tukaani.org/xz/xz-file-format.txt
diff --git a/doc/man/pdf-a4/lzmainfo-a4.pdf b/doc/man/pdf-a4/lzmainfo-a4.pdf
deleted file mode 100644
index 0ee526f..0000000
--- a/doc/man/pdf-a4/lzmainfo-a4.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-a4/xz-a4.pdf b/doc/man/pdf-a4/xz-a4.pdf
deleted file mode 100644
index 5f1a30c..0000000
--- a/doc/man/pdf-a4/xz-a4.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-a4/xzdec-a4.pdf b/doc/man/pdf-a4/xzdec-a4.pdf
deleted file mode 100644
index 35f2059..0000000
--- a/doc/man/pdf-a4/xzdec-a4.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-a4/xzdiff-a4.pdf b/doc/man/pdf-a4/xzdiff-a4.pdf
deleted file mode 100644
index 1189d84..0000000
--- a/doc/man/pdf-a4/xzdiff-a4.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-a4/xzgrep-a4.pdf b/doc/man/pdf-a4/xzgrep-a4.pdf
deleted file mode 100644
index 2cb3528..0000000
--- a/doc/man/pdf-a4/xzgrep-a4.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-a4/xzless-a4.pdf b/doc/man/pdf-a4/xzless-a4.pdf
deleted file mode 100644
index 4a8e8e6..0000000
--- a/doc/man/pdf-a4/xzless-a4.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-a4/xzmore-a4.pdf b/doc/man/pdf-a4/xzmore-a4.pdf
deleted file mode 100644
index 687074b..0000000
--- a/doc/man/pdf-a4/xzmore-a4.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-letter/lzmainfo-letter.pdf b/doc/man/pdf-letter/lzmainfo-letter.pdf
deleted file mode 100644
index d953045..0000000
--- a/doc/man/pdf-letter/lzmainfo-letter.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-letter/xz-letter.pdf b/doc/man/pdf-letter/xz-letter.pdf
deleted file mode 100644
index 440f294..0000000
--- a/doc/man/pdf-letter/xz-letter.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-letter/xzdec-letter.pdf b/doc/man/pdf-letter/xzdec-letter.pdf
deleted file mode 100644
index 83c6bb2..0000000
--- a/doc/man/pdf-letter/xzdec-letter.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-letter/xzdiff-letter.pdf b/doc/man/pdf-letter/xzdiff-letter.pdf
deleted file mode 100644
index 9c7ab61..0000000
--- a/doc/man/pdf-letter/xzdiff-letter.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-letter/xzgrep-letter.pdf b/doc/man/pdf-letter/xzgrep-letter.pdf
deleted file mode 100644
index 8303764..0000000
--- a/doc/man/pdf-letter/xzgrep-letter.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-letter/xzless-letter.pdf b/doc/man/pdf-letter/xzless-letter.pdf
deleted file mode 100644
index 9a8e231..0000000
--- a/doc/man/pdf-letter/xzless-letter.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/pdf-letter/xzmore-letter.pdf b/doc/man/pdf-letter/xzmore-letter.pdf
deleted file mode 100644
index ef60bbc..0000000
--- a/doc/man/pdf-letter/xzmore-letter.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/man/txt/lzmainfo.txt b/doc/man/txt/lzmainfo.txt
index fa4e51c..74208c6 100644
--- a/doc/man/txt/lzmainfo.txt
+++ b/doc/man/txt/lzmainfo.txt
@@ -1,7 +1,5 @@
LZMAINFO(1) XZ Utils LZMAINFO(1)
-
-
NAME
lzmainfo - show information stored in the .lzma file header
@@ -14,9 +12,9 @@ DESCRIPTION
prints it to standard output in human readable format. If no files are
given or file is -, standard input is read.
- Usually the most interesting information is the uncompressed size and
- the dictionary size. Uncompressed size can be shown only if the file
- is in the non-streamed .lzma format variant. The amount of memory re-
+ Usually the most interesting information is the uncompressed size and
+ the dictionary size. Uncompressed size can be shown only if the file
+ is in the non-streamed .lzma format variant. The amount of memory re-
quired to decompress the file is a few dozen kilobytes plus the dictio-
nary size.
@@ -35,6 +33,4 @@ BUGS
SEE ALSO
xz(1)
-
-
Tukaani 2013-06-30 LZMAINFO(1)
diff --git a/doc/man/txt/xz.txt b/doc/man/txt/xz.txt
index 4fec85b..b543312 100644
--- a/doc/man/txt/xz.txt
+++ b/doc/man/txt/xz.txt
@@ -1,7 +1,5 @@
XZ(1) XZ Utils XZ(1)
-
-
NAME
xz, unxz, xzcat, lzma, unlzma, lzcat - Compress or decompress .xz and
.lzma files
@@ -30,36 +28,36 @@ DESCRIPTION
xz compresses or decompresses each file according to the selected oper-
ation mode. If no files are given or file is -, xz reads from standard
input and writes the processed data to standard output. xz will refuse
- (display an error and skip the file) to write compressed data to stan-
- dard output if it is a terminal. Similarly, xz will refuse to read
+ (display an error and skip the file) to write compressed data to stan-
+ dard output if it is a terminal. Similarly, xz will refuse to read
compressed data from standard input if it is a terminal.
- Unless --stdout is specified, files other than - are written to a new
+ Unless --stdout is specified, files other than - are written to a new
file whose name is derived from the source file name:
- o When compressing, the suffix of the target file format (.xz or
- .lzma) is appended to the source filename to get the target file-
+ o When compressing, the suffix of the target file format (.xz or
+ .lzma) is appended to the source filename to get the target file-
name.
- o When decompressing, the .xz, .lzma, or .lz suffix is removed from
- the filename to get the target filename. xz also recognizes the
+ o When decompressing, the .xz, .lzma, or .lz suffix is removed from
+ the filename to get the target filename. xz also recognizes the
suffixes .txz and .tlz, and replaces them with the .tar suffix.
- If the target file already exists, an error is displayed and the file
+ If the target file already exists, an error is displayed and the file
is skipped.
- Unless writing to standard output, xz will display a warning and skip
+ Unless writing to standard output, xz will display a warning and skip
the file if any of the following applies:
- o File is not a regular file. Symbolic links are not followed, and
+ o File is not a regular file. Symbolic links are not followed, and
thus they are not considered to be regular files.
o File has more than one hard link.
o File has setuid, setgid, or sticky bit set.
- o The operation mode is set to compress and the file already has a
- suffix of the target file format (.xz or .txz when compressing to
+ o The operation mode is set to compress and the file already has a
+ suffix of the target file format (.xz or .txz when compressing to
the .xz format, and .lzma or .tlz when compressing to the .lzma for-
mat).
@@ -71,7 +69,7 @@ DESCRIPTION
owner, group, permissions, access time, and modification time from the
source file to the target file. If copying the group fails, the per-
missions are modified so that the target file doesn't become accessible
- to users who didn't have permission to access the source file. xz
+ to users who didn't have permission to access the source file. xz
doesn't support copying other metadata like access control lists or ex-
tended attributes yet.
@@ -85,8 +83,8 @@ DESCRIPTION
cally updating progress indicator.
Memory usage
- The memory usage of xz varies from a few hundred kilobytes to several
- gigabytes depending on the compression settings. The settings used
+ The memory usage of xz varies from a few hundred kilobytes to several
+ gigabytes depending on the compression settings. The settings used
when compressing a file determine the memory requirements of the decom-
pressor. Typically the decompressor needs 5 % to 20 % of the amount of
memory that the compressor needed when creating the file. For example,
@@ -101,7 +99,7 @@ DESCRIPTION
processes, relying on it wasn't deemed to be flexible enough (for exam-
ple, using ulimit(1) to limit virtual memory tends to cripple mmap(2)).
- The memory usage limiter can be enabled with the command line option
+ The memory usage limiter can be enabled with the command line option
--memlimit=limit. Often it is more convenient to enable the limiter by
default by setting the environment variable XZ_DEFAULTS, for example,
XZ_DEFAULTS=--memlimit=150MiB. It is possible to set the limits sepa-
@@ -125,7 +123,7 @@ DESCRIPTION
It is possible to concatenate .xz files as is. xz will decompress such
files as if they were a single .xz file.
- It is possible to insert padding between the concatenated parts or af-
+ It is possible to insert padding between the concatenated parts or af-
ter the last part. The padding must consist of null bytes and the size
of the padding must be a multiple of four bytes. This can be useful,
for example, if the .xz file is stored on a medium that measures file
@@ -153,34 +151,34 @@ OPTIONS
supported by the option.
Operation mode
- If multiple operation mode options are given, the last one takes ef-
+ If multiple operation mode options are given, the last one takes ef-
fect.
-z, --compress
- Compress. This is the default operation mode when no operation
- mode option is specified and no other operation mode is implied
+ Compress. This is the default operation mode when no operation
+ mode option is specified and no other operation mode is implied
from the command name (for example, unxz implies --decompress).
-d, --decompress, --uncompress
Decompress.
-t, --test
- Test the integrity of compressed files. This option is equiva-
- lent to --decompress --stdout except that the decompressed data
- is discarded instead of being written to standard output. No
+ Test the integrity of compressed files. This option is equiva-
+ lent to --decompress --stdout except that the decompressed data
+ is discarded instead of being written to standard output. No
files are created or removed.
-l, --list
- Print information about compressed files. No uncompressed out-
- put is produced, and no files are created or removed. In list
- mode, the program cannot read the compressed data from standard
+ Print information about compressed files. No uncompressed out-
+ put is produced, and no files are created or removed. In list
+ mode, the program cannot read the compressed data from standard
input or from other unseekable sources.
- The default listing shows basic information about files, one
- file per line. To get more detailed information, use also the
- --verbose option. For even more information, use --verbose
- twice, but note that this may be slow, because getting all the
- extra information requires many seeks. The width of verbose
+ The default listing shows basic information about files, one
+ file per line. To get more detailed information, use also the
+ --verbose option. For even more information, use --verbose
+ twice, but note that this may be slow, because getting all the
+ extra information requires many seeks. The width of verbose
output exceeds 80 characters, so piping the output to, for exam-
ple, less -S may be convenient if the terminal isn't wide
enough.
@@ -206,19 +204,19 @@ OPTIONS
o If the target file already exists, delete it before compress-
ing or decompressing.
- o Compress or decompress even if the input is a symbolic link
- to a regular file, has more than one hard link, or has the
- setuid, setgid, or sticky bit set. The setuid, setgid, and
+ o Compress or decompress even if the input is a symbolic link
+ to a regular file, has more than one hard link, or has the
+ setuid, setgid, or sticky bit set. The setuid, setgid, and
sticky bits are not copied to the target file.
- o When used with --decompress --stdout and xz cannot recognize
- the type of the source file, copy the source file as is to
- standard output. This allows xzcat --force to be used like
+ o When used with --decompress --stdout and xz cannot recognize
+ the type of the source file, copy the source file as is to
+ standard output. This allows xzcat --force to be used like
cat(1) for files that have not been compressed with xz. Note
that in future, xz might support new compressed file formats,
- which may make xz decompress more types of files instead of
- copying them as is to standard output. --format=format can
- be used to restrict xz to decompress only a single file for-
+ which may make xz decompress more types of files instead of
+ copying them as is to standard output. --format=format can
+ be used to restrict xz to decompress only a single file for-
mat.
-c, --stdout, --to-stdout
@@ -227,18 +225,18 @@ OPTIONS
--single-stream
Decompress only the first .xz stream, and silently ignore possi-
- ble remaining input data following the stream. Normally such
+ ble remaining input data following the stream. Normally such
trailing garbage makes xz display an error.
- xz never decompresses more than one stream from .lzma files or
- raw streams, but this option still makes xz ignore the possible
+ xz never decompresses more than one stream from .lzma files or
+ raw streams, but this option still makes xz ignore the possible
trailing data after the .lzma file or raw stream.
- This option has no effect if the operation mode is not --decom-
+ This option has no effect if the operation mode is not --decom-
press or --test.
--no-sparse
- Disable creation of sparse files. By default, if decompressing
+ Disable creation of sparse files. By default, if decompressing
into a regular file, xz tries to make the file sparse if the de-
compressed data contains long sequences of binary zeros. It
also works when writing to standard output as long as standard
@@ -249,12 +247,12 @@ OPTIONS
-S .suf, --suffix=.suf
When compressing, use .suf as the suffix for the target file in-
- stead of .xz or .lzma. If not writing to standard output and
- the source file already has the suffix .suf, a warning is dis-
+ stead of .xz or .lzma. If not writing to standard output and
+ the source file already has the suffix .suf, a warning is dis-
played and the file is skipped.
- When decompressing, recognize files with the suffix .suf in ad-
- dition to files with the .xz, .txz, .lzma, .tlz, or .lz suffix.
+ When decompressing, recognize files with the suffix .suf in ad-
+ dition to files with the .xz, .txz, .lzma, .tlz, or .lz suffix.
If the source file has the suffix .suf, the suffix is removed to
get the target filename.
@@ -271,16 +269,16 @@ OPTIONS
fore the filenames read from file.
--files0[=file]
- This is identical to --files[=file] except that each filename
+ This is identical to --files[=file] except that each filename
must be terminated with the null character.
Basic file format and compression options
-F format, --format=format
Specify the file format to compress or decompress:
- auto This is the default. When compressing, auto is equiva-
- lent to xz. When decompressing, the format of the input
- file is automatically detected. Note that raw streams
+ auto This is the default. When compressing, auto is equiva-
+ lent to xz. When decompressing, the format of the input
+ file is automatically detected. Note that raw streams
(created with --format=raw) cannot be auto-detected.
xz Compress to the .xz file format, or accept only .xz files
@@ -297,14 +295,14 @@ OPTIONS
The .lz format version 0 and the unextended version 1 are
supported. Version 0 files were produced by lzip 1.3 and
- older. Such files aren't common but may be found from
- file archives as a few source packages were released in
- this format. People might have old personal files in
- this format too. Decompression support for the format
+ older. Such files aren't common but may be found from
+ file archives as a few source packages were released in
+ this format. People might have old personal files in
+ this format too. Decompression support for the format
version 0 was removed in lzip 1.18.
- lzip 1.4 and later create files in the format version 1.
- The sync flush marker extension to the format version 1
+ lzip 1.4 and later create files in the format version 1.
+ The sync flush marker extension to the format version 1
was added in lzip 1.6. This extension is rarely used and
isn't supported by xz (diagnosed as corrupt input).
@@ -324,22 +322,22 @@ OPTIONS
Supported check types:
- none Don't calculate an integrity check at all. This is usu-
- ally a bad idea. This can be useful when integrity of
+ none Don't calculate an integrity check at all. This is usu-
+ ally a bad idea. This can be useful when integrity of
the data is verified by other means anyway.
- crc32 Calculate CRC32 using the polynomial from IEEE-802.3
+ crc32 Calculate CRC32 using the polynomial from IEEE-802.3
(Ethernet).
crc64 Calculate CRC64 using the polynomial from ECMA-182. This
is the default, since it is slightly better than CRC32 at
- detecting damaged files and the speed difference is neg-
+ detecting damaged files and the speed difference is neg-
ligible.
- sha256 Calculate SHA-256. This is somewhat slower than CRC32
+ sha256 Calculate SHA-256. This is somewhat slower than CRC32
and CRC64.
- Integrity of the .xz headers is always verified with CRC32. It
+ Integrity of the .xz headers is always verified with CRC32. It
is not possible to change or disable it.
--ignore-check
@@ -352,7 +350,7 @@ OPTIONS
o Trying to recover data from a corrupt .xz file.
- o Speeding up decompression. This matters mostly with SHA-256
+ o Speeding up decompression. This matters mostly with SHA-256
or with files that have compressed extremely well. It's rec-
ommended to not use this option for this purpose unless the
file integrity is verified externally in some other way.
@@ -383,13 +381,13 @@ OPTIONS
memory usage reasonable even for old systems. -6 is the
default, which is usually a good choice for distributing
files that need to be decompressible even on systems with
- only 16 MiB RAM. (-5e or -6e may be worth considering
+ only 16 MiB RAM. (-5e or -6e may be worth considering
too. See --extreme.)
-7 ... -9
- These are like -6 but with higher compressor and decom-
- pressor memory requirements. These are useful only when
- compressing files bigger than 8 MiB, 16 MiB, and 32 MiB,
+ These are like -6 but with higher compressor and decom-
+ pressor memory requirements. These are useful only when
+ compressing files bigger than 8 MiB, 16 MiB, and 32 MiB,
respectively.
On the same hardware, the decompression speed is approximately a
@@ -415,40 +413,44 @@ OPTIONS
Column descriptions:
o DictSize is the LZMA2 dictionary size. It is waste of memory
- to use a dictionary bigger than the size of the uncompressed
- file. This is why it is good to avoid using the presets -7
- ... -9 when there's no real need for them. At -6 and lower,
+ to use a dictionary bigger than the size of the uncompressed
+ file. This is why it is good to avoid using the presets -7
+ ... -9 when there's no real need for them. At -6 and lower,
the amount of memory wasted is usually low enough to not mat-
ter.
o CompCPU is a simplified representation of the LZMA2 settings
that affect compression speed. The dictionary size affects
speed too, so while CompCPU is the same for levels -6 ... -9,
- higher levels still tend to be a little slower. To get even
+ higher levels still tend to be a little slower. To get even
slower and thus possibly better compression, see --extreme.
- o CompMem contains the compressor memory requirements in the
- single-threaded mode. It may vary slightly between xz ver-
- sions. Memory requirements of some of the future multi-
- threaded modes may be dramatically higher than that of the
- single-threaded mode.
+ o CompMem contains the compressor memory requirements in the
+ single-threaded mode. It may vary slightly between xz ver-
+ sions.
- o DecMem contains the decompressor memory requirements. That
- is, the compression settings determine the memory require-
+ o DecMem contains the decompressor memory requirements. That
+ is, the compression settings determine the memory require-
ments of the decompressor. The exact decompressor memory us-
age is slightly more than the LZMA2 dictionary size, but the
values in the table have been rounded up to the next full
MiB.
+ Memory requirements of the multi-threaded mode are significantly
+ higher than that of the single-threaded mode. With the default
+ value of --block-size, each thread needs 3*3*DictSize plus Comp-
+ Mem or DecMem. For example, four threads with preset -6 needs
+ 660-670 MiB of memory.
+
-e, --extreme
Use a slower variant of the selected compression preset level
(-0 ... -9) to hopefully get a little bit better compression ra-
- tio, but with bad luck this can also make it worse. Decompres-
- sor memory usage is not affected, but compressor memory usage
+ tio, but with bad luck this can also make it worse. Decompres-
+ sor memory usage is not affected, but compressor memory usage
increases a little at preset levels -0 ... -3.
- Since there are two presets with dictionary sizes 4 MiB and
- 8 MiB, the presets -3e and -5e use slightly faster settings
+ Since there are two presets with dictionary sizes 4 MiB and
+ 8 MiB, the presets -3e and -5e use slightly faster settings
(lower CompCPU) than -4e and -6e, respectively. That way no two
presets are identical.
@@ -487,50 +489,76 @@ OPTIONS
whichever is more. Typically a good value is 2-4 times the size
of the LZMA2 dictionary or at least 1 MiB. Using size less than
the LZMA2 dictionary size is waste of RAM because then the LZMA2
- dictionary buffer will never get fully used. The sizes of the
- blocks are stored in the block headers, which a future version
- of xz will use for multi-threaded decompression.
+ dictionary buffer will never get fully used. In multi-threaded
+ mode, the sizes of the blocks are stored in the block headers.
+ This size information is required for multi-threaded decompres-
+ sion.
In single-threaded mode no block splitting is done by default.
Setting this option doesn't affect memory usage. No size infor-
mation is stored in block headers, thus files created in single-
threaded mode won't be identical to files created in multi-
- threaded mode. The lack of size information also means that a
- future version of xz won't be able decompress the files in
- multi-threaded mode.
+ threaded mode. The lack of size information also means that xz
+ won't be able decompress the files in multi-threaded mode.
+
+ --block-list=items
+ When compressing to the .xz format, start a new block with an
+ optional custom filter chain after the given intervals of uncom-
+ pressed data.
+
+ The items are a comma-separated list. Each item consists of an
+ optional filter chain number between 0 and 9 followed by a colon
+ (:) and a required size of uncompressed data. Omitting an item
+ (two or more consecutive commas) is a shorthand to use the size
+ and filters of the previous item.
+
+ If the input file is bigger than the sum of the sizes in items,
+ the last item is repeated until the end of the file. A special
+ value of 0 may be used as the last size to indicate that the
+ rest of the file should be encoded as a single block.
- --block-list=sizes
- When compressing to the .xz format, start a new block after the
- given intervals of uncompressed data.
+ An alternative filter chain for each block can be specified in
+ combination with the --filters1=filters ... --filters9=filters
+ options. These options define filter chains with an identifier
+ between 1-9. Filter chain 0 can be used to refer to the default
+ filter chain, which is the same as not specifying a filter
+ chain. The filter chain identifier can be used before the un-
+ compressed size, followed by a colon (:). For example, if one
+ specifies --block-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB then
+ blocks will be created using:
- The uncompressed sizes of the blocks are specified as a comma-
- separated list. Omitting a size (two or more consecutive com-
- mas) is a shorthand to use the size of the previous block.
+ o The filter chain specified by --filters1 and 2 MiB input
- If the input file is bigger than the sum of sizes, the last
- value in sizes is repeated until the end of the file. A special
- value of 0 may be used as the last value to indicate that the
- rest of the file should be encoded as a single block.
+ o The filter chain specified by --filters3 and 2 MiB input
+
+ o The filter chain specified by --filters2 and 4 MiB input
+
+ o The filter chain specified by --filters2 and 4 MiB input
- If one specifies sizes that exceed the encoder's block size (ei-
- ther the default value in threaded mode or the value specified
- with --block-size=size), the encoder will create additional
- blocks while keeping the boundaries specified in sizes. For ex-
+ o The default filter chain and 2 MiB input
+
+ o The default filter chain and 4 MiB input for every block un-
+ til end of input.
+
+ If one specifies a size that exceeds the encoder's block size
+ (either the default value in threaded mode or the value speci-
+ fied with --block-size=size), the encoder will create additional
+ blocks while keeping the boundaries specified in items. For ex-
ample, if one specifies --block-size=10MiB
--block-list=5MiB,10MiB,8MiB,12MiB,24MiB and the input file is
80 MiB, one will get 11 blocks: 5, 10, 8, 10, 2, 10, 10, 4, 10,
10, and 1 MiB.
In multi-threaded mode the sizes of the blocks are stored in the
- block headers. This isn't done in single-threaded mode, so the
- encoded output won't be identical to that of the multi-threaded
+ block headers. This isn't done in single-threaded mode, so the
+ encoded output won't be identical to that of the multi-threaded
mode.
--flush-timeout=timeout
- When compressing, if more than timeout milliseconds (a positive
- integer) has passed since the previous flush and reading more
- input would block, all the pending input data is flushed from
- the encoder and made available in the output stream. This can
+ When compressing, if more than timeout milliseconds (a positive
+ integer) has passed since the previous flush and reading more
+ input would block, all the pending input data is flushed from
+ the encoder and made available in the output stream. This can
be useful if xz is used to compress data that is streamed over a
network. Small timeout values make the data available at the
receiving end with a small delay, but large timeout values give
@@ -556,24 +584,24 @@ OPTIONS
ceeded and display a notice that automatic adjustment was done.
The adjustments are done in this order: reducing the number of
threads, switching to single-threaded mode if even one thread in
- multi-threaded mode exceeds the limit, and finally reducing the
+ multi-threaded mode exceeds the limit, and finally reducing the
LZMA2 dictionary size.
- When compressing with --format=raw or if --no-adjust has been
- specified, only the number of threads may be reduced since it
+ When compressing with --format=raw or if --no-adjust has been
+ specified, only the number of threads may be reduced since it
can be done without affecting the compressed output.
- If the limit cannot be met even with the adjustments described
- above, an error is displayed and xz will exit with exit status
+ If the limit cannot be met even with the adjustments described
+ above, an error is displayed and xz will exit with exit status
1.
The limit can be specified in multiple ways:
- o The limit can be an absolute value in bytes. Using an inte-
- ger suffix like MiB can be useful. Example: --memlimit-com-
+ o The limit can be an absolute value in bytes. Using an inte-
+ ger suffix like MiB can be useful. Example: --memlimit-com-
press=80MiB
- o The limit can be specified as a percentage of total physical
+ o The limit can be specified as a percentage of total physical
memory (RAM). This can be useful especially when setting the
XZ_DEFAULTS environment variable in a shell initialization
script that is shared between different computers. That way
@@ -588,17 +616,17 @@ OPTIONS
over 4020 MiB, the limit is set to 4020 MiB. On MIPS32 2000 MiB
is used instead. (The values 0 and max aren't affected by this.
A similar feature doesn't exist for decompression.) This can be
- helpful when a 32-bit executable has access to 4 GiB address
- space (2 GiB on MIPS32) while hopefully doing no harm in other
+ helpful when a 32-bit executable has access to 4 GiB address
+ space (2 GiB on MIPS32) while hopefully doing no harm in other
situations.
See also the section Memory usage.
--memlimit-decompress=limit
- Set a memory usage limit for decompression. This also affects
- the --list mode. If the operation is not possible without ex-
- ceeding the limit, xz will display an error and decompressing
- the file will fail. See --memlimit-compress=limit for possible
+ Set a memory usage limit for decompression. This also affects
+ the --list mode. If the operation is not possible without ex-
+ ceeding the limit, xz will display an error and decompressing
+ the file will fail. See --memlimit-compress=limit for possible
ways to specify the limit.
--memlimit-mt-decompress=limit
@@ -608,20 +636,20 @@ OPTIONS
multi-threading, the limit is ignored and xz will continue in
single-threaded mode. Note that if also --memlimit-decompress
is used, it will always apply to both single-threaded and multi-
- threaded modes, and so the effective limit for multi-threading
- will never be higher than the limit set with --memlimit-decom-
+ threaded modes, and so the effective limit for multi-threading
+ will never be higher than the limit set with --memlimit-decom-
press.
- In contrast to the other memory usage limit options, --mem-
- limit-mt-decompress=limit has a system-specific default limit.
+ In contrast to the other memory usage limit options, --mem-
+ limit-mt-decompress=limit has a system-specific default limit.
xz --info-memory can be used to see the current value.
- This option and its default value exist because without any
- limit the threaded decompressor could end up allocating an in-
- sane amount of memory with some input files. If the default
+ This option and its default value exist because without any
+ limit the threaded decompressor could end up allocating an in-
+ sane amount of memory with some input files. If the default
limit is too low on your system, feel free to increase the limit
but never set it to a value larger than the amount of usable RAM
- as with appropriate input files xz will attempt to use that
+ as with appropriate input files xz will attempt to use that
amount of memory even with a low number of threads. Running out
of memory or swapping will not improve decompression perfor-
mance.
@@ -648,18 +676,18 @@ OPTIONS
-T threads, --threads=threads
Specify the number of worker threads to use. Setting threads to
- a special value 0 makes xz use up to as many threads as the pro-
- cessor(s) on the system support. The actual number of threads
- can be fewer than threads if the input file is not big enough
- for threading with the given settings or if using more threads
- would exceed the memory usage limit.
+ a special value 0 makes xz use up to as many threads as the
+ processor(s) on the system support. The actual number of
+ threads can be fewer than threads if the input file is not big
+ enough for threading with the given settings or if using more
+ threads would exceed the memory usage limit.
The single-threaded and multi-threaded compressors produce dif-
ferent output. Single-threaded compressor will give the small-
est file size but only the output from the multi-threaded com-
pressor can be decompressed using multiple threads. Setting
threads to 1 will use the single-threaded mode. Setting threads
- to any other value, including 0, will use the multi-threaded
+ to any other value, including 0, will use the multi-threaded
compressor even if the system supports only one hardware thread.
(xz 5.2.x used single-threaded mode in this situation.)
@@ -670,9 +698,9 @@ OPTIONS
added in xz 5.4.0.
If an automatic number of threads has been requested and no mem-
- ory usage limit has been specified, then a system-specific de-
- fault soft limit will be used to possibly limit the number of
- threads. It is a soft limit in sense that it is ignored if the
+ ory usage limit has been specified, then a system-specific de-
+ fault soft limit will be used to possibly limit the number of
+ threads. It is a soft limit in sense that it is ignored if the
number of threads becomes one, thus a soft limit will never stop
xz from compressing or decompressing. This default soft limit
will not make xz switch from multi-threaded mode to single-
@@ -681,7 +709,7 @@ OPTIONS
Currently the only threading method is to split the input into
blocks and compress them independently from each other. The de-
- fault block size depends on the compression level and can be
+ fault block size depends on the compression level and can be
overridden with the --block-size=size option.
Threaded decompression only works on files that contain multiple
@@ -690,6 +718,9 @@ OPTIONS
files compressed in single-threaded mode don't even if
--block-size=size has been used.
+ The default value for threads is 0. In xz 5.4.x and older the
+ default is 1.
+
Custom compressor filter chains
A custom filter chain allows specifying the compression settings in de-
tail instead of relying on the settings associated to the presets.
@@ -701,9 +732,9 @@ OPTIONS
A filter chain is comparable to piping on the command line. When com-
pressing, the uncompressed input goes to the first filter, whose output
- goes to the next filter (if any). The output of the last filter gets
- written to the compressed file. The maximum number of filters in the
- chain is four, but typically a filter chain has only one or two fil-
+ goes to the next filter (if any). The output of the last filter gets
+ written to the compressed file. The maximum number of filters in the
+ chain is four, but typically a filter chain has only one or two fil-
ters.
Many filters have limitations on where they can be in the filter chain:
@@ -712,20 +743,49 @@ OPTIONS
pending on the filter, this limitation is either inherent to the filter
design or exists to prevent security issues.
- A custom filter chain is specified by using one or more filter options
- in the order they are wanted in the filter chain. That is, the order
- of filter options is significant! When decoding raw streams (--for-
- mat=raw), the filter chain is specified in the same order as it was
- specified when compressing.
-
- Filters take filter-specific options as a comma-separated list. Extra
- commas in options are ignored. Every option has a default value, so
- you need to specify only those you want to change.
+ A custom filter chain can be specified in two different ways. The op-
+ tions --filters=filters and --filters1=filters ... --filters9=filters
+ allow specifying an entire filter chain in one option using the liblzma
+ filter string syntax. Alternatively, a filter chain can be specified
+ by using one or more individual filter options in the order they are
+ wanted in the filter chain. That is, the order of the individual fil-
+ ter options is significant! When decoding raw streams (--format=raw),
+ the filter chain must be specified in the same order as it was speci-
+ fied when compressing. Any individual filter or preset options speci-
+ fied before the full chain option (--filters=filters) will be forgot-
+ ten. Individual filters specified after the full chain option will re-
+ set the filter chain.
+
+ Both the full and individual filter options take filter-specific op-
+ tions as a comma-separated list. Extra commas in options are ignored.
+ Every option has a default value, so specify those you want to change.
To see the whole filter chain and options, use xz -vv (that is, use
--verbose twice). This works also for viewing the filter chain options
used by presets.
+ --filters=filters
+ Specify the full filter chain or a preset in a single option.
+ Each filter can be separated by spaces or two dashes (--). fil-
+ ters may need to be quoted on the shell command line so it is
+ parsed as a single option. To denote options, use : or =. A
+ preset can be prefixed with a - and followed with zero or more
+ flags. The only supported flag is e to apply the same options
+ as --extreme.
+
+ --filters1=filters ... --filters9=filters
+ Specify up to nine additional filter chains that can be used
+ with --block-list.
+
+ For example, when compressing an archive with executable files
+ followed by text files, the executable part could use a filter
+ chain with a BCJ filter and the text part only the LZMA2 filter.
+
+ --filters-help
+ Display a help message describing how to specify presets and
+ custom filter chains in the --filters and --filters1=filters ...
+ --filters9=filters options, and exit successfully.
+
--lzma1[=options]
--lzma2[=options]
Add LZMA1 or LZMA2 filter to the filter chain. These filters
@@ -751,9 +811,9 @@ OPTIONS
dict=size
Dictionary (history buffer) size indicates how many bytes
- of the recently processed uncompressed data is kept in
- memory. The algorithm tries to find repeating byte se-
- quences (matches) in the uncompressed data, and replace
+ of the recently processed uncompressed data is kept in
+ memory. The algorithm tries to find repeating byte se-
+ quences (matches) in the uncompressed data, and replace
them with references to the data currently in the dictio-
nary. The bigger the dictionary, the higher is the
chance to find a match. Thus, increasing dictionary size
@@ -763,16 +823,16 @@ OPTIONS
Typical dictionary size is from 64 KiB to 64 MiB. The
minimum is 4 KiB. The maximum for compression is cur-
rently 1.5 GiB (1536 MiB). The decompressor already sup-
- ports dictionaries up to one byte less than 4 GiB, which
+ ports dictionaries up to one byte less than 4 GiB, which
is the maximum for the LZMA1 and LZMA2 stream formats.
- Dictionary size and match finder (mf) together determine
+ Dictionary size and match finder (mf) together determine
the memory usage of the LZMA1 or LZMA2 encoder. The same
(or bigger) dictionary size is required for decompressing
- that was used when compressing, thus the memory usage of
- the decoder is determined by the dictionary size used
- when compressing. The .xz headers store the dictionary
- size either as 2^n or 2^n + 2^(n-1), so these sizes are
+ that was used when compressing, thus the memory usage of
+ the decoder is determined by the dictionary size used
+ when compressing. The .xz headers store the dictionary
+ size either as 2^n or 2^n + 2^(n-1), so these sizes are
somewhat preferred for compression. Other sizes will get
rounded up when stored in the .xz headers.
@@ -791,7 +851,7 @@ OPTIONS
ter, and a lower-case letter is usually followed by an-
other lower-case letter. In the US-ASCII character set,
the highest three bits are 010 for upper-case letters and
- 011 for lower-case letters. When lc is at least 3, the
+ 011 for lower-case letters. When lc is at least 3, the
literal coding can take advantage of this property in the
uncompressed data.
@@ -807,11 +867,11 @@ OPTIONS
data is assumed when encoding literals. See pb below for
more information about alignment.
- pb=pb Specify the number of position bits. The minimum is 0
+ pb=pb Specify the number of position bits. The minimum is 0
and the maximum is 4; the default is 2.
- Pb affects what kind of alignment in the uncompressed
- data is assumed in general. The default means four-byte
+ Pb affects what kind of alignment in the uncompressed
+ data is assumed in general. The default means four-byte
alignment (2^pb=2^2=4), which is often a good choice when
there's no better guess.
@@ -820,7 +880,7 @@ OPTIONS
files having one-byte alignment (US-ASCII, ISO-8859-*,
UTF-8), setting pb=0 can improve compression slightly.
For UTF-16 text, pb=1 is a good choice. If the alignment
- is an odd number like 3 bytes, pb=0 might be the best
+ is an odd number like 3 bytes, pb=0 might be the best
choice.
Even though the assumed alignment can be adjusted with pb
@@ -869,7 +929,7 @@ OPTIONS
mode=mode
Compression mode specifies the method to analyze the data
- produced by the match finder. Supported modes are fast
+ produced by the match finder. Supported modes are fast
and normal. The default is fast for presets 0-3 and nor-
mal for presets 4-9.
@@ -878,17 +938,17 @@ OPTIONS
the presets do.
nice=nice
- Specify what is considered to be a nice length for a
+ Specify what is considered to be a nice length for a
match. Once a match of at least nice bytes is found, the
algorithm stops looking for possibly better matches.
Nice can be 2-273 bytes. Higher values tend to give bet-
- ter compression ratio at the expense of speed. The de-
+ ter compression ratio at the expense of speed. The de-
fault depends on the preset.
depth=depth
- Specify the maximum search depth in the match finder.
- The default is the special value of 0, which makes the
+ Specify the maximum search depth in the match finder.
+ The default is the special value of 0, which makes the
compressor determine a reasonable depth from mf and nice.
Reasonable depth for Hash Chains is 4-100 and 16-1000 for
@@ -908,6 +968,7 @@ OPTIONS
--powerpc[=options]
--ia64[=options]
--sparc[=options]
+ --riscv[=options]
Add a branch/call/jump (BCJ) filter to the filter chain. These
filters can be used only as a non-last filter in the filter
chain.
@@ -916,9 +977,9 @@ OPTIONS
their absolute counterparts. This doesn't change the size of
the data but it increases redundancy, which can help LZMA2 to
produce 0-15 % smaller .xz file. The BCJ filters are always re-
- versible, so using a BCJ filter for wrong type of data doesn't
- cause any data loss, although it may make the compression ratio
- slightly worse. The BCJ filters are very fast and use an in-
+ versible, so using a BCJ filter for wrong type of data doesn't
+ cause any data loss, although it may make the compression ratio
+ slightly worse. The BCJ filters are very fast and use an in-
significant amount of memory.
These BCJ filters have known problems related to the compression
@@ -931,16 +992,16 @@ OPTIONS
sion, which will make the compression worse with these files.
o If a BCJ filter is applied on an archive, it is possible that
- it makes the compression ratio worse than not using a BCJ
- filter. For example, if there are similar or even identical
- executables then filtering will likely make the files less
- similar and thus compression is worse. The contents of non-
- executable files in the same archive can matter too. In
- practice one has to try with and without a BCJ filter to see
+ it makes the compression ratio worse than not using a BCJ
+ filter. For example, if there are similar or even identical
+ executables then filtering will likely make the files less
+ similar and thus compression is worse. The contents of non-
+ executable files in the same archive can matter too. In
+ practice one has to try with and without a BCJ filter to see
which is better in each situation.
- Different instruction sets have different alignment: the exe-
- cutable file must be aligned to a multiple of this value in the
+ Different instruction sets have different alignment: the exe-
+ cutable file must be aligned to a multiple of this value in the
input data to make the filter work.
Filter Alignment Notes
@@ -951,14 +1012,29 @@ OPTIONS
PowerPC 4 Big endian only
IA-64 16 Itanium
SPARC 4
+ RISC-V 2
- Since the BCJ-filtered data is usually compressed with LZMA2,
- the compression ratio may be improved slightly if the LZMA2 op-
+ Since the BCJ-filtered data is usually compressed with LZMA2,
+ the compression ratio may be improved slightly if the LZMA2 op-
tions are set to match the alignment of the selected BCJ filter.
- For example, with the IA-64 filter, it's good to set pb=4 or
- even pb=4,lp=4,lc=0 with LZMA2 (2^4=16). The x86 filter is an
- exception; it's usually good to stick to LZMA2's default four-
- byte alignment when compressing x86 executables.
+ Examples:
+
+ o IA-64 filter has 16-byte alignment so pb=4,lp=4,lc=0 is good
+ with LZMA2 (2^4=16).
+
+ o RISC-V code has 2-byte or 4-byte alignment depending on
+ whether the file contains 16-bit compressed instructions (the
+ C extension). When 16-bit instructions are used,
+ pb=2,lp=1,lc=3 or pb=1,lp=1,lc=3 is good. When 16-bit in-
+ structions aren't present, pb=2,lp=2,lc=2 is the best. read-
+ elf -h can be used to check if "RVC" appears on the "Flags"
+ line.
+
+ o ARM64 is always 4-byte aligned so pb=2,lp=2,lc=2 is the best.
+
+ o The x86 filter is an exception. It's usually good to stick
+ to LZMA2's defaults (pb=2,lp=0,lc=3) when compressing x86 ex-
+ ecutables.
All BCJ filters support the same options:
@@ -966,7 +1042,7 @@ OPTIONS
Specify the start offset that is used when converting be-
tween relative and absolute addresses. The offset must
be a multiple of the alignment of the filter (see the ta-
- ble above). The default is zero. In practice, the de-
+ ble above). The default is zero. In practice, the de-
fault is good; specifying a custom offset is almost never
useful.
@@ -978,13 +1054,13 @@ OPTIONS
It can be useful when compressing, for example, uncompressed
bitmap images or uncompressed PCM audio. However, special pur-
pose algorithms may give significantly better results than Delta
- + LZMA2. This is true especially with audio, which compresses
+ + LZMA2. This is true especially with audio, which compresses
faster and better, for example, with flac(1).
Supported options:
dist=distance
- Specify the distance of the delta calculation in bytes.
+ Specify the distance of the delta calculation in bytes.
distance must be 1-256. The default is 1.
For example, with dist=2 and eight-byte input A1 B1 A2 B3
@@ -994,23 +1070,23 @@ OPTIONS
-q, --quiet
Suppress warnings and notices. Specify this twice to suppress
errors too. This option has no effect on the exit status. That
- is, even if a warning was suppressed, the exit status to indi-
+ is, even if a warning was suppressed, the exit status to indi-
cate a warning is still used.
-v, --verbose
- Be verbose. If standard error is connected to a terminal, xz
- will display a progress indicator. Specifying --verbose twice
+ Be verbose. If standard error is connected to a terminal, xz
+ will display a progress indicator. Specifying --verbose twice
will give even more verbose output.
The progress indicator shows the following information:
- o Completion percentage is shown if the size of the input file
+ o Completion percentage is shown if the size of the input file
is known. That is, the percentage cannot be shown in pipes.
- o Amount of compressed data produced (compressing) or consumed
+ o Amount of compressed data produced (compressing) or consumed
(decompressing).
- o Amount of uncompressed data consumed (compressing) or pro-
+ o Amount of uncompressed data consumed (compressing) or pro-
duced (decompressing).
o Compression ratio, which is calculated by dividing the amount
@@ -1032,12 +1108,12 @@ OPTIONS
When standard error is not a terminal, --verbose will make xz
print the filename, compressed size, uncompressed size, compres-
- sion ratio, and possibly also the speed and elapsed time on a
+ sion ratio, and possibly also the speed and elapsed time on a
single line to standard error after compressing or decompressing
the file. The speed and elapsed time are included only when the
- operation took at least a few seconds. If the operation didn't
- finish, for example, due to user interruption, also the comple-
- tion percentage is printed if the size of the input file is
+ operation took at least a few seconds. If the operation didn't
+ finish, for example, due to user interruption, also the comple-
+ tion percentage is printed if the size of the input file is
known.
-Q, --no-warn
@@ -1075,63 +1151,9 @@ OPTIONS
ROBOT MODE
The robot mode is activated with the --robot option. It makes the out-
put of xz easier to parse by other programs. Currently --robot is sup-
- ported only together with --version, --info-memory, and --list. It
- will be supported for compression and decompression in the future.
-
- Version
- xz --robot --version prints the version number of xz and liblzma in the
- following format:
-
- XZ_VERSION=XYYYZZZS
- LIBLZMA_VERSION=XYYYZZZS
-
- X Major version.
-
- YYY Minor version. Even numbers are stable. Odd numbers are alpha
- or beta versions.
-
- ZZZ Patch level for stable releases or just a counter for develop-
- ment releases.
-
- S Stability. 0 is alpha, 1 is beta, and 2 is stable. S should be
- always 2 when YYY is even.
-
- XYYYZZZS are the same on both lines if xz and liblzma are from the same
- XZ Utils release.
-
- Examples: 4.999.9beta is 49990091 and 5.0.0 is 50000002.
-
- Memory limit information
- xz --robot --info-memory prints a single line with multiple tab-sepa-
- rated columns:
-
- 1. Total amount of physical memory (RAM) in bytes.
-
- 2. Memory usage limit for compression in bytes (--memlimit-compress).
- A special value of 0 indicates the default setting which for sin-
- gle-threaded mode is the same as no limit.
-
- 3. Memory usage limit for decompression in bytes (--memlimit-decom-
- press). A special value of 0 indicates the default setting which
- for single-threaded mode is the same as no limit.
-
- 4. Since xz 5.3.4alpha: Memory usage for multi-threaded decompression
- in bytes (--memlimit-mt-decompress). This is never zero because a
- system-specific default value shown in the column 5 is used if no
- limit has been specified explicitly. This is also never greater
- than the value in the column 3 even if a larger value has been
- specified with --memlimit-mt-decompress.
-
- 5. Since xz 5.3.4alpha: A system-specific default memory usage limit
- that is used to limit the number of threads when compressing with
- an automatic number of threads (--threads=0) and no memory usage
- limit has been specified (--memlimit-compress). This is also used
- as the default value for --memlimit-mt-decompress.
-
- 6. Since xz 5.3.4alpha: Number of available processor threads.
-
- In the future, the output of xz --robot --info-memory may have more
- columns, but never more than a single line.
+ ported only together with --list, --filters-help, --info-memory, and
+ --version. It will be supported for compression and decompression in
+ the future.
List mode
xz --robot --list uses tab-separated output. The first column of every
@@ -1155,10 +1177,10 @@ ROBOT MODE
summary
This line type is used only when --verbose was specified twice.
This line is printed after all block lines. Like the file line,
- the summary line contains overall information about the .xz
+ the summary line contains overall information about the .xz
file.
- totals This line is always the very last line of the list output. It
+ totals This line is always the very last line of the list output. It
shows the total counts and sizes.
The columns of the file lines:
@@ -1166,10 +1188,10 @@ ROBOT MODE
3. Total number of blocks in the stream(s)
4. Compressed size of the file
5. Uncompressed size of the file
- 6. Compression ratio, for example, 0.123. If ratio is over
- 9.999, three dashes (---) are displayed instead of the ra-
+ 6. Compression ratio, for example, 0.123. If ratio is over
+ 9.999, three dashes (---) are displayed instead of the ra-
tio.
- 7. Comma-separated list of integrity check names. The follow-
+ 7. Comma-separated list of integrity check names. The follow-
ing strings are used for the known check types: None, CRC32,
CRC64, and SHA-256. For unknown check types, Unknown-N is
used, where N is the Check ID as a decimal number (one or
@@ -1240,24 +1262,94 @@ ROBOT MODE
9. Number of files. This is here to keep the order of the ear-
lier columns the same as on file lines.
- If --verbose was specified twice, additional columns are included on
+ If --verbose was specified twice, additional columns are included on
the totals line:
- 10. Maximum amount of memory (in bytes) required to decompress
+ 10. Maximum amount of memory (in bytes) required to decompress
the files with this xz version
- 11. yes or no indicating if all block headers have both com-
+ 11. yes or no indicating if all block headers have both com-
pressed size and uncompressed size stored in them
Since xz 5.1.2alpha:
12. Minimum xz version required to decompress the file
- Future versions may add new line types and new columns can be added to
+ Future versions may add new line types and new columns can be added to
the existing line types, but the existing columns won't be changed.
+ Filters help
+ xz --robot --filters-help prints the supported filters in the following
+ format:
+
+ filter:option=<value>,option=<value>...
+
+ filter Name of the filter
+
+ option Name of a filter specific option
+
+ value Numeric value ranges appear as <min-max>. String value choices
+ are shown within < > and separated by a | character.
+
+ Each filter is printed on its own line.
+
+ Memory limit information
+ xz --robot --info-memory prints a single line with multiple tab-sepa-
+ rated columns:
+
+ 1. Total amount of physical memory (RAM) in bytes.
+
+ 2. Memory usage limit for compression in bytes (--memlimit-compress).
+ A special value of 0 indicates the default setting which for sin-
+ gle-threaded mode is the same as no limit.
+
+ 3. Memory usage limit for decompression in bytes (--memlimit-decom-
+ press). A special value of 0 indicates the default setting which
+ for single-threaded mode is the same as no limit.
+
+ 4. Since xz 5.3.4alpha: Memory usage for multi-threaded decompression
+ in bytes (--memlimit-mt-decompress). This is never zero because a
+ system-specific default value shown in the column 5 is used if no
+ limit has been specified explicitly. This is also never greater
+ than the value in the column 3 even if a larger value has been
+ specified with --memlimit-mt-decompress.
+
+ 5. Since xz 5.3.4alpha: A system-specific default memory usage limit
+ that is used to limit the number of threads when compressing with
+ an automatic number of threads (--threads=0) and no memory usage
+ limit has been specified (--memlimit-compress). This is also used
+ as the default value for --memlimit-mt-decompress.
+
+ 6. Since xz 5.3.4alpha: Number of available processor threads.
+
+ In the future, the output of xz --robot --info-memory may have more
+ columns, but never more than a single line.
+
+ Version
+ xz --robot --version prints the version number of xz and liblzma in the
+ following format:
+
+ XZ_VERSION=XYYYZZZS
+ LIBLZMA_VERSION=XYYYZZZS
+
+ X Major version.
+
+ YYY Minor version. Even numbers are stable. Odd numbers are alpha
+ or beta versions.
+
+ ZZZ Patch level for stable releases or just a counter for develop-
+ ment releases.
+
+ S Stability. 0 is alpha, 1 is beta, and 2 is stable. S should be
+ always 2 when YYY is even.
+
+ XYYYZZZS are the same on both lines if xz and liblzma are from the same
+ XZ Utils release.
+
+ Examples: 4.999.9beta is 49990091 and 5.0.0 is 50000002.
+
EXIT STATUS
0 All is good.
1 An error occurred.
- 2 Something worth a warning occurred, but no actual errors oc-
+ 2 Something worth a warning occurred, but no actual errors oc-
curred.
Notices (not warnings or errors) printed on standard error don't affect
@@ -1266,16 +1358,16 @@ EXIT STATUS
ENVIRONMENT
xz parses space-separated lists of options from the environment vari-
ables XZ_DEFAULTS and XZ_OPT, in this order, before parsing the options
- from the command line. Note that only options are parsed from the en-
- vironment variables; all non-options are silently ignored. Parsing is
- done with getopt_long(3) which is used also for the command line argu-
+ from the command line. Note that only options are parsed from the en-
+ vironment variables; all non-options are silently ignored. Parsing is
+ done with getopt_long(3) which is used also for the command line argu-
ments.
XZ_DEFAULTS
User-specific or system-wide default options. Typically this is
set in a shell initialization script to enable xz's memory usage
- limiter by default. Excluding shell initialization scripts and
- similar special cases, scripts must never set or unset XZ_DE-
+ limiter by default. Excluding shell initialization scripts and
+ similar special cases, scripts must never set or unset XZ_DE-
FAULTS.
XZ_OPT This is for passing options to xz when it is not possible to set
@@ -1293,16 +1385,16 @@ ENVIRONMENT
export XZ_OPT
LZMA UTILS COMPATIBILITY
- The command line syntax of xz is practically a superset of lzma, un-
- lzma, and lzcat as found from LZMA Utils 4.32.x. In most cases, it is
- possible to replace LZMA Utils with XZ Utils without breaking existing
- scripts. There are some incompatibilities though, which may sometimes
+ The command line syntax of xz is practically a superset of lzma, un-
+ lzma, and lzcat as found from LZMA Utils 4.32.x. In most cases, it is
+ possible to replace LZMA Utils with XZ Utils without breaking existing
+ scripts. There are some incompatibilities though, which may sometimes
cause problems.
Compression preset levels
- The numbering of the compression level presets is not identical in xz
- and LZMA Utils. The most important difference is how dictionary sizes
- are mapped to different presets. Dictionary size is roughly equal to
+ The numbering of the compression level presets is not identical in xz
+ and LZMA Utils. The most important difference is how dictionary sizes
+ are mapped to different presets. Dictionary size is roughly equal to
the decompressor memory usage.
Level xz LZMA Utils
@@ -1341,15 +1433,15 @@ LZMA UTILS COMPATIBILITY
LZMA Utils does that when compressing regular files. The alternative
is to mark that uncompressed size is unknown and use end-of-payload
marker to indicate where the decompressor should stop. LZMA Utils uses
- this method when uncompressed size isn't known, which is the case, for
+ this method when uncompressed size isn't known, which is the case, for
example, in pipes.
- xz supports decompressing .lzma files with or without end-of-payload
- marker, but all .lzma files created by xz will use end-of-payload
- marker and have uncompressed size marked as unknown in the .lzma
- header. This may be a problem in some uncommon situations. For exam-
- ple, a .lzma decompressor in an embedded device might work only with
- files that have known uncompressed size. If you hit this problem, you
+ xz supports decompressing .lzma files with or without end-of-payload
+ marker, but all .lzma files created by xz will use end-of-payload
+ marker and have uncompressed size marked as unknown in the .lzma
+ header. This may be a problem in some uncommon situations. For exam-
+ ple, a .lzma decompressor in an embedded device might work only with
+ files that have known uncompressed size. If you hit this problem, you
need to use LZMA Utils or LZMA SDK to create .lzma files with known un-
compressed size.
@@ -1360,13 +1452,13 @@ LZMA UTILS COMPATIBILITY
with xz and with LZMA SDK.
The implementation of the LZMA1 filter in liblzma requires that the sum
- of lc and lp must not exceed 4. Thus, .lzma files, which exceed this
+ of lc and lp must not exceed 4. Thus, .lzma files, which exceed this
limitation, cannot be decompressed with xz.
LZMA Utils creates only .lzma files which have a dictionary size of 2^n
(a power of 2) but accepts files with any dictionary size. liblzma ac-
- cepts only .lzma files which have a dictionary size of 2^n or 2^n +
- 2^(n-1). This is to decrease false positives when detecting .lzma
+ cepts only .lzma files which have a dictionary size of 2^n or 2^n +
+ 2^(n-1). This is to decrease false positives when detecting .lzma
files.
These limitations shouldn't be a problem in practice, since practically
@@ -1385,11 +1477,11 @@ LZMA UTILS COMPATIBILITY
NOTES
Compressed output may vary
- The exact compressed output produced from the same uncompressed input
+ The exact compressed output produced from the same uncompressed input
file may vary between XZ Utils versions even if compression options are
identical. This is because the encoder can be improved (faster or bet-
- ter compression) without affecting the file format. The output can
- vary even between different builds of the same XZ Utils version, if
+ ter compression) without affecting the file format. The output can
+ vary even between different builds of the same XZ Utils version, if
different build options are used.
The above means that once --rsyncable has been implemented, the result-
@@ -1401,30 +1493,30 @@ NOTES
Embedded .xz decompressors
Embedded .xz decompressor implementations like XZ Embedded don't neces-
sarily support files created with integrity check types other than none
- and crc32. Since the default is --check=crc64, you must use
+ and crc32. Since the default is --check=crc64, you must use
--check=none or --check=crc32 when creating files for embedded systems.
- Outside embedded systems, all .xz format decompressors support all the
- check types, or at least are able to decompress the file without veri-
+ Outside embedded systems, all .xz format decompressors support all the
+ check types, or at least are able to decompress the file without veri-
fying the integrity check if the particular check is not supported.
- XZ Embedded supports BCJ filters, but only with the default start off-
+ XZ Embedded supports BCJ filters, but only with the default start off-
set.
EXAMPLES
Basics
- Compress the file foo into foo.xz using the default compression level
+ Compress the file foo into foo.xz using the default compression level
(-6), and remove foo if compression is successful:
xz foo
- Decompress bar.xz into bar and don't remove bar.xz even if decompres-
+ Decompress bar.xz into bar and don't remove bar.xz even if decompres-
sion is successful:
xz -dk bar.xz
- Create baz.tar.xz with the preset -4e (-4 --extreme), which is slower
- than the default -6, but needs less memory for compression and decom-
+ Create baz.tar.xz with the preset -4e (-4 --extreme), which is slower
+ than the default -6, but needs less memory for compression and decom-
pression (48 MiB and 5 MiB, respectively):
tar cf - baz | xz -4e > baz.tar.xz
@@ -1443,7 +1535,7 @@ EXAMPLES
The -P option to xargs(1) sets the number of parallel xz processes.
The best value for the -n option depends on how many files there are to
- be compressed. If there are only a couple of files, the value should
+ be compressed. If there are only a couple of files, the value should
probably be 1; with tens of thousands of files, 100 or even more may be
appropriate to reduce the number of xz processes that xargs(1) will
eventually create.
@@ -1452,14 +1544,14 @@ EXAMPLES
cause xargs(1) is used to control the amount of parallelization.
Robot mode
- Calculate how many bytes have been saved in total after compressing
+ Calculate how many bytes have been saved in total after compressing
multiple files:
xz --robot --list *.xz | awk '/^totals/{print $5-$4}'
- A script may want to know that it is using new enough xz. The follow-
- ing sh(1) script checks that the version number of the xz tool is at
- least 5.0.0. This method is compatible with old beta versions, which
+ A script may want to know that it is using new enough xz. The follow-
+ ing sh(1) script checks that the version number of the xz tool is at
+ least 5.0.0. This method is compatible with old beta versions, which
didn't support the --robot option:
if ! eval "$(xz --robot --version 2> /dev/null)" ||
@@ -1524,23 +1616,23 @@ EXAMPLES
Using -vv (--verbose --verbose) like in the above example can be useful
to see the memory requirements of the compressor and decompressor. Re-
member that using a dictionary bigger than the size of the uncompressed
- file is waste of memory, so the above command isn't useful for small
+ file is waste of memory, so the above command isn't useful for small
files.
- Sometimes the compression time doesn't matter, but the decompressor
- memory usage has to be kept low, for example, to make it possible to
- decompress the file on an embedded system. The following command uses
- -6e (-6 --extreme) as a base and sets the dictionary to only 64 KiB.
- The resulting file can be decompressed with XZ Embedded (that's why
+ Sometimes the compression time doesn't matter, but the decompressor
+ memory usage has to be kept low, for example, to make it possible to
+ decompress the file on an embedded system. The following command uses
+ -6e (-6 --extreme) as a base and sets the dictionary to only 64 KiB.
+ The resulting file can be decompressed with XZ Embedded (that's why
there is --check=crc32) using about 100 KiB of memory.
xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo
- If you want to squeeze out as many bytes as possible, adjusting the
- number of literal context bits (lc) and number of position bits (pb)
+ If you want to squeeze out as many bytes as possible, adjusting the
+ number of literal context bits (lc) and number of position bits (pb)
can sometimes help. Adjusting the number of literal position bits (lp)
might help too, but usually lc and pb are more important. For example,
- a source code archive contains mostly US-ASCII text, so something like
+ a source code archive contains mostly US-ASCII text, so something like
the following might give slightly (like 0.1 %) smaller file than xz -6e
(try also without lc=4):
@@ -1552,7 +1644,7 @@ EXAMPLES
xz --x86 --lzma2 libfoo.so
- Note that the order of the filter options is significant. If --x86 is
+ Note that the order of the filter options is significant. If --x86 is
specified after --lzma2, xz will give an error, because there cannot be
any filter after LZMA2, and also because the x86 BCJ filter cannot be
used as the last filter in the chain.
@@ -1561,26 +1653,24 @@ EXAMPLES
images. It should usually beat PNG, which has a few more advanced fil-
ters than simple delta but uses Deflate for the actual compression.
- The image has to be saved in uncompressed format, for example, as un-
- compressed TIFF. The distance parameter of the Delta filter is set to
- match the number of bytes per pixel in the image. For example, 24-bit
- RGB bitmap needs dist=3, and it is also good to pass pb=0 to LZMA2 to
+ The image has to be saved in uncompressed format, for example, as un-
+ compressed TIFF. The distance parameter of the Delta filter is set to
+ match the number of bytes per pixel in the image. For example, 24-bit
+ RGB bitmap needs dist=3, and it is also good to pass pb=0 to LZMA2 to
accommodate the three-byte alignment:
xz --delta=dist=3 --lzma2=pb=0 foo.tiff
- If multiple images have been put into a single archive (for example,
- .tar), the Delta filter will work on that too as long as all images
+ If multiple images have been put into a single archive (for example,
+ .tar), the Delta filter will work on that too as long as all images
have the same number of bytes per pixel.
SEE ALSO
- xzdec(1), xzdiff(1), xzgrep(1), xzless(1), xzmore(1), gzip(1),
+ xzdec(1), xzdiff(1), xzgrep(1), xzless(1), xzmore(1), gzip(1),
bzip2(1), 7z(1)
XZ Utils: <https://tukaani.org/xz/>
XZ Embedded: <https://tukaani.org/xz/embedded.html>
LZMA SDK: <https://7-zip.org/sdk.html>
-
-
-Tukaani 2023-07-17 XZ(1)
+Tukaani 2024-04-08 XZ(1)
diff --git a/doc/man/txt/xzdec.txt b/doc/man/txt/xzdec.txt
index a914e20..b6218dd 100644
--- a/doc/man/txt/xzdec.txt
+++ b/doc/man/txt/xzdec.txt
@@ -1,7 +1,5 @@
XZDEC(1) XZ Utils XZDEC(1)
-
-
NAME
xzdec, lzmadec - Small .xz and .lzma decompressors
@@ -17,11 +15,11 @@ DESCRIPTION
to decompress .xz files. lzmadec is identical to xzdec except that lz-
madec supports .lzma files instead of .xz files.
- To reduce the size of the executable, xzdec doesn't support multi-
- threading or localization, and doesn't read options from XZ_DEFAULTS
+ To reduce the size of the executable, xzdec doesn't support multi-
+ threading or localization, and doesn't read options from XZ_DEFAULTS
and XZ_OPT environment variables. xzdec doesn't support displaying in-
termediate progress information: sending SIGINFO to xzdec does nothing,
- but sending SIGUSR1 terminates the process instead of displaying
+ but sending SIGUSR1 terminates the process instead of displaying
progress information.
OPTIONS
@@ -75,6 +73,4 @@ SEE ALSO
XZ Embedded: <https://tukaani.org/xz/embedded.html>
-
-
-Tukaani 2017-04-19 XZDEC(1)
+Tukaani 2024-04-08 XZDEC(1)
diff --git a/doc/man/txt/xzdiff.txt b/doc/man/txt/xzdiff.txt
index 681b00c..cb61372 100644
--- a/doc/man/txt/xzdiff.txt
+++ b/doc/man/txt/xzdiff.txt
@@ -1,37 +1,38 @@
XZDIFF(1) XZ Utils XZDIFF(1)
-
-
NAME
xzcmp, xzdiff, lzcmp, lzdiff - compare compressed files
SYNOPSIS
- xzcmp [cmp_options] file1 [file2]
- xzdiff [diff_options] file1 [file2]
- lzcmp [cmp_options] file1 [file2]
- lzdiff [diff_options] file1 [file2]
+ xzcmp [option...] file1 [file2]
+ xzdiff ...
+ lzcmp ...
+ lzdiff ...
DESCRIPTION
- xzcmp and xzdiff invoke cmp(1) or diff(1) on files compressed with
- xz(1), lzma(1), gzip(1), bzip2(1), lzop(1), or zstd(1). All options
- specified are passed directly to cmp(1) or diff(1). If only one file
- is specified, then the files compared are file1 (which must have a suf-
- fix of a supported compression format) and file1 from which the com-
- pression format suffix has been stripped. If two files are specified,
- then they are uncompressed if necessary and fed to cmp(1) or diff(1).
- The exit status from cmp(1) or diff(1) is preserved unless a decompres-
- sion error occurs; then exit status is 2.
-
- The names lzcmp and lzdiff are provided for backward compatibility with
- LZMA Utils.
+ xzcmp and xzdiff compare uncompressed contents of two files. Uncom-
+ pressed data and options are passed to cmp(1) or diff(1) unless --help
+ or --version is specified.
-SEE ALSO
- cmp(1), diff(1), xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), zdiff(1)
+ If both file1 and file2 are specified, they can be uncompressed files
+ or files in formats that xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), or
+ lz4(1) can decompress. The required decompression commands are deter-
+ mined from the filename suffixes of file1 and file2. A file with an
+ unknown suffix is assumed to be either uncompressed or in a format that
+ xz(1) can decompress.
-BUGS
- Messages from the cmp(1) or diff(1) programs refer to temporary file-
- names instead of those specified.
+ If only one filename is provided, file1 must have a suffix of a sup-
+ ported compression format and the name for file2 is assumed to be file1
+ with the compression format suffix removed.
+ The commands lzcmp and lzdiff are provided for backward compatibility
+ with LZMA Utils.
+EXIT STATUS
+ If a decompression error occurs, the exit status is 2. Otherwise the
+ exit status of cmp(1) or diff(1) is used.
+
+SEE ALSO
+ cmp(1), diff(1), xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), lz4(1)
-Tukaani 2021-06-04 XZDIFF(1)
+Tukaani 2024-02-13 XZDIFF(1)
diff --git a/doc/man/txt/xzgrep.txt b/doc/man/txt/xzgrep.txt
index 596520c..85b8b90 100644
--- a/doc/man/txt/xzgrep.txt
+++ b/doc/man/txt/xzgrep.txt
@@ -1,12 +1,10 @@
XZGREP(1) XZ Utils XZGREP(1)
-
-
NAME
- xzgrep - search compressed files for a regular expression
+ xzgrep - search possibly-compressed files for patterns
SYNOPSIS
- xzgrep [grep_options] [-e] pattern [file...]
+ xzgrep [option...] [pattern_list] [file...]
xzegrep ...
xzfgrep ...
lzgrep ...
@@ -14,36 +12,58 @@ SYNOPSIS
lzfgrep ...
DESCRIPTION
- xzgrep invokes grep(1) on files which may be either uncompressed or
- compressed with xz(1), lzma(1), gzip(1), bzip2(1), lzop(1), or zstd(1).
- All options specified are passed directly to grep(1).
+ xzgrep invokes grep(1) on uncompressed contents of files. The formats
+ of the files are determined from the filename suffixes. Any file with
+ a suffix supported by xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), or
+ lz4(1) will be decompressed; all other files are assumed to be uncom-
+ pressed.
+
+ If no files are specified or file is - then standard input is read.
+ When reading from standard input, only files supported by xz(1) are de-
+ compressed. Other files are assumed to be in uncompressed form al-
+ ready.
+
+ Most options of grep(1) are supported. However, the following options
+ are not supported:
+
+ -r, --recursive
+
+ -R, --dereference-recursive
+
+ -d, --directories=action
+
+ -Z, --null
- If no file is specified, then standard input is decompressed if neces-
- sary and fed to grep(1). When reading from standard input, gzip(1),
- bzip2(1), lzop(1), and zstd(1) compressed files are not supported.
+ -z, --null-data
- If xzgrep is invoked as xzegrep or xzfgrep then grep -E or grep -F is
- used instead of grep(1). The same applies to names lzgrep, lzegrep,
- and lzfgrep, which are provided for backward compatibility with LZMA
- Utils.
+ --include=glob
+
+ --exclude=glob
+
+ --exclude-from=file
+
+ --exclude-dir=glob
+
+ xzegrep is an alias for xzgrep -E. xzfgrep is an alias for xzgrep -F.
+
+ The commands lzgrep, lzegrep, and lzfgrep are provided for backward
+ compatibility with LZMA Utils.
EXIT STATUS
- 0 At least one match was found from at least one of the input
+ 0 At least one match was found from at least one of the input
files. No errors occurred.
- 1 No matches were found from any of the input files. No errors
+ 1 No matches were found from any of the input files. No errors
occurred.
- >1 One or more errors occurred. It is unknown if matches were
+ >1 One or more errors occurred. It is unknown if matches were
found.
ENVIRONMENT
- GREP If the GREP environment variable is set, xzgrep uses it instead
- of grep(1), grep -E, or grep -F.
+ GREP If GREP is set to a non-empty value, it is used instead of grep,
+ grep -E, or grep -F.
SEE ALSO
- grep(1), xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), zgrep(1)
-
-
+ grep(1), xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), lz4(1), zgrep(1)
-Tukaani 2022-07-19 XZGREP(1)
+Tukaani 2024-02-13 XZGREP(1)
diff --git a/doc/man/txt/xzless.txt b/doc/man/txt/xzless.txt
index 5c14c80..655a607 100644
--- a/doc/man/txt/xzless.txt
+++ b/doc/man/txt/xzless.txt
@@ -1,7 +1,5 @@
XZLESS(1) XZ Utils XZLESS(1)
-
-
NAME
xzless, lzless - view xz or lzma compressed (text) files
@@ -11,8 +9,9 @@ SYNOPSIS
DESCRIPTION
xzless is a filter that displays text from compressed files to a termi-
- nal. It works on files compressed with xz(1) or lzma(1). If no files
- are given, xzless reads from standard input.
+ nal. Files supported by xz(1) are decompressed; other files are as-
+ sumed to be in uncompressed form already. If no files are given, xz-
+ less reads from standard input.
xzless uses less(1) to present its output. Unlike xzmore, its choice
of pager cannot be altered by setting an environment variable. Com-
@@ -28,12 +27,10 @@ ENVIRONMENT
it is already set in the environment.
LESSOPEN
- Set to a command line to invoke the xz(1) decompressor for pre-
+ Set to a command line to invoke the xz(1) decompressor for pre-
processing the input files to less(1).
SEE ALSO
less(1), xz(1), xzmore(1), zless(1)
-
-
-Tukaani 2010-09-27 XZLESS(1)
+Tukaani 2024-02-12 XZLESS(1)
diff --git a/doc/man/txt/xzmore.txt b/doc/man/txt/xzmore.txt
index 5a9d86c..baa496e 100644
--- a/doc/man/txt/xzmore.txt
+++ b/doc/man/txt/xzmore.txt
@@ -1,7 +1,5 @@
XZMORE(1) XZ Utils XZMORE(1)
-
-
NAME
xzmore, lzmore - view xz or lzma compressed (text) files
@@ -10,25 +8,24 @@ SYNOPSIS
lzmore [file...]
DESCRIPTION
- xzmore is a filter which allows examination of xz(1) or lzma(1) com-
- pressed text files one screenful at a time on a soft-copy terminal.
-
- To use a pager other than the default more, set environment variable
- PAGER to the name of the desired program. The name lzmore is provided
- for backward compatibility with LZMA Utils.
+ xzmore displays text from compressed files to a terminal using more(1).
+ Files supported by xz(1) are decompressed; other files are assumed to
+ be in uncompressed form already. If no files are given, xzmore reads
+ from standard input. See the more(1) manual for the keyboard commands.
- e or q When the prompt --More--(Next file: file) is printed, this com-
- mand causes xzmore to exit.
+ Note that scrolling backwards might not be possible depending on the
+ implementation of more(1). This is because xzmore uses a pipe to pass
+ the decompressed data to more(1). xzless(1) uses less(1) which pro-
+ vides more advanced features.
- s When the prompt --More--(Next file: file) is printed, this com-
- mand causes xzmore to skip the next file and continue.
+ The command lzmore is provided for backward compatibility with LZMA
+ Utils.
- For list of keyboard commands supported while actually viewing the con-
- tent of a file, refer to manual of the pager you use, usually more(1).
+ENVIRONMENT
+ PAGER If PAGER is set, its value is used as the pager instead of
+ more(1).
SEE ALSO
more(1), xz(1), xzless(1), zmore(1)
-
-
-Tukaani 2013-06-30 XZMORE(1)
+Tukaani 2024-02-12 XZMORE(1)
diff --git a/doc/xz-file-format.txt b/doc/xz-file-format.txt
index 09c83e0..12d2530 100644
--- a/doc/xz-file-format.txt
+++ b/doc/xz-file-format.txt
@@ -2,7 +2,7 @@
The .xz File Format
===================
-Version 1.1.0 (2022-12-11)
+Version 1.2.1 (2024-04-08)
0. Preface
@@ -81,18 +81,26 @@ Version 1.1.0 (2022-12-11)
0.2. Getting the Latest Version
The latest official version of this document can be downloaded
- from <http://tukaani.org/xz/xz-file-format.txt>.
+ from <https://tukaani.org/xz/xz-file-format.txt>.
Specific versions of this document have a filename
xz-file-format-X.Y.Z.txt where X.Y.Z is the version number.
For example, the version 1.0.0 of this document is available
- at <http://tukaani.org/xz/xz-file-format-1.0.0.txt>.
+ at <https://tukaani.org/xz/xz-file-format-1.0.0.txt>.
0.3. Version History
Version Date Description
+ 1.2.1 2024-04-08 The URLs of this specification and
+ XZ Utils were changed back to the
+ original ones in Sections 0.2 and 7.
+
+ 1.2.0 2024-01-19 Added RISC-V filter and updated URLs in
+ Sections 0.2 and 7. The URL of this
+ specification was changed.
+
1.1.0 2022-12-11 Added ARM64 filter and clarified 32-bit
ARM endianness in Section 5.3.2,
language improvements in Section 5.4
@@ -923,6 +931,7 @@ Version 1.1.0 (2022-12-11)
0x08 2 bytes ARM Thumb filter [1]
0x09 4 bytes SPARC filter
0x0A 4 bytes ARM64 filter [2]
+ 0x0B 2 bytes RISC-V filter
[1] These are for little endian instruction encoding.
This must not be confused with data endianness.
@@ -1136,30 +1145,30 @@ Version 1.1.0 (2022-12-11)
7. References
LZMA SDK - The original LZMA implementation
- http://7-zip.org/sdk.html
+ https://7-zip.org/sdk.html
LZMA Utils - LZMA adapted to POSIX-like systems
- http://tukaani.org/lzma/
+ https://tukaani.org/lzma/
XZ Utils - The next generation of LZMA Utils
- http://tukaani.org/xz/
+ https://tukaani.org/xz/
[RFC-1952]
GZIP file format specification version 4.3
- http://www.ietf.org/rfc/rfc1952.txt
+ https://www.ietf.org/rfc/rfc1952.txt
- Notation of byte boxes in section "2.1. Overall conventions"
[RFC-2119]
Key words for use in RFCs to Indicate Requirement Levels
- http://www.ietf.org/rfc/rfc2119.txt
+ https://www.ietf.org/rfc/rfc2119.txt
[GNU-tar]
- GNU tar 1.21 manual
- http://www.gnu.org/software/tar/manual/html_node/Blocking-Factor.html
+ GNU tar 1.35 manual
+ https://www.gnu.org/software/tar/manual/html_node/Blocking-Factor.html
- Node 9.4.2 "Blocking Factor", paragraph that begins
"gzip will complain about trailing garbage"
- Note that this URL points to the latest version of the
manual, and may some day not contain the note which is in
- 1.21. For the exact version of the manual, download GNU
- tar 1.21: ftp://ftp.gnu.org/pub/gnu/tar/tar-1.21.tar.gz
+ 1.35. For the exact version of the manual, download GNU
+ tar 1.35: ftp://ftp.gnu.org/pub/gnu/tar/tar-1.35.tar.gz