浏览代码

Removing generated folders

Vinicius Teshima 2 年之前
父节点
当前提交
9f2c801e05
共有 96 个文件被更改,包括 0 次插入10776 次删除
  1. 0 177
      docs/html/ansi__escape_8h_source.html
  2. 二进制
      docs/html/bc_s.png
  3. 二进制
      docs/html/bdwn.png
  4. 0 93
      docs/html/classes.html
  5. 二进制
      docs/html/closed.png
  6. 0 95
      docs/html/cstr_8h_source.html
  7. 0 94
      docs/html/cstring_8h_source.html
  8. 0 87
      docs/html/dir_3992a0e54f569a6be1ae2aba41236f49.html
  9. 0 85
      docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
  10. 0 85
      docs/html/dir_d44c64559bbebec7f509842c48db8b23.html
  11. 0 118
      docs/html/dir_dc8d4286420b7aa8efcc9a53b027321f.html
  12. 二进制
      docs/html/doc.png
  13. 0 1841
      docs/html/doxygen.css
  14. 0 19
      docs/html/doxygen.svg
  15. 0 99
      docs/html/files.html
  16. 二进制
      docs/html/folderclosed.png
  17. 0 89
      docs/html/hash_8h_source.html
  18. 0 170
      docs/html/hashtable_8h_source.html
  19. 0 1
      docs/html/jquery.js
  20. 0 119
      docs/html/log_8h_source.html
  21. 0 127
      docs/html/menu.js
  22. 0 31
      docs/html/menudata.js
  23. 二进制
      docs/html/nav_f.png
  24. 二进制
      docs/html/nav_g.png
  25. 二进制
      docs/html/nav_h.png
  26. 二进制
      docs/html/open.png
  27. 0 100
      docs/html/random_8h_source.html
  28. 0 96
      docs/html/return__codes_8h_source.html
  29. 0 37
      docs/html/search/all_0.html
  30. 0 6
      docs/html/search/all_0.js
  31. 0 37
      docs/html/search/all_1.html
  32. 0 5
      docs/html/search/all_1.js
  33. 0 37
      docs/html/search/all_2.html
  34. 0 5
      docs/html/search/all_2.js
  35. 0 6
      docs/html/search/all_3.js
  36. 0 37
      docs/html/search/all_4.html
  37. 0 4
      docs/html/search/all_4.js
  38. 0 6
      docs/html/search/classes_0.js
  39. 0 37
      docs/html/search/classes_1.html
  40. 0 5
      docs/html/search/classes_1.js
  41. 0 5
      docs/html/search/classes_2.js
  42. 0 6
      docs/html/search/classes_3.js
  43. 0 37
      docs/html/search/classes_4.html
  44. 0 4
      docs/html/search/classes_4.js
  45. 0 31
      docs/html/search/close.svg
  46. 0 74
      docs/html/search/mag_sel.svg
  47. 0 13
      docs/html/search/nomatches.html
  48. 0 263
      docs/html/search/search.css
  49. 0 794
      docs/html/search/search.js
  50. 二进制
      docs/html/search/search_l.png
  51. 二进制
      docs/html/search/search_m.png
  52. 二进制
      docs/html/search/search_r.png
  53. 0 18
      docs/html/search/searchdata.js
  54. 二进制
      docs/html/splitbar.png
  55. 0 96
      docs/html/structarray.html
  56. 0 90
      docs/html/structcstr__fixed.html
  57. 0 97
      docs/html/structhashtable.html
  58. 0 100
      docs/html/structhashtable__item.html
  59. 0 101
      docs/html/structvec2__uint16.html
  60. 0 101
      docs/html/structvec2__uint8.html
  61. 0 101
      docs/html/structwindow.html
  62. 二进制
      docs/html/tab_a.png
  63. 二进制
      docs/html/tab_b.png
  64. 二进制
      docs/html/tab_h.png
  65. 二进制
      docs/html/tab_s.png
  66. 0 134
      docs/html/template_8h_source.html
  67. 0 100
      docs/html/vec2__uint8_8h_source.html
  68. 0 91
      docs/html/void__pointer_8h_source.html
  69. 0 101
      docs/html/vptr_8h_source.html
  70. 0 23
      docs/latex/Makefile
  71. 0 104
      docs/latex/ansi__escape_8h_source.tex
  72. 0 79
      docs/latex/args_8h_source.tex
  73. 0 75
      docs/latex/array_8h_source.tex
  74. 0 21
      docs/latex/cstring_8h_source.tex
  75. 0 601
      docs/latex/doxygen.sty
  76. 0 20
      docs/latex/files.tex
  77. 0 16
      docs/latex/hash_8h_source.tex
  78. 0 96
      docs/latex/hashtable_8h_source.tex
  79. 0 46
      docs/latex/log_8h_source.tex
  80. 0 448
      docs/latex/longtable_doxygen.sty
  81. 0 221
      docs/latex/refman.tex
  82. 0 23
      docs/latex/return__codes_8h_source.tex
  83. 0 31
      docs/latex/structargs.tex
  84. 0 16
      docs/latex/structcstr.tex
  85. 0 16
      docs/latex/structcstr__fixed.tex
  86. 0 22
      docs/latex/structhashtable.tex
  87. 0 25
      docs/latex/structhashtable__item.tex
  88. 0 23
      docs/latex/structvec2__uint16.tex
  89. 0 23
      docs/latex/structvec2__uint8.tex
  90. 0 16
      docs/latex/structvptr.tex
  91. 0 23
      docs/latex/structwindow.tex
  92. 0 2557
      docs/latex/tabu_doxygen.sty
  93. 0 61
      docs/latex/template_8h_source.tex
  94. 0 40
      docs/latex/tui_8h_source.tex
  95. 0 18
      docs/latex/void__pointer_8h_source.tex
  96. 0 27
      docs/latex/vptr_8h_source.tex

+ 0 - 177
docs/html/ansi__escape_8h_source.html

@@ -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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/ansi_escape.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">ansi_escape.h</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#ifndef TOOLBOX_ANSI_ESCAPE_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#define TOOLBOX_ANSI_ESCAPE_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="preprocessor">#define ESC_CHAR    &quot;\033&quot;</span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span> </div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="preprocessor">#define CRS_HOME        ESC_CHAR&quot;[H&quot;</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="preprocessor">#define CRS_MOV_Y_X ESC_CHAR&quot;[%d;%dH&quot;</span></div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="preprocessor">#define CRS_MOV_UP      ESC_CHAR&quot;[%dA&quot;</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="preprocessor">#define CRS_MOV_DOWN    ESC_CHAR&quot;[%dB&quot;</span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="preprocessor">#define CRS_MOV_RIGHT   ESC_CHAR&quot;[%dC&quot;</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="preprocessor">#define CRS_MOV_LEFT    ESC_CHAR&quot;[%dD&quot;</span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#define CRS_BGN_NEXT    ESC_CHAR&quot;[%dE&quot;</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#define CRS_BGN_PREV    ESC_CHAR&quot;[%dF&quot;</span></div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#define CRS_MOV_COL ESC_CHAR&quot;[%dG&quot;</span></div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">#define CRS_POS     ESC_CHAR&quot;[6n&quot;</span></div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="preprocessor">#define CRS_UP          ESC_CHAR&quot;M&quot;</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="preprocessor">#define CRS_SAV_DEC ESC_CHAR&quot;7&quot;</span></div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="preprocessor">#define CRS_RES_DEC ESC_CHAR&quot;8&quot;</span></div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#define CRS_SAV_SCO ESC_CHAR&quot;[s&quot;</span></div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#define CRS_RES_SCO ESC_CHAR&quot;[u&quot;</span></div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#define CRS_MOV_1UP ESC_CHAR&quot;[1A&quot;</span></div>
-<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#define CRS_MOV_1DOWN   ESC_CHAR&quot;[1B&quot;</span></div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#define CRS_MOV_1RIGHT  ESC_CHAR&quot;[1C&quot;</span></div>
-<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#define CRS_MOV_1LEFT   ESC_CHAR&quot;[1D&quot;</span></div>
-<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
-<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#define ERS_END_SCR ESC_CHAR&quot;[0J&quot;</span></div>
-<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#define ERS_BGN_SCR ESC_CHAR&quot;[1J&quot;</span></div>
-<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="preprocessor">#define ERS_SCR     ESC_CHAR&quot;[2J&quot;</span></div>
-<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#define ERS_SAV_LINE    ESC_CHAR&quot;[3J&quot;</span></div>
-<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="preprocessor">#define ERS_END_LINE    ESC_CHAR&quot;[0K&quot;</span></div>
-<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="preprocessor">#define ERS_BGN_LINE    ESC_CHAR&quot;[1K&quot;</span></div>
-<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="preprocessor">#define ERS_LINE        ESC_CHAR&quot;[2K&quot;</span></div>
-<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
-<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="preprocessor">#define SET_BOLD    ESC_CHAR&quot;[1m&quot;</span></div>
-<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="preprocessor">#define SET_DIM ESC_CHAR&quot;[2m&quot;</span></div>
-<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#define SET_ITALIC  ESC_CHAR&quot;[3m&quot;</span></div>
-<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="preprocessor">#define SET_UNDER   ESC_CHAR&quot;[4m&quot;</span></div>
-<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="preprocessor">#define SET_BLINK   ESC_CHAR&quot;[5m&quot;</span></div>
-<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="preprocessor">#define SET_INVERSE ESC_CHAR&quot;[7m&quot;</span></div>
-<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="preprocessor">#define SET_HIDDEN  ESC_CHAR&quot;[8m&quot;</span></div>
-<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="preprocessor">#define SET_STRIKE  ESC_CHAR&quot;[9m&quot;</span></div>
-<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span> </div>
-<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="preprocessor">#define RST_ALL ESC_CHAR&quot;[0m&quot;</span></div>
-<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span><span class="preprocessor">#define RST_BOLD    ESC_CHAR&quot;[22m&quot;</span></div>
-<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span><span class="preprocessor">#define RST_DIM ESC_CHAR&quot;[22m&quot;</span></div>
-<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span><span class="preprocessor">#define RST_ITALIC  ESC_CHAR&quot;[23m&quot;</span></div>
-<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span><span class="preprocessor">#define RST_UNDER   ESC_CHAR&quot;[24m&quot;</span></div>
-<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span><span class="preprocessor">#define RST_BLINK   ESC_CHAR&quot;[25m&quot;</span></div>
-<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span><span class="preprocessor">#define RST_INVERSE ESC_CHAR&quot;[27m&quot;</span></div>
-<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span><span class="preprocessor">#define RST_HIDDEN  ESC_CHAR&quot;[28m&quot;</span></div>
-<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span><span class="preprocessor">#define RST_STRIKE  ESC_CHAR&quot;[29m&quot;</span></div>
-<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span> </div>
-<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span><span class="preprocessor">#define FG_BLACK    ESC_CHAR&quot;[30m&quot;</span></div>
-<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span><span class="preprocessor">#define FG_RED      ESC_CHAR&quot;[31m&quot;</span></div>
-<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span><span class="preprocessor">#define FG_GREEN    ESC_CHAR&quot;[32m&quot;</span></div>
-<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span><span class="preprocessor">#define FG_YELLOW   ESC_CHAR&quot;[33m&quot;</span></div>
-<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span><span class="preprocessor">#define FG_BLUE ESC_CHAR&quot;[34m&quot;</span></div>
-<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span><span class="preprocessor">#define FG_MAGENTA  ESC_CHAR&quot;[35m&quot;</span></div>
-<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span><span class="preprocessor">#define FG_CYAN ESC_CHAR&quot;[36m&quot;</span></div>
-<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span><span class="preprocessor">#define FG_WHITE    ESC_CHAR&quot;[37m&quot;</span></div>
-<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span><span class="preprocessor">#define FG_DEFAULT  ESC_CHAR&quot;[39m&quot;</span></div>
-<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span> </div>
-<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span><span class="preprocessor">#define BG_BLACK    ESC_CHAR&quot;[40m&quot;</span></div>
-<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span><span class="preprocessor">#define BG_RED      ESC_CHAR&quot;[41m&quot;</span></div>
-<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span><span class="preprocessor">#define BG_GREEN    ESC_CHAR&quot;[42m&quot;</span></div>
-<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span><span class="preprocessor">#define BG_YELLOW   ESC_CHAR&quot;[43m&quot;</span></div>
-<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span><span class="preprocessor">#define BG_BLUE ESC_CHAR&quot;[44m&quot;</span></div>
-<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span><span class="preprocessor">#define BG_MAGENTA  ESC_CHAR&quot;[45m&quot;</span></div>
-<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span><span class="preprocessor">#define BG_CYAN ESC_CHAR&quot;[46m&quot;</span></div>
-<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span><span class="preprocessor">#define BG_WHITE    ESC_CHAR&quot;[47m&quot;</span></div>
-<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span><span class="preprocessor">#define BG_DEFAULT  ESC_CHAR&quot;[49m&quot;</span></div>
-<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span> </div>
-<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span><span class="preprocessor">#define FG_BBLACK   ESC_CHAR&quot;[90m&quot;</span></div>
-<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span><span class="preprocessor">#define FG_BRED ESC_CHAR&quot;[91m&quot;</span></div>
-<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span><span class="preprocessor">#define FG_BGREEN   ESC_CHAR&quot;[92m&quot;</span></div>
-<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span><span class="preprocessor">#define FG_BYELLOW  ESC_CHAR&quot;[93m&quot;</span></div>
-<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span><span class="preprocessor">#define FG_BBLUE    ESC_CHAR&quot;[94m&quot;</span></div>
-<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span><span class="preprocessor">#define FG_BMAGENTA ESC_CHAR&quot;[95m&quot;</span></div>
-<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span><span class="preprocessor">#define FG_BCYAN    ESC_CHAR&quot;[96m&quot;</span></div>
-<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span><span class="preprocessor">#define FG_BWHITE   ESC_CHAR&quot;[97m&quot;</span></div>
-<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span> </div>
-<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span><span class="preprocessor">#define BG_BBLACK   ESC_CHAR&quot;[100m&quot;</span></div>
-<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span><span class="preprocessor">#define BG_BRED ESC_CHAR&quot;[101m&quot;</span></div>
-<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span><span class="preprocessor">#define BG_BGREEN   ESC_CHAR&quot;[102m&quot;</span></div>
-<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span><span class="preprocessor">#define BG_BYELLOW  ESC_CHAR&quot;[103m&quot;</span></div>
-<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span><span class="preprocessor">#define BG_BBLUE    ESC_CHAR&quot;[104m&quot;</span></div>
-<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span><span class="preprocessor">#define BG_BMAGENTA ESC_CHAR&quot;[105m&quot;</span></div>
-<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span><span class="preprocessor">#define BG_BCYAN    ESC_CHAR&quot;[106m&quot;</span></div>
-<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span><span class="preprocessor">#define BG_BWHITE   ESC_CHAR&quot;[107m&quot;</span></div>
-<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span> </div>
-<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span><span class="preprocessor">#define FG_256 ESC_CHAR&quot;[38;5;%dm&quot;</span></div>
-<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span><span class="preprocessor">#define BG_256 ESC_CHAR&quot;[48;5;%dm&quot;</span></div>
-<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span> </div>
-<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span><span class="preprocessor">#define FG_RGB ESC_CHAR&quot;[38;2;%dm&quot;</span></div>
-<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span><span class="preprocessor">#define BG_RGB ESC_CHAR&quot;[48;2;%dm&quot;</span></div>
-<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span> </div>
-<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span><span class="preprocessor">#endif</span></div>
-</div><!-- fragment --></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.3
-</small></address>
-</body>
-</html>

二进制
docs/html/bc_s.png


二进制
docs/html/bdwn.png


+ 0 - 93
docs/html/classes.html

@@ -1,93 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: Data Structure Index</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<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_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_V">V</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
-<div class="classindex">
-<dl class="classindex even">
-<dt class="alphachar"><a id="letter_A" name="letter_A">A</a></dt>
-<dd><a class="el" href="structargs.html">args</a></dd><dd><a class="el" href="structargs__op.html">args_op</a></dd><dd><a class="el" href="structarray.html">array</a></dd></dl>
-<dl class="classindex odd">
-<dt class="alphachar"><a id="letter_C" name="letter_C">C</a></dt>
-<dd><a class="el" href="structcstr.html">cstr</a></dd><dd><a class="el" href="structcstr__fixed.html">cstr_fixed</a></dd></dl>
-<dl class="classindex even">
-<dt class="alphachar"><a id="letter_H" name="letter_H">H</a></dt>
-<dd><a class="el" href="structhashtable.html">hashtable</a></dd><dd><a class="el" href="structhashtable__item.html">hashtable_item</a></dd></dl>
-<dl class="classindex odd">
-<dt class="alphachar"><a id="letter_V" name="letter_V">V</a></dt>
-<dd><a class="el" href="structvec2__uint16.html">vec2_uint16</a></dd><dd><a class="el" href="structvec2__uint8.html">vec2_uint8</a></dd><dd><a class="el" href="structvptr.html">vptr</a></dd></dl>
-<dl class="classindex even">
-<dt class="alphachar"><a id="letter_W" name="letter_W">W</a></dt>
-<dd><a class="el" href="structwindow.html">window</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.3
-</small></address>
-</body>
-</html>

二进制
docs/html/closed.png


+ 0 - 95
docs/html/cstr_8h_source.html

@@ -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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/cstr.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">cstr.h</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#ifndef TOOLBOX_CSTR_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#define TOOLBOX_CSTR_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span> </div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="preprocessor">#ifdef TOOLBOX_TYPEDEF</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcstr.html">cstr</a> cstr_st;</div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span> </div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"><a class="line" href="structcstr.html">   10</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcstr.html">cstr</a> {</div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span>    <span class="keywordtype">size_t</span> size;</div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span>    <span class="keywordtype">char</span> *data;</div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span>};</div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span> </div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">#endif</span></div>
-<div class="ttc" id="astructcstr_html"><div class="ttname"><a href="structcstr.html">cstr</a></div><div class="ttdef"><b>Definition:</b> cstr.h:10</div></div>
-</div><!-- fragment --></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.3
-</small></address>
-</body>
-</html>

+ 0 - 94
docs/html/cstring_8h_source.html

@@ -1,94 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/cstring.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">cstring.h</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#ifndef TOOLBOX_CSTRING_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#define TOOLBOX_CSTRING_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span> </div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span>__attribute__((__pure__))</div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="keywordtype">size_t</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span>cstring_len(<span class="keyword">const</span> <span class="keywordtype">char</span> *cstring);</div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span> </div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span>__attribute__((__pure__))</div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="keywordtype">bool</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span>cstring_equal(<span class="keyword">const</span> <span class="keywordtype">char</span> *restrict cstring_1, <span class="keyword">const</span> <span class="keywordtype">char</span> *restrict cstring_2);</div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span> </div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">#endif</span></div>
-</div><!-- fragment --></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.3
-</small></address>
-</body>
-</html>

+ 0 - 87
docs/html/dir_3992a0e54f569a6be1ae2aba41236f49.html

@@ -1,87 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/vec2 Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li><li class="navelem"><a class="el" href="dir_3992a0e54f569a6be1ae2aba41236f49.html">vec2</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">vec2 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">file &#160;</td><td class="memItemRight" valign="bottom"><b>vec2_uint16.h</b> <a href="vec2__uint16_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>vec2_uint8.h</b> <a href="vec2__uint8_8h_source.html">[code]</a></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.3
-</small></address>
-</body>
-</html>

+ 0 - 85
docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html

@@ -1,85 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: src Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">src Directory Reference</div></div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
-Directories</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_07ff14cf5d5d1b3e2eaf958894a8be47.html">toolbox</a></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.3
-</small></address>
-</body>
-</html>

+ 0 - 85
docs/html/dir_d44c64559bbebec7f509842c48db8b23.html

@@ -1,85 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">include Directory Reference</div></div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
-Directories</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></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.3
-</small></address>
-</body>
-</html>

+ 0 - 118
docs/html/dir_dc8d4286420b7aa8efcc9a53b027321f.html

@@ -1,118 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">toolbox Directory Reference</div></div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
-Directories</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_3992a0e54f569a6be1ae2aba41236f49.html">vec2</a></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="files" name="files"></a>
-Files</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ansi_escape.h</b> <a href="ansi__escape_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>args.h</b> <a href="args_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>array.h</b> <a href="array_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>cstr.h</b> <a href="cstr_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>cstr_fixed.h</b> <a href="cstr__fixed_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>cstring.h</b> <a href="cstring_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>hash.h</b> <a href="hash_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>hashtable.h</b> <a href="hashtable_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>log.h</b> <a href="log_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>random.h</b> <a href="random_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>return_codes.h</b> <a href="return__codes_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>template.h</b> <a href="template_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>tui.h</b> <a href="tui_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>void_pointer.h</b> <a href="void__pointer_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>vptr.h</b> <a href="vptr_8h_source.html">[code]</a></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.3
-</small></address>
-</body>
-</html>

二进制
docs/html/doc.png


+ 0 - 1841
docs/html/doxygen.css

@@ -1,1841 +0,0 @@
-/* The standard CSS for doxygen 1.9.3 */
-
-body, table, div, p, dl {
-	font: 400 14px/22px Roboto,sans-serif;
-}
-
-p.reference, p.definition {
-	font: 400 14px/22px Roboto,sans-serif;
-}
-
-/* @group Heading Levels */
-
-h1.groupheader {
-	font-size: 150%;
-}
-
-.title {
-	font: 400 14px/28px Roboto,sans-serif;
-	font-size: 150%;
-	font-weight: bold;
-	margin: 10px 2px;
-}
-
-h2.groupheader {
-	border-bottom: 1px solid #879ECB;
-	color: #354C7B;
-	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 cyan;
-}
-
-dt {
-	font-weight: bold;
-}
-
-ul.multicol {
-	-moz-column-gap: 1em;
-	-webkit-column-gap: 1em;
-	column-gap: 1em;
-	-moz-column-count: 3;
-	-webkit-column-count: 3;
-	column-count: 3;
-}
-
-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 {
-	border-right: 1px solid #A3B4D7;
-	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: url('tab_a.png');
-	background-repeat:repeat-x;
-	padding-right: 6px;
-	padding-left: 6px;
-}
-
-td.navtabHL a, td.navtabHL a:visited {
-	color: #fff;
-	text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
-}
-
-a.navtab {
-	font-weight: bold;
-}
-
-div.qindex{
-	text-align: center;
-	width: 100%;
-	line-height: 140%;
-	font-size: 130%;
-	color: #A0A0A0;
-}
-
-dt.alphachar{
-	font-size: 180%;
-	font-weight: bold;
-}
-
-.alphachar a{
-	color: black;
-}
-
-.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.odd {
-	background-color: #F8F9FC;
-}
-
-@media(min-width: 1120px) {
-	.classindex dl {
-		column-count:2
-	}
-}
-
-@media(min-width: 1320px) {
-	.classindex dl {
-		column-count:3
-	}
-}
-
-
-/* @group Link Styling */
-
-a {
-	color: #3D578C;
-	font-weight: normal;
-	text-decoration: none;
-}
-
-.contents a:visited {
-	color: #4665A2;
-}
-
-a:hover {
-	text-decoration: underline;
-}
-
-.contents a.qindexHL:visited {
-        color: #FFFFFF;
-}
-
-a.el {
-	font-weight: bold;
-}
-
-a.elRef {
-}
-
-a.code, a.code:visited, a.line, a.line:visited {
-	color: #4665A2; 
-}
-
-a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
-	color: #4665A2; 
-}
-
-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;
-}
-
-#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 #C4CFE5;
-        background-color: #FBFCFD;
-        padding: 4px 6px;
-        margin: 4px 8px 4px 2px;
-        overflow: auto;
-        word-wrap: break-word;
-        font-size:  9pt;
-        line-height: 125%;
-        font-family: monospace, fixed;
-        font-size: 105%;
-}
-
-div.fragment {
-  padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
-  margin: 4px 8px 4px 2px;
-	background-color: #FBFCFD;
-	border: 1px solid #C4CFE5;
-}
-
-div.line {
-	font-family: monospace, fixed;
-        font-size: 13px;
-	min-height: 13px;
-	line-height: 1.0;
-	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: cyan;
-	box-shadow: 0 0 10px cyan;
-}
-
-
-span.lineno {
-	padding-right: 4px;
-        margin-right: 9px;
-	text-align: right;
-	border-right: 2px solid #0F0;
-	background-color: #E8E8E8;
-        white-space: pre;
-}
-span.lineno a {
-	background-color: #D8D8D8;
-}
-
-span.lineno a:hover {
-	background-color: #C8C8C8;
-}
-
-.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.ah, span.ah {
-	background-color: black;
-	font-weight: bold;
-	color: #FFFFFF;
-	margin-bottom: 3px;
-	margin-top: 3px;
-	padding: 0.2em;
-	border: solid thin #333;
-	border-radius: 0.5em;
-	-webkit-border-radius: .5em;
-	-moz-border-radius: .5em;
-	box-shadow: 2px 2px 3px #999;
-	-webkit-box-shadow: 2px 2px 3px #999;
-	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
-	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
-	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
-}
-
-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 {
-	background-color: white;
-	color: black;
-        margin: 0;
-}
-
-div.contents {
-	margin-top: 10px;
-	margin-left: 12px;
-	margin-right: 8px;
-}
-
-td.indexkey {
-	background-color: #EBEFF6;
-	font-weight: bold;
-	border: 1px solid #C4CFE5;
-	margin: 2px 0px 2px 0;
-	padding: 2px 10px;
-        white-space: nowrap;
-        vertical-align: top;
-}
-
-td.indexvalue {
-	background-color: #EBEFF6;
-	border: 1px solid #C4CFE5;
-	padding: 2px 10px;
-	margin: 2px 0px;
-}
-
-tr.memlist {
-	background-color: #EEF1F7;
-}
-
-p.formulaDsp {
-	text-align: center;
-}
-
-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;
-}
-
-.compoundTemplParams {
-	color: #4665A2;
-	font-size: 80%;
-	line-height: 120%;
-}
-
-/* @group Code Colorization */
-
-span.keyword {
-	color: #008000
-}
-
-span.keywordtype {
-	color: #604020
-}
-
-span.keywordflow {
-	color: #e08000
-}
-
-span.comment {
-	color: #800000
-}
-
-span.preprocessor {
-	color: #806020
-}
-
-span.stringliteral {
-	color: #002080
-}
-
-span.charliteral {
-	color: #008080
-}
-
-span.vhdldigit { 
-	color: #ff00ff 
-}
-
-span.vhdlchar { 
-	color: #000000 
-}
-
-span.vhdlkeyword { 
-	color: #700070 
-}
-
-span.vhdllogic { 
-	color: #ff0000 
-}
-
-blockquote {
-        background-color: #F7F8FB;
-        border-left: 2px solid #9CAFD4;
-        margin: 0 24px 0 4px;
-        padding: 0 12px 0 16px;
-}
-
-blockquote.DocNodeRTL {
-   border-left: 0;
-   border-right: 2px solid #9CAFD4;
-   margin: 0 4px 0 24px;
-   padding: 0 16px 0 12px;
-}
-
-/* @end */
-
-/*
-.search {
-	color: #003399;
-	font-weight: bold;
-}
-
-form.search {
-	margin-bottom: 0px;
-	margin-top: 0px;
-}
-
-input.search {
-	font-size: 75%;
-	color: #000080;
-	font-weight: normal;
-	background-color: #e8eef2;
-}
-*/
-
-td.tiny {
-	font-size: 75%;
-}
-
-.dirtab {
-	padding: 4px;
-	border-collapse: collapse;
-	border: 1px solid #A3B4D7;
-}
-
-th.dirtab {
-	background: #EBEFF6;
-	font-weight: bold;
-}
-
-hr {
-	height: 0px;
-	border: none;
-	border-top: 1px solid #4A6AAA;
-}
-
-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: cyan;
-	box-shadow: 0 0 15px cyan;
-}
-
-.mdescLeft, .mdescRight,
-.memItemLeft, .memItemRight,
-.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
-	background-color: #F9FAFC;
-	border: none;
-	margin: 4px;
-	padding: 1px 0 0 8px;
-}
-
-.mdescLeft, .mdescRight {
-	padding: 0px 8px 4px 8px;
-	color: #555;
-}
-
-.memSeparator {
-        border-bottom: 1px solid #DEE4F0;
-        line-height: 1px;
-        margin: 0px;
-        padding: 0px;
-}
-
-.memItemLeft, .memTemplItemLeft {
-        white-space: nowrap;
-}
-
-.memItemRight, .memTemplItemRight {
-	width: 100%;
-}
-
-.memTemplParams {
-	color: #4665A2;
-        white-space: nowrap;
-	font-size: 80%;
-}
-
-/* @end */
-
-/* @group Member Details */
-
-/* Styles for detailed member documentation */
-
-.memtitle {
-	padding: 8px;
-	border-top: 1px solid #A8B8D9;
-	border-left: 1px solid #A8B8D9;
-	border-right: 1px solid #A8B8D9;
-	border-top-right-radius: 4px;
-	border-top-left-radius: 4px;
-	margin-bottom: -1px;
-	background-image: url('nav_f.png');
-	background-repeat: repeat-x;
-	background-color: #E2E8F2;
-	line-height: 1.25;
-	font-weight: 300;
-	float:left;
-}
-
-.permalink
-{
-        font-size: 65%;
-        display: inline-block;
-        vertical-align: middle;
-}
-
-.memtemplate {
-	font-size: 80%;
-	color: #4665A2;
-	font-weight: normal;
-	margin-left: 9px;
-}
-
-.memnav {
-	background-color: #EBEFF6;
-	border: 1px solid #A3B4D7;
-	text-align: center;
-	margin: 2px;
-	margin-right: 15px;
-	padding: 2px;
-}
-
-.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 cyan;
-}
-
-.memname {
-        font-weight: 400;
-        margin-left: 6px;
-}
-
-.memname td {
-	vertical-align: bottom;
-}
-
-.memproto, dl.reflist dt {
-        border-top: 1px solid #A8B8D9;
-        border-left: 1px solid #A8B8D9;
-        border-right: 1px solid #A8B8D9;
-        padding: 6px 0px 6px 0px;
-        color: #253555;
-        font-weight: bold;
-        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
-        background-color: #DFE5F1;
-        /* opera specific markup */
-        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-        border-top-right-radius: 4px;
-        /* firefox specific markup */
-        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-        -moz-border-radius-topright: 4px;
-        /* webkit specific markup */
-        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-        -webkit-border-top-right-radius: 4px;
-
-}
-
-.overload {
-        font-family: "courier new",courier,monospace;
-	font-size: 65%;
-}
-
-.memdoc, dl.reflist dd {
-        border-bottom: 1px solid #A8B8D9;      
-        border-left: 1px solid #A8B8D9;      
-        border-right: 1px solid #A8B8D9; 
-        padding: 6px 10px 2px 10px;
-        background-color: #FBFCFD;
-        border-top-width: 0;
-        background-image:url('nav_g.png');
-        background-repeat:repeat-x;
-        background-color: #FFFFFF;
-        /* 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: #602020;
-	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: "courier new",courier,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: #728DC1;
-        border-top:1px solid #5373B4;
-        border-left:1px solid #5373B4;
-        border-right:1px solid #C4CFE5;
-        border-bottom:1px solid #C4CFE5;
-	text-shadow: none;
-	color: white;
-	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 #9CAFD4;
-        border-bottom: 1px solid #9CAFD4;
-        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.even {
-	padding-left: 6px;
-	background-color: #F7F8FB;
-}
-
-.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: #3D578C;
-}
-
-.arrow {
-    color: #9CAFD4;
-    -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: Arial, Helvetica;
-    font-weight: bold;
-    font-size: 12px;
-    height: 14px;
-    width: 16px;
-    display: inline-block;
-    background-color: #728DC1;
-    color: white;
-    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:url('folderopen.png');
-    background-position: 0px -4px;
-    background-repeat: repeat-y;
-    vertical-align:top;
-    display: inline-block;
-}
-
-.iconfclosed {
-    width: 24px;
-    height: 18px;
-    margin-bottom: 4px;
-    background-image:url('folderclosed.png');
-    background-position: 0px -4px;
-    background-repeat: repeat-y;
-    vertical-align:top;
-    display: inline-block;
-}
-
-.icondoc {
-    width: 24px;
-    height: 18px;
-    margin-bottom: 4px;
-    background-image:url('doc.png');
-    background-position: 0px -4px;
-    background-repeat: repeat-y;
-    vertical-align:top;
-    display: inline-block;
-}
-
-table.directory {
-    font: 400 14px Roboto,sans-serif;
-}
-
-/* @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: #2A3D61;
-}
-
-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 #2D4068;
-	padding: 3px 7px 2px;
-}
-
-table.doxtable th {
-	background-color: #374F7F;
-	color: #FFFFFF;
-	font-size: 110%;
-	padding-bottom: 4px;
-	padding-top: 5px;
-}
-
-table.fieldtable {
-        /*width: 100%;*/
-        margin-bottom: 10px;
-        border: 1px solid #A8B8D9;
-        border-spacing: 0px;
-        -moz-border-radius: 4px;
-        -webkit-border-radius: 4px;
-        border-radius: 4px;
-        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
-        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
-        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 #A8B8D9;
-        border-bottom: 1px solid #A8B8D9;
-        vertical-align: top;
-}
-
-.fieldtable td.fieldname {
-        padding-top: 3px;
-}
-
-.fieldtable td.fielddoc {
-        border-bottom: 1px solid #A8B8D9;
-        /*width: 100%;*/
-}
-
-.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:url('nav_f.png');
-        background-repeat:repeat-x;
-        background-color: #E2E8F2;
-        font-size: 90%;
-        color: #253555;
-        padding-bottom: 4px;
-        padding-top: 5px;
-        text-align:left;
-        font-weight: 400;
-        -moz-border-radius-topleft: 4px;
-        -moz-border-radius-topright: 4px;
-        -webkit-border-top-left-radius: 4px;
-        -webkit-border-top-right-radius: 4px;
-        border-top-left-radius: 4px;
-        border-top-right-radius: 4px;
-        border-bottom: 1px solid #A8B8D9;
-}
-
-
-.tabsearch {
-	top: 0px;
-	left: 10px;
-	height: 36px;
-	background-image: url('tab_b.png');
-	z-index: 101;
-	overflow: hidden;
-	font-size: 13px;
-}
-
-.navpath ul
-{
-	font-size: 11px;
-	background-image:url('tab_b.png');
-	background-repeat:repeat-x;
-	background-position: 0 -5px;
-	height:30px;
-	line-height:30px;
-	color:#8AA0CC;
-	border:solid 1px #C2CDE4;
-	overflow:hidden;
-	margin:0px;
-	padding:0px;
-}
-
-.navpath li
-{
-	list-style-type:none;
-	float:left;
-	padding-left:10px;
-	padding-right:15px;
-	background-image:url('bc_s.png');
-	background-repeat:no-repeat;
-	background-position:right;
-	color:#364D7C;
-}
-
-.navpath li.navelem a
-{
-	height:32px;
-	display:block;
-	text-decoration: none;
-	outline: none;
-	color: #283A5D;
-	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
-	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
-	text-decoration: none;        
-}
-
-.navpath li.navelem a:hover
-{
-	color:#6884BD;
-}
-
-.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:#364D7C;
-        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:url('nav_h.png');
-        background-repeat:repeat-x;
-	background-color: #F9FAFC;
-	margin:  0px;
-	border-bottom: 1px solid #C4CFE5;
-}
-
-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.section.DocNodeRTL {
-  margin-right: 0px;
-  padding-right: 0px;
-}
-
-dl.note {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #D0C000;
-}
-
-dl.note.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #D0C000;
-}
-
-dl.warning, dl.attention {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #FF0000;
-}
-
-dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 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.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #00D000;
-}
-
-dl.deprecated {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #505050;
-}
-
-dl.deprecated.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #505050;
-}
-
-dl.todo {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #00C0E0;
-}
-
-dl.todo.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #00C0E0;
-}
-
-dl.test {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #3030E0;
-}
-
-dl.test.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #3030E0;
-}
-
-dl.bug {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #C08050;
-}
-
-dl.bug.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 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: 200% Tahoma, Arial,sans-serif;
-	margin: 0px;
-	padding: 2px 0px;
-}
-    
-#projectbrief
-{
-	font: 90% Tahoma, Arial,sans-serif;
-	margin: 0px;
-	padding: 0px;
-}
-
-#projectnumber
-{
-	font: 50% Tahoma, Arial,sans-serif;
-	margin: 0px;
-	padding: 0px;
-}
-
-#titlearea
-{
-	padding: 0px;
-	margin: 0px;
-	width: 100%;
-	border-bottom: 1px solid #5373B4;
-}
-
-.image
-{
-        text-align: center;
-}
-
-.dotgraph
-{
-        text-align: center;
-}
-
-.mscgraph
-{
-        text-align: center;
-}
-
-.plantumlgraph
-{
-        text-align: center;
-}
-
-.diagraph
-{
-        text-align: center;
-}
-
-.caption
-{
-	font-weight: bold;
-}
-
-div.zoom
-{
-	border: 1px solid #90A5CE;
-}
-
-dl.citelist {
-        margin-bottom:50px;
-}
-
-dl.citelist dt {
-        color:#334975;
-        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: #F4F6FA;
-        border: 1px solid #D8DFEE;
-        border-radius: 7px 7px 7px 7px;
-        float: right;
-        height: auto;
-        margin: 0 8px 10px 10px;
-        width: 200px;
-}
-
-.PageDocRTL-title div.toc {
-  float: left !important;
-  text-align: right;
-}
-
-div.toc li {
-        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
-        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
-        margin-top: 5px;
-        padding-left: 10px;
-        padding-top: 2px;
-}
-
-.PageDocRTL-title div.toc li {
-  background-position-x: right !important;
-  padding-left: 0 !important;
-  padding-right: 10px;
-}
-
-div.toc h3 {
-        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
-	color: #4665A2;
-        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: 30px;
-}
-
-div.toc li.level4 {
-        margin-left: 45px;
-}
-
-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;
-}
-
-.PageDocRTL-title div.toc li.level1 {
-  margin-left: 0 !important;
-  margin-right: 0;
-}
-
-.PageDocRTL-title div.toc li.level2 {
-  margin-left: 0 !important;
-  margin-right: 15px;
-}
-
-.PageDocRTL-title div.toc li.level3 {
-  margin-left: 0 !important;
-  margin-right: 30px;
-}
-
-.PageDocRTL-title div.toc li.level4 {
-  margin-left: 0 !important;
-  margin-right: 45px;
-}
-
-.inherit_header {
-        font-weight: bold;
-        color: gray;
-        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;*/
-	background-color: white;
-	border: 1px solid gray;
-	border-radius: 4px 4px 4px 4px;
-	box-shadow: 1px 1px 7px gray;
-	display: none;
-	font-size: smaller;
-	max-width: 80%;
-	opacity: 0.9;
-	padding: 1ex 1em 1em;
-	position: absolute;
-	z-index: 2147483647;
-}
-
-#powerTip div.ttdoc {
-        color: grey;
-	font-style: italic;
-}
-
-#powerTip div.ttname a {
-        font-weight: bold;
-}
-
-#powerTip div.ttname {
-        font-weight: bold;
-}
-
-#powerTip div.ttdeci {
-        color: #006318;
-}
-
-#powerTip div {
-        margin: 0px;
-        padding: 0px;
-        font: 12px/16px Roboto,sans-serif;
-}
-
-#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: #FFFFFF;
-	border-width: 10px;
-	margin: 0px -10px;
-}
-#powerTip.n:before {
-	border-top-color: #808080;
-	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: #FFFFFF;
-	border-width: 10px;
-	margin: 0px -10px;
-}
-
-#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
-	border-bottom-color: #808080;
-	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: #FFFFFF;
-	border-width: 10px;
-	top: 50%;
-	margin-top: -10px;
-}
-#powerTip.e:before {
-	border-left-color: #808080;
-	border-width: 11px;
-	top: 50%;
-	margin-top: -11px;
-}
-
-#powerTip.w:after, #powerTip.w:before {
-	right: 100%;
-}
-#powerTip.w:after {
-	border-right-color: #FFFFFF;
-	border-width: 10px;
-	top: 50%;
-	margin-top: -10px;
-}
-#powerTip.w:before {
-	border-right-color: #808080;
-	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 #2D4068;
-	padding: 3px 7px 2px;
-}
-
-table.markdownTable tr {
-}
-
-th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
-	background-color: #374F7F;
-	color: #FFFFFF;
-	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
-}
-
-.DocNodeRTL {
-  text-align: right;
-  direction: rtl;
-}
-
-.DocNodeLTR {
-  text-align: left;
-  direction: ltr;
-}
-
-table.DocNodeRTL {
-   width: auto;
-   margin-right: 0;
-   margin-left: auto;
-}
-
-table.DocNodeLTR {
-   width: auto;
-   margin-right: auto;
-   margin-left: 0;
-}
-
-code.JavaDocCode
-  direction:ltr;
-}
-
-tt, code, kbd, samp
-{
-  display: inline-block;
-  direction:ltr; 
-}
-/* @end */
-
-u {
-	text-decoration: underline;
-}
-

文件差异内容过多而无法显示
+ 0 - 19
docs/html/doxygen.svg


+ 0 - 99
docs/html/files.html

@@ -1,99 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: File List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<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 onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</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" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html" target="_self">include</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html" target="_self">toolbox</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_0_" class="arrow" onclick="toggleFolder('0_0_0_')">&#9660;</span><span id="img_0_0_0_" class="iconfopen" onclick="toggleFolder('0_0_0_')">&#160;</span><a class="el" href="dir_3992a0e54f569a6be1ae2aba41236f49.html" target="_self">vec2</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="vec2__uint16_8h_source.html"><span class="icondoc"></span></a><b>vec2_uint16.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="vec2__uint8_8h_source.html"><span class="icondoc"></span></a><b>vec2_uint8.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="ansi__escape_8h_source.html"><span class="icondoc"></span></a><b>ansi_escape.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="args_8h_source.html"><span class="icondoc"></span></a><b>args.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="array_8h_source.html"><span class="icondoc"></span></a><b>array.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="cstr_8h_source.html"><span class="icondoc"></span></a><b>cstr.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="cstr__fixed_8h_source.html"><span class="icondoc"></span></a><b>cstr_fixed.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="cstring_8h_source.html"><span class="icondoc"></span></a><b>cstring.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_7_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="hash_8h_source.html"><span class="icondoc"></span></a><b>hash.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="hashtable_8h_source.html"><span class="icondoc"></span></a><b>hashtable.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="log_8h_source.html"><span class="icondoc"></span></a><b>log.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="random_8h_source.html"><span class="icondoc"></span></a><b>random.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_11_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="return__codes_8h_source.html"><span class="icondoc"></span></a><b>return_codes.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_12_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="template_8h_source.html"><span class="icondoc"></span></a><b>template.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_13_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="tui_8h_source.html"><span class="icondoc"></span></a><b>tui.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_14_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="void__pointer_8h_source.html"><span class="icondoc"></span></a><b>void_pointer.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_15_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="vptr_8h_source.html"><span class="icondoc"></span></a><b>vptr.h</b></td><td class="desc"></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.3
-</small></address>
-</body>
-</html>

二进制
docs/html/folderclosed.png


+ 0 - 89
docs/html/hash_8h_source.html

@@ -1,89 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/hash.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">hash.h</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#ifndef TOOLBOX_HASH_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#define TOOLBOX_HASH_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span> </div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span>__attribute__((__pure__))</div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span>uint64_t</div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span>hash_cstr(<span class="keyword">const</span> <span class="keywordtype">char</span> *r_p_cstr);</div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span> </div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="preprocessor">#endif</span></div>
-</div><!-- fragment --></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.3
-</small></address>
-</body>
-</html>

+ 0 - 170
docs/html/hashtable_8h_source.html

@@ -1,170 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/hashtable.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">hashtable.h</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#ifndef TOOLBOX_HASHTABLE_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#define TOOLBOX_HASHTABLE_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="preprocessor">#include &quot;toolbox/return_codes.h&quot;</span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span> </div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span> </div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="preprocessor">#ifndef HASHTABLE_SIZE_BYTES</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="preprocessor">#define HASHTABLE_SIZE_BYTES (1024*1024)</span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#ifdef TOOLBOX_TYPEDEF</span></div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structhashtable.html">hashtable</a> hashtable_st;</div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span> </div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="keyword">struct </span><a class="code hl_struct" href="structhashtable.html">hashtable</a>;</div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>__attribute__((__pure__))</div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="keyword">struct </span><a class="code hl_struct" href="structhashtable.html">hashtable</a> *</div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>hashtable_create(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>RET_TYPE</div>
-<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>hashtable_destroy(<span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> **self);</div>
-<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
-<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>__attribute__((__pure__))</div>
-<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keywordtype">bool</span></div>
-<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>hashtable_contain_item(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self</div>
-<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>                        , <span class="keyword">const</span> <span class="keywordtype">void</span>* item, <span class="keyword">const</span> <span class="keywordtype">size_t</span> item_size);</div>
-<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
-<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>__attribute__((__pure__))</div>
-<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keywordtype">bool</span></div>
-<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>hashtable_contain_key(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self</div>
-<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>                       , <span class="keyword">const</span> <span class="keywordtype">char</span> *key);</div>
-<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
-<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>__attribute__((__pure__))</div>
-<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="keywordtype">bool</span></div>
-<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>hashtable_contain_key_hash(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self</div>
-<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>                            , <span class="keyword">const</span> <span class="keywordtype">size_t</span> key_hash);</div>
-<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
-<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>__attribute__((__pure__))</div>
-<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">const</span> <span class="keywordtype">void</span> *</div>
-<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>hashtable_get(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self</div>
-<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>              , <span class="keyword">const</span> <span class="keywordtype">char</span> *key);</div>
-<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span> </div>
-<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>__attribute__((__pure__))</div>
-<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span><span class="keyword">const</span> <span class="keywordtype">void</span> *</div>
-<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>hashtable_get_or_default(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self</div>
-<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>                         , <span class="keyword">const</span> <span class="keywordtype">char</span> *key</div>
-<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>                         , <span class="keyword">const</span> <span class="keywordtype">void</span> *default_item);</div>
-<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span> </div>
-<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>__attribute__((__pure__))</div>
-<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span><span class="keywordtype">bool</span></div>
-<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>hashtable_is_empty(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self);</div>
-<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span> </div>
-<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>RET_TYPE</div>
-<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>hashtable_put(<span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self</div>
-<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>              , <span class="keyword">const</span> <span class="keywordtype">char</span> *key</div>
-<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>              , <span class="keyword">const</span> <span class="keywordtype">void</span> *item, <span class="keyword">const</span> <span class="keywordtype">size_t</span> item_size);</div>
-<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span> </div>
-<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span><span class="keyword">const</span> <span class="keywordtype">void</span> *</div>
-<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>hashtable_remove(<span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self, <span class="keyword">const</span> <span class="keywordtype">char</span> *key);</div>
-<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span> </div>
-<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span><span class="keywordtype">bool</span></div>
-<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>hashtable_remove_if_equal(<span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self</div>
-<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>                          , <span class="keyword">const</span> <span class="keywordtype">char</span> *key</div>
-<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span>                          , <span class="keyword">const</span> <span class="keywordtype">void</span> *item, <span class="keyword">const</span> <span class="keywordtype">size_t</span> item_size);</div>
-<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span> </div>
-<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span><span class="keyword">const</span> <span class="keywordtype">void</span> *</div>
-<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>hashtable_replace(<span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self</div>
-<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>                  , <span class="keyword">const</span> <span class="keywordtype">char</span> *key</div>
-<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>                  , <span class="keyword">const</span> <span class="keywordtype">void</span> *item, <span class="keyword">const</span> <span class="keywordtype">size_t</span> item_size);</div>
-<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span> </div>
-<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span><span class="keywordtype">bool</span></div>
-<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>hashtable_replace_if_equal(<span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self</div>
-<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>                           , <span class="keyword">const</span> <span class="keywordtype">char</span> *key</div>
-<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span>                           , <span class="keyword">const</span> <span class="keywordtype">void</span> *restrict old_item</div>
-<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>                           , <span class="keyword">const</span> <span class="keywordtype">size_t</span> item_old_size</div>
-<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span>                           , <span class="keyword">const</span> <span class="keywordtype">void</span> *restrict new_item</div>
-<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span>                           , <span class="keyword">const</span> <span class="keywordtype">size_t</span> item_new_size);</div>
-<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span> </div>
-<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span><span class="keywordtype">size_t</span></div>
-<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span>hashtable_used_size(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self);</div>
-<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span> </div>
-<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span>RET_TYPE</div>
-<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>hashtable_for_each(<span class="keyword">struct</span> <a class="code hl_struct" href="structhashtable.html">hashtable</a> *self</div>
-<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>                   , <span class="keywordtype">void</span> (*for_each)(<span class="keywordtype">void</span> *item, <span class="keywordtype">size_t</span> *item_size));</div>
-<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span> </div>
-<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span><span class="preprocessor">#endif</span></div>
-<div class="ttc" id="astructhashtable_html"><div class="ttname"><a href="structhashtable.html">hashtable</a></div><div class="ttdef"><b>Definition:</b> hashtable.c:29</div></div>
-</div><!-- fragment --></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.3
-</small></address>
-</body>
-</html>

文件差异内容过多而无法显示
+ 0 - 1
docs/html/jquery.js


+ 0 - 119
docs/html/log_8h_source.html

@@ -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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/log.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">log.h</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#ifndef TOOLBOX_LOG_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#define TOOLBOX_LOG_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="preprocessor">#include &quot;toolbox/ansi_escape.h&quot;</span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span> </div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span> </div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="preprocessor">#ifndef LOG_FILE_OUT</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="preprocessor">#define LOG_FILE_OUT stdout</span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span> </div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#define LOGV_TEST(MSG, ...)                                             \</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">    fprintf(LOG_FILE_OUT                                                \</span></div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">            , FG_MAGENTA&quot;&quot;</span>SET_BLINK&quot;[TEST] (%s:%d) &quot;MSG&quot;&quot;RST_ALL&quot;\n&quot;    \</div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span>            , __FILE_NAME__, __LINE__, __VA_ARGS__)</div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="preprocessor">#define LOGV_INFO(MSG, ...)                                         \</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="preprocessor">    fprintf(LOG_FILE_OUT, &quot;[INFO] (%s:%d) &quot;</span>MSG&quot;&quot;RST_ALL&quot;\n&quot;             \</div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>            , __FILE_NAME__, __LINE__, __VA_ARGS__)</div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#define LOGV_WARNING(MSG, ...)                                          \</span></div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">    fprintf(LOG_FILE_OUT, FG_YELLOW&quot;[WARNING] (%s:%d) &quot;</span>MSG&quot;&quot;RST_ALL&quot;\n&quot; \</div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>            , __FILE_NAME__, __LINE__, __VA_ARGS__)</div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#define LOGV_ERROR(MSG, ...)                                       \</span></div>
-<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">    fprintf(LOG_FILE_OUT, FG_RED&quot;[ERROR] (%s:%d) &quot;</span>MSG&quot;&quot;RST_ALL&quot;\n&quot; \</div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>            , __FILE_NAME__, __LINE__, __VA_ARGS__)</div>
-<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
-<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#define LOG_TEST(MSG)                                                   \</span></div>
-<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">    fprintf(LOG_FILE_OUT                                                \</span></div>
-<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">            , FG_MAGENTA&quot;&quot;</span>SET_BLINK&quot;[TEST] (%s:%d) &quot;MSG&quot;&quot;RST_ALL&quot;\n&quot;    \</div>
-<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>            , __FILE_NAME__, __LINE__)</div>
-<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#define LOG_INFO(MSG)                                                   \</span></div>
-<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="preprocessor">    fprintf(LOG_FILE_OUT, &quot;[INFO] (%s:%d) &quot;</span>MSG&quot;&quot;RST_ALL&quot;\n&quot;             \</div>
-<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>            , __FILE_NAME__, __LINE__)</div>
-<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="preprocessor">#define LOG_WARNING(MSG)                                                \</span></div>
-<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="preprocessor">    fprintf(LOG_FILE_OUT, FG_YELLOW&quot;[WARNING] (%s:%d) &quot;</span>MSG&quot;&quot;RST_ALL&quot;\n&quot; \</div>
-<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>            , __FILE_NAME__, __LINE__)</div>
-<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="preprocessor">#define LOG_ERROR(MSG)                                             \</span></div>
-<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">    fprintf(LOG_FILE_OUT, FG_RED&quot;[ERROR] (%s:%d) &quot;</span>MSG&quot;&quot;RST_ALL&quot;\n&quot; \</div>
-<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>            , __FILE_NAME__, __LINE__)</div>
-<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
-<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="preprocessor">#endif</span></div>
-</div><!-- fragment --></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.3
-</small></address>
-</body>
-</html>

+ 0 - 127
docs/html/menu.js

@@ -1,127 +0,0 @@
-/*
- @licstart  The following is the entire license notice for the JavaScript code in this file.
-
- The MIT License (MIT)
-
- Copyright (C) 1997-2020 by Dimitri van Heesch
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- and associated documentation files (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge, publish, distribute,
- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or
- substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- @licend  The above is the entire license notice for the JavaScript code in this file
- */
-function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
-  function makeTree(data,relPath) {
-    var result='';
-    if ('children' in data) {
-      result+='<ul>';
-      for (var i in data.children) {
-        result+='<li><a href="'+relPath+data.children[i].url+'">'+
-                                data.children[i].text+'</a>'+
-                                makeTree(data.children[i],relPath)+'</li>';
-      }
-      result+='</ul>';
-    }
-    return result;
-  }
-  var searchBox;
-  if (searchEnabled) {
-    if (serverSide) {
-      searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
-                 '<div class="left">'+
-                  '<form id="FSearchBox" action="'+relPath+searchPage+
-                    '" method="get"><img id="MSearchSelect" src="'+
-                    relPath+'search/mag.svg" alt=""/>'+
-                  '<input type="text" id="MSearchField" name="query" value="'+search+
-                    '" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
-                    ' onblur="searchBox.OnSearchFieldFocus(false)">'+
-                  '</form>'+
-                 '</div>'+
-                 '<div class="right"></div>'+
-                '</div>';
-    } else {
-      searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
-                 '<span class="left">'+
-                  '<img id="MSearchSelect" src="'+relPath+
-                     'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()"'+
-                     ' onmouseout="return searchBox.OnSearchSelectHide()" alt=""/>'+
-                  '<input type="text" id="MSearchField" value="'+search+
-                    '" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
-                    'onblur="searchBox.OnSearchFieldFocus(false)" '+
-                    'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
-                 '</span>'+
-                 '<span class="right"><a id="MSearchClose" '+
-                  'href="javascript:searchBox.CloseResultsWindow()">'+
-                  '<img id="MSearchCloseImg" border="0" src="'+relPath+
-                  'search/close.svg" alt=""/></a>'
-                 '</span>'
-                '</div>';
-    }
-  }
-
-  $('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
-                        '<label class="main-menu-btn" for="main-menu-state">'+
-                        '<span class="main-menu-btn-icon"></span> '+
-                        'Toggle main menu visibility</label>'+
-                        '<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
-                        '</div>');
-  $('#main-nav').append(makeTree(menudata,relPath));
-  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
-  if (searchBox) {
-    $('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
-  }
-  var $mainMenuState = $('#main-menu-state');
-  var prevWidth = 0;
-  if ($mainMenuState.length) {
-    function initResizableIfExists() {
-      if (typeof initResizable==='function') initResizable();
-    }
-    // animate mobile menu
-    $mainMenuState.change(function(e) {
-      var $menu = $('#main-menu');
-      var options = { duration: 250, step: initResizableIfExists };
-      if (this.checked) {
-        options['complete'] = function() { $menu.css('display', 'block') };
-        $menu.hide().slideDown(options);
-      } else {
-        options['complete'] = function() { $menu.css('display', 'none') };
-        $menu.show().slideUp(options);
-      }
-    });
-    // set default menu visibility
-    function resetState() {
-      var $menu = $('#main-menu');
-      var $mainMenuState = $('#main-menu-state');
-      var newWidth = $(window).outerWidth();
-      if (newWidth!=prevWidth) {
-        if ($(window).outerWidth()<768) {
-          $mainMenuState.prop('checked',false); $menu.hide();
-          $('#searchBoxPos1').html(searchBox);
-          $('#searchBoxPos2').hide();
-        } else {
-          $menu.show();
-          $('#searchBoxPos1').empty();
-          $('#searchBoxPos2').html(searchBox);
-          $('#searchBoxPos2').show();
-        }
-        prevWidth = newWidth;
-      }
-    }
-    $(window).ready(function() { resetState(); initResizableIfExists(); });
-    $(window).resize(resetState);
-  }
-  $('#main-menu').smartmenus();
-}
-/* @license-end */

+ 0 - 31
docs/html/menudata.js

@@ -1,31 +0,0 @@
-/*
- @licstart  The following is the entire license notice for the JavaScript code in this file.
-
- The MIT License (MIT)
-
- Copyright (C) 1997-2020 by Dimitri van Heesch
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- and associated documentation files (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge, publish, distribute,
- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or
- substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- @licend  The above is the entire license notice for the JavaScript code in this file
-*/
-var menudata={children:[
-{text:"Main Page",url:"index.html"},
-{text:"Data Structures",url:"annotated.html",children:[
-{text:"Data Structures",url:"annotated.html"},
-{text:"Data Structure Index",url:"classes.html"}]},
-{text:"Files",url:"files.html",children:[
-{text:"File List",url:"files.html"}]}]}

二进制
docs/html/nav_f.png


二进制
docs/html/nav_g.png


二进制
docs/html/nav_h.png


二进制
docs/html/open.png


+ 0 - 100
docs/html/random_8h_source.html

@@ -1,100 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/random.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">random.h</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#ifndef TOOLBOX_RANDOM_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#define TOOLBOX_RANDOM_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span> </div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="keywordtype">char</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span>rand_print_char(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span> </div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span>int8_t</div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span>rand_int8(int8_t min, int8_t max);</div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span> </div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span>int16_t</div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span>rand_int16(int16_t min, int16_t max);</div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span> </div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span>int32_t</div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span>rand_int32(int32_t min, int32_t max);</div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span> </div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>int64_t</div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>rand_int64(int64_t min, int64_t max);</div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#endif</span></div>
-</div><!-- fragment --></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.3
-</small></address>
-</body>
-</html>

+ 0 - 96
docs/html/return__codes_8h_source.html

@@ -1,96 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/return_codes.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">return_codes.h</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#ifndef TOOLBOX_RETURN_VALUES_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#define TOOLBOX_RETURN_VALUES_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span> </div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="preprocessor">#define RET_TYPE uint8_t</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span> </div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="preprocessor">#define RET_OK (0L)</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="preprocessor">#define RET_ERR_VALUE_NULL (1L)</span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="preprocessor">#define RET_ERR_VALUE_BIGGER_THAN_SIZE (2L)</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="preprocessor">#define RET_ERR_FAILED_MALLOC (3L)</span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#define RET_ERR_ITEM_DOES_NOT_EXIST (4L)</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#define RET_ERR_ITEM_ALREADY_EXIST (5L)</span></div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span> </div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="keyword">extern</span> RET_TYPE toolbox_errno;</div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span> </div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="preprocessor">#endif</span></div>
-</div><!-- fragment --></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.3
-</small></address>
-</body>
-</html>

+ 0 - 37
docs/html/search/all_0.html

@@ -1,37 +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">
-<head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.3"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-createResults();
-/* @license-end */
-</script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
-</script>
-</div>
-</body>
-</html>

+ 0 - 6
docs/html/search/all_0.js

@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['args_0',['args',['../structargs.html',1,'']]],
-  ['args_5fop_1',['args_op',['../structargs__op.html',1,'']]],
-  ['array_2',['array',['../structarray.html',1,'']]]
-];

+ 0 - 37
docs/html/search/all_1.html

@@ -1,37 +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">
-<head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.3"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-createResults();
-/* @license-end */
-</script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
-</script>
-</div>
-</body>
-</html>

+ 0 - 5
docs/html/search/all_1.js

@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['cstr_0',['cstr',['../structcstr.html',1,'']]],
-  ['cstr_5ffixed_1',['cstr_fixed',['../structcstr__fixed.html',1,'']]]
-];

+ 0 - 37
docs/html/search/all_2.html

@@ -1,37 +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">
-<head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.3"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_2.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-createResults();
-/* @license-end */
-</script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
-</script>
-</div>
-</body>
-</html>

+ 0 - 5
docs/html/search/all_2.js

@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['hashtable_0',['hashtable',['../structhashtable.html',1,'']]],
-  ['hashtable_5fitem_1',['hashtable_item',['../structhashtable__item.html',1,'']]]
-];

+ 0 - 6
docs/html/search/all_3.js

@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['vec2_5fuint16_0',['vec2_uint16',['../structvec2__uint16.html',1,'']]],
-  ['vec2_5fuint8_1',['vec2_uint8',['../structvec2__uint8.html',1,'']]],
-  ['vptr_2',['vptr',['../structvptr.html',1,'']]]
-];

+ 0 - 37
docs/html/search/all_4.html

@@ -1,37 +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">
-<head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.3"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_4.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-createResults();
-/* @license-end */
-</script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
-</script>
-</div>
-</body>
-</html>

+ 0 - 4
docs/html/search/all_4.js

@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['window_0',['window',['../structwindow.html',1,'']]]
-];

+ 0 - 6
docs/html/search/classes_0.js

@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['args_0',['args',['../structargs.html',1,'']]],
-  ['args_5fop_1',['args_op',['../structargs__op.html',1,'']]],
-  ['array_2',['array',['../structarray.html',1,'']]]
-];

+ 0 - 37
docs/html/search/classes_1.html

@@ -1,37 +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">
-<head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.3"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-createResults();
-/* @license-end */
-</script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
-</script>
-</div>
-</body>
-</html>

+ 0 - 5
docs/html/search/classes_1.js

@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['cstr_0',['cstr',['../structcstr.html',1,'']]],
-  ['cstr_5ffixed_1',['cstr_fixed',['../structcstr__fixed.html',1,'']]]
-];

+ 0 - 5
docs/html/search/classes_2.js

@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['hashtable_0',['hashtable',['../structhashtable.html',1,'']]],
-  ['hashtable_5fitem_1',['hashtable_item',['../structhashtable__item.html',1,'']]]
-];

+ 0 - 6
docs/html/search/classes_3.js

@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['vec2_5fuint16_0',['vec2_uint16',['../structvec2__uint16.html',1,'']]],
-  ['vec2_5fuint8_1',['vec2_uint8',['../structvec2__uint8.html',1,'']]],
-  ['vptr_2',['vptr',['../structvptr.html',1,'']]]
-];

+ 0 - 37
docs/html/search/classes_4.html

@@ -1,37 +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">
-<head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.3"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_4.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-createResults();
-/* @license-end */
-</script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
-</script>
-</div>
-</body>
-</html>

+ 0 - 4
docs/html/search/classes_4.js

@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['window_0',['window',['../structwindow.html',1,'']]]
-];

+ 0 - 31
docs/html/search/close.svg

@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   viewBox="0 0 11 11"
-   height="11"
-   width="11"
-   id="svg2"
-   version="1.1">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <path
-     id="path12"
-     d="M 5.5 0.5 A 5 5 0 0 0 0.5 5.5 A 5 5 0 0 0 5.5 10.5 A 5 5 0 0 0 10.5 5.5 A 5 5 0 0 0 5.5 0.5 z M 3.5820312 3 A 0.58291923 0.58291923 0 0 1 4 3.1757812 L 5.5 4.6757812 L 7 3.1757812 A 0.58291923 0.58291923 0 0 1 7.4003906 3 A 0.58291923 0.58291923 0 0 1 7.8242188 4 L 6.3242188 5.5 L 7.8242188 7 A 0.58291923 0.58291923 0 1 1 7 7.8242188 L 5.5 6.3242188 L 4 7.8242188 A 0.58291923 0.58291923 0 1 1 3.1757812 7 L 4.6757812 5.5 L 3.1757812 4 A 0.58291923 0.58291923 0 0 1 3.5820312 3 z "
-     style="stroke-width:1.09870648;fill:#bababa;fill-opacity:1" />
-</svg>

+ 0 - 74
docs/html/search/mag_sel.svg

@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   id="svg2"
-   width="20"
-   height="19"
-   viewBox="0 0 20 19"
-   sodipodi:docname="mag_sel.svg"
-   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1920"
-     inkscape:window-height="2096"
-     id="namedview4"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:zoom="32"
-     inkscape:cx="5.9792688"
-     inkscape:cy="1.1436277"
-     inkscape:window-x="1920"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2" />
-  <circle
-     style="fill:#000000;fill-opacity:0;stroke:#656565;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
-     id="path4611"
-     cx="5.5"
-     cy="8.5"
-     r="3.5" />
-  <path
-     style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-     d="M 11,7 13.5,10 16,7 Z"
-     id="path4609"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="cccc" />
-  <path
-     style="fill:none;stroke:#656565;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     d="m 8.1085854,11.109059 2.7823556,2.782356"
-     id="path4630"
-     inkscape:connector-curvature="0" />
-</svg>

+ 0 - 13
docs/html/search/nomatches.html

@@ -1,13 +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">
-<head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="NoMatches">No Matches</div>
-</div>
-</body>
-</html>

+ 0 - 263
docs/html/search/search.css

@@ -1,263 +0,0 @@
-/*---------------- Search Box */
-
-#MSearchBox {
-    white-space : nowrap;
-    background: white;
-    border-radius: 0.65em;
-    box-shadow: inset 0.5px 0.5px 3px 0px #555;
-    z-index: 102;
-}
-
-#MSearchBox .left {
-    display: inline-block;
-    vertical-align: middle;
-    height: 1.4em;
-}
-
-#MSearchSelect {
-    display: inline-block;
-    vertical-align: middle;
-    height: 19px;
-    padding: 0 0 0 0.3em;
-    margin: 0;
-}
-
-#MSearchField {
-    display: inline-block;
-    vertical-align: middle;
-    width: 7.5em;
-    height: 19px;
-    margin: 0 0.15em;
-    padding: 0;
-    line-height: 1em;
-    border:none;
-    color: #909090;
-    outline: none;
-    font-family: Arial, Verdana, sans-serif;
-    -webkit-border-radius: 0px;
-    border-radius: 0px;
-    background: none;
-}
-
-@media(hover: none) {
-    /* to avoid zooming on iOS */
-    #MSearchField {
-        font-size: 16px;
-    }
-}
-
-#MSearchBox .right {
-    display: inline-block;
-    vertical-align: middle;
-    width: 1.4em;
-    height: 1.4em;
-}
-
-#MSearchClose {
-    display: none;
-    font-size: inherit;
-    background : none;
-    border: none;
-    margin: 0;
-    padding: 0;
-    outline: none;
-
-}
-
-#MSearchCloseImg {
-    height: 1.4em;
-    padding: 0.3em;
-    margin: 0;
-}
-
-.MSearchBoxActive #MSearchField {
-    color: #000000;
-}
-
-#main-menu > li:last-child {
-    /* This <li> object is the parent of the search bar */
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    height: 36px;
-    margin-right: 1em;
-}
-
-/*---------------- Search filter selection */
-
-#MSearchSelectWindow {
-    display: none;
-    position: absolute;
-    left: 0; top: 0;
-    border: 1px solid #90A5CE;
-    background-color: #F9FAFC;
-    z-index: 10001;
-    padding-top: 4px;
-    padding-bottom: 4px;
-    -moz-border-radius: 4px;
-    -webkit-border-top-left-radius: 4px;
-    -webkit-border-top-right-radius: 4px;
-    -webkit-border-bottom-left-radius: 4px;
-    -webkit-border-bottom-right-radius: 4px;
-    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-}
-
-.SelectItem {
-    font: 8pt Arial, Verdana, sans-serif;
-    padding-left:  2px;
-    padding-right: 12px;
-    border: 0px;
-}
-
-span.SelectionMark {
-    margin-right: 4px;
-    font-family: monospace;
-    outline-style: none;
-    text-decoration: none;
-}
-
-a.SelectItem {
-    display: block;
-    outline-style: none;
-    color: #000000; 
-    text-decoration: none;
-    padding-left:   6px;
-    padding-right: 12px;
-}
-
-a.SelectItem:focus,
-a.SelectItem:active {
-    color: #000000; 
-    outline-style: none;
-    text-decoration: none;
-}
-
-a.SelectItem:hover {
-    color: #FFFFFF;
-    background-color: #3D578C;
-    outline-style: none;
-    text-decoration: none;
-    cursor: pointer;
-    display: block;
-}
-
-/*---------------- Search results window */
-
-iframe#MSearchResults {
-    /*width: 60ex;*/
-    height: 15em;
-}
-
-#MSearchResultsWindow {
-    display: none;
-    position: absolute;
-    left: 0; top: 0;
-    border: 1px solid #000;
-    background-color: #EEF1F7;
-    z-index:10000;
-}
-
-/* ----------------------------------- */
-
-
-#SRIndex {
-    clear:both; 
-    padding-bottom: 15px;
-}
-
-.SREntry {
-    font-size: 10pt;
-    padding-left: 1ex;
-}
-
-.SRPage .SREntry {
-    font-size: 8pt;
-    padding: 1px 5px;
-}
-
-body.SRPage {
-    margin: 5px 2px;
-}
-
-.SRChildren {
-    padding-left: 3ex; padding-bottom: .5em 
-}
-
-.SRPage .SRChildren {
-    display: none;
-}
-
-.SRSymbol {
-    font-weight: bold; 
-    color: #425E97;
-    font-family: Arial, Verdana, sans-serif;
-    text-decoration: none;
-    outline: none;
-}
-
-a.SRScope {
-    display: block;
-    color: #425E97; 
-    font-family: Arial, Verdana, sans-serif;
-    text-decoration: none;
-    outline: none;
-}
-
-a.SRSymbol:focus, a.SRSymbol:active,
-a.SRScope:focus, a.SRScope:active {
-    text-decoration: underline;
-}
-
-span.SRScope {
-    padding-left: 4px;
-    font-family: Arial, Verdana, sans-serif;
-}
-
-.SRPage .SRStatus {
-    padding: 2px 5px;
-    font-size: 8pt;
-    font-style: italic;
-    font-family: Arial, Verdana, sans-serif;
-}
-
-.SRResult {
-    display: none;
-}
-
-div.searchresults {
-    margin-left: 10px;
-    margin-right: 10px;
-}
-
-/*---------------- External search page results */
-
-.searchresult {
-    background-color: #F0F3F8;
-}
-
-.pages b {
-   color: white;
-   padding: 5px 5px 3px 5px;
-   background-image: url("../tab_a.png");
-   background-repeat: repeat-x;
-   text-shadow: 0 1px 1px #000000;
-}
-
-.pages {
-    line-height: 17px;
-    margin-left: 4px;
-    text-decoration: none;
-}
-
-.hl {
-    font-weight: bold;
-}
-
-#searchresults {
-    margin-bottom: 20px;
-}
-
-.searchpages {
-    margin-top: 10px;
-}
-

+ 0 - 794
docs/html/search/search.js

@@ -1,794 +0,0 @@
-/*
- @licstart  The following is the entire license notice for the JavaScript code in this file.
-
- The MIT License (MIT)
-
- Copyright (C) 1997-2020 by Dimitri van Heesch
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- and associated documentation files (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge, publish, distribute,
- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or
- substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- @licend  The above is the entire license notice for the JavaScript code in this file
- */
-function convertToId(search)
-{
-  var result = '';
-  for (i=0;i<search.length;i++)
-  {
-    var c = search.charAt(i);
-    var cn = c.charCodeAt(0);
-    if (c.match(/[a-z0-9\u0080-\uFFFF]/))
-    {
-      result+=c;
-    }
-    else if (cn<16)
-    {
-      result+="_0"+cn.toString(16);
-    }
-    else
-    {
-      result+="_"+cn.toString(16);
-    }
-  }
-  return result;
-}
-
-function getXPos(item)
-{
-  var x = 0;
-  if (item.offsetWidth)
-  {
-    while (item && item!=document.body)
-    {
-      x   += item.offsetLeft;
-      item = item.offsetParent;
-    }
-  }
-  return x;
-}
-
-function getYPos(item)
-{
-  var y = 0;
-  if (item.offsetWidth)
-  {
-     while (item && item!=document.body)
-     {
-       y   += item.offsetTop;
-       item = item.offsetParent;
-     }
-  }
-  return y;
-}
-
-/* A class handling everything associated with the search panel.
-
-   Parameters:
-   name - The name of the global variable that will be
-          storing this instance.  Is needed to be able to set timeouts.
-   resultPath - path to use for external files
-*/
-function SearchBox(name, resultsPath, label, extension)
-{
-  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
-  if (!extension || extension == "") { extension = ".html"; }
-
-  // ---------- Instance variables
-  this.name                  = name;
-  this.resultsPath           = resultsPath;
-  this.keyTimeout            = 0;
-  this.keyTimeoutLength      = 500;
-  this.closeSelectionTimeout = 300;
-  this.lastSearchValue       = "";
-  this.lastResultsPage       = "";
-  this.hideTimeout           = 0;
-  this.searchIndex           = 0;
-  this.searchActive          = false;
-  this.searchLabel           = label;
-  this.extension             = extension;
-
-  // ----------- DOM Elements
-
-  this.DOMSearchField = function()
-  {  return document.getElementById("MSearchField");  }
-
-  this.DOMSearchSelect = function()
-  {  return document.getElementById("MSearchSelect");  }
-
-  this.DOMSearchSelectWindow = function()
-  {  return document.getElementById("MSearchSelectWindow");  }
-
-  this.DOMPopupSearchResults = function()
-  {  return document.getElementById("MSearchResults");  }
-
-  this.DOMPopupSearchResultsWindow = function()
-  {  return document.getElementById("MSearchResultsWindow");  }
-
-  this.DOMSearchClose = function()
-  {  return document.getElementById("MSearchClose"); }
-
-  this.DOMSearchBox = function()
-  {  return document.getElementById("MSearchBox");  }
-
-  // ------------ Event Handlers
-
-  // Called when focus is added or removed from the search field.
-  this.OnSearchFieldFocus = function(isActive)
-  {
-    this.Activate(isActive);
-  }
-
-  this.OnSearchSelectShow = function()
-  {
-    var searchSelectWindow = this.DOMSearchSelectWindow();
-    var searchField        = this.DOMSearchSelect();
-
-    var left = getXPos(searchField);
-    var top  = getYPos(searchField);
-    top += searchField.offsetHeight;
-
-    // show search selection popup
-    searchSelectWindow.style.display='block';
-    searchSelectWindow.style.left =  left + 'px';
-    searchSelectWindow.style.top  =  top  + 'px';
-
-    // stop selection hide timer
-    if (this.hideTimeout)
-    {
-      clearTimeout(this.hideTimeout);
-      this.hideTimeout=0;
-    }
-    return false; // to avoid "image drag" default event
-  }
-
-  this.OnSearchSelectHide = function()
-  {
-    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
-                                  this.closeSelectionTimeout);
-  }
-
-  // Called when the content of the search field is changed.
-  this.OnSearchFieldChange = function(evt)
-  {
-    if (this.keyTimeout) // kill running timer
-    {
-      clearTimeout(this.keyTimeout);
-      this.keyTimeout = 0;
-    }
-
-    var e  = (evt) ? evt : window.event; // for IE
-    if (e.keyCode==40 || e.keyCode==13)
-    {
-      if (e.shiftKey==1)
-      {
-        this.OnSearchSelectShow();
-        var win=this.DOMSearchSelectWindow();
-        for (i=0;i<win.childNodes.length;i++)
-        {
-          var child = win.childNodes[i]; // get span within a
-          if (child.className=='SelectItem')
-          {
-            child.focus();
-            return;
-          }
-        }
-        return;
-      }
-      else
-      {
-        window.frames.MSearchResults.postMessage("take_focus", "*");
-      }
-    }
-    else if (e.keyCode==27) // Escape out of the search field
-    {
-      this.DOMSearchField().blur();
-      this.DOMPopupSearchResultsWindow().style.display = 'none';
-      this.DOMSearchClose().style.display = 'none';
-      this.lastSearchValue = '';
-      this.Activate(false);
-      return;
-    }
-
-    // strip whitespaces
-    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
-
-    if (searchValue != this.lastSearchValue) // search value has changed
-    {
-      if (searchValue != "") // non-empty search
-      {
-        // set timer for search update
-        this.keyTimeout = setTimeout(this.name + '.Search()',
-                                     this.keyTimeoutLength);
-      }
-      else // empty search field
-      {
-        this.DOMPopupSearchResultsWindow().style.display = 'none';
-        this.DOMSearchClose().style.display = 'none';
-        this.lastSearchValue = '';
-      }
-    }
-  }
-
-  this.SelectItemCount = function(id)
-  {
-    var count=0;
-    var win=this.DOMSearchSelectWindow();
-    for (i=0;i<win.childNodes.length;i++)
-    {
-      var child = win.childNodes[i]; // get span within a
-      if (child.className=='SelectItem')
-      {
-        count++;
-      }
-    }
-    return count;
-  }
-
-  this.SelectItemSet = function(id)
-  {
-    var i,j=0;
-    var win=this.DOMSearchSelectWindow();
-    for (i=0;i<win.childNodes.length;i++)
-    {
-      var child = win.childNodes[i]; // get span within a
-      if (child.className=='SelectItem')
-      {
-        var node = child.firstChild;
-        if (j==id)
-        {
-          node.innerHTML='&#8226;';
-        }
-        else
-        {
-          node.innerHTML='&#160;';
-        }
-        j++;
-      }
-    }
-  }
-
-  // Called when an search filter selection is made.
-  // set item with index id as the active item
-  this.OnSelectItem = function(id)
-  {
-    this.searchIndex = id;
-    this.SelectItemSet(id);
-    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
-    if (searchValue!="" && this.searchActive) // something was found -> do a search
-    {
-      this.Search();
-    }
-  }
-
-  this.OnSearchSelectKey = function(evt)
-  {
-    var e = (evt) ? evt : window.event; // for IE
-    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
-    {
-      this.searchIndex++;
-      this.OnSelectItem(this.searchIndex);
-    }
-    else if (e.keyCode==38 && this.searchIndex>0) // Up
-    {
-      this.searchIndex--;
-      this.OnSelectItem(this.searchIndex);
-    }
-    else if (e.keyCode==13 || e.keyCode==27)
-    {
-      this.OnSelectItem(this.searchIndex);
-      this.CloseSelectionWindow();
-      this.DOMSearchField().focus();
-    }
-    return false;
-  }
-
-  // --------- Actions
-
-  // Closes the results window.
-  this.CloseResultsWindow = function()
-  {
-    this.DOMPopupSearchResultsWindow().style.display = 'none';
-    this.DOMSearchClose().style.display = 'none';
-    this.Activate(false);
-  }
-
-  this.CloseSelectionWindow = function()
-  {
-    this.DOMSearchSelectWindow().style.display = 'none';
-  }
-
-  // Performs a search.
-  this.Search = function()
-  {
-    this.keyTimeout = 0;
-
-    // strip leading whitespace
-    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
-
-    var code = searchValue.toLowerCase().charCodeAt(0);
-    var idxChar = searchValue.substr(0, 1).toLowerCase();
-    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
-    {
-      idxChar = searchValue.substr(0, 2);
-    }
-
-    var resultsPage;
-    var resultsPageWithSearch;
-    var hasResultsPage;
-
-    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
-    if (idx!=-1)
-    {
-       var hexCode=idx.toString(16);
-       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension;
-       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
-       hasResultsPage = true;
-    }
-    else // nothing available for this search term
-    {
-       resultsPage = this.resultsPath + '/nomatches' + this.extension;
-       resultsPageWithSearch = resultsPage;
-       hasResultsPage = false;
-    }
-
-    window.frames.MSearchResults.location = resultsPageWithSearch;
-    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
-
-    if (domPopupSearchResultsWindow.style.display!='block')
-    {
-       var domSearchBox = this.DOMSearchBox();
-       this.DOMSearchClose().style.display = 'inline-block';
-       var domPopupSearchResults = this.DOMPopupSearchResults();
-       var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
-       var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
-       domPopupSearchResultsWindow.style.display = 'block';
-       left -= domPopupSearchResults.offsetWidth;
-       var maxWidth = document.body.clientWidth;
-       var width = 400;
-       if (left<10) left=10;
-       if (width+left+8>maxWidth) width=maxWidth-left-8;
-       domPopupSearchResultsWindow.style.top     = top  + 'px';
-       domPopupSearchResultsWindow.style.left    = left + 'px';
-       domPopupSearchResultsWindow.style.width   = width + 'px';
-    }
-
-    this.lastSearchValue = searchValue;
-    this.lastResultsPage = resultsPage;
-  }
-
-  // -------- Activation Functions
-
-  // Activates or deactivates the search panel, resetting things to
-  // their default values if necessary.
-  this.Activate = function(isActive)
-  {
-    if (isActive || // open it
-        this.DOMPopupSearchResultsWindow().style.display == 'block'
-       )
-    {
-      this.DOMSearchBox().className = 'MSearchBoxActive';
-
-      var searchField = this.DOMSearchField();
-
-      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
-      {
-        searchField.value = '';
-        this.searchActive = true;
-      }
-    }
-    else if (!isActive) // directly remove the panel
-    {
-      this.DOMSearchBox().className = 'MSearchBoxInactive';
-      this.DOMSearchField().value   = this.searchLabel;
-      this.searchActive             = false;
-      this.lastSearchValue          = ''
-      this.lastResultsPage          = '';
-    }
-  }
-}
-
-// -----------------------------------------------------------------------
-
-// The class that handles everything on the search results page.
-function SearchResults(name)
-{
-    // The number of matches from the last run of <Search()>.
-    this.lastMatchCount = 0;
-    this.lastKey = 0;
-    this.repeatOn = false;
-
-    // Toggles the visibility of the passed element ID.
-    this.FindChildElement = function(id)
-    {
-      var parentElement = document.getElementById(id);
-      var element = parentElement.firstChild;
-
-      while (element && element!=parentElement)
-      {
-        if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren')
-        {
-          return element;
-        }
-
-        if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes())
-        {
-           element = element.firstChild;
-        }
-        else if (element.nextSibling)
-        {
-           element = element.nextSibling;
-        }
-        else
-        {
-          do
-          {
-            element = element.parentNode;
-          }
-          while (element && element!=parentElement && !element.nextSibling);
-
-          if (element && element!=parentElement)
-          {
-            element = element.nextSibling;
-          }
-        }
-      }
-    }
-
-    this.Toggle = function(id)
-    {
-      var element = this.FindChildElement(id);
-      if (element)
-      {
-        if (element.style.display == 'block')
-        {
-          element.style.display = 'none';
-        }
-        else
-        {
-          element.style.display = 'block';
-        }
-      }
-    }
-
-    // Searches for the passed string.  If there is no parameter,
-    // it takes it from the URL query.
-    //
-    // Always returns true, since other documents may try to call it
-    // and that may or may not be possible.
-    this.Search = function(search)
-    {
-      if (!search) // get search word from URL
-      {
-        search = window.location.search;
-        search = search.substring(1);  // Remove the leading '?'
-        search = unescape(search);
-      }
-
-      search = search.replace(/^ +/, ""); // strip leading spaces
-      search = search.replace(/ +$/, ""); // strip trailing spaces
-      search = search.toLowerCase();
-      search = convertToId(search);
-
-      var resultRows = document.getElementsByTagName("div");
-      var matches = 0;
-
-      var i = 0;
-      while (i < resultRows.length)
-      {
-        var row = resultRows.item(i);
-        if (row.className == "SRResult")
-        {
-          var rowMatchName = row.id.toLowerCase();
-          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
-
-          if (search.length<=rowMatchName.length &&
-             rowMatchName.substr(0, search.length)==search)
-          {
-            row.style.display = 'block';
-            matches++;
-          }
-          else
-          {
-            row.style.display = 'none';
-          }
-        }
-        i++;
-      }
-      document.getElementById("Searching").style.display='none';
-      if (matches == 0) // no results
-      {
-        document.getElementById("NoMatches").style.display='block';
-      }
-      else // at least one result
-      {
-        document.getElementById("NoMatches").style.display='none';
-      }
-      this.lastMatchCount = matches;
-      return true;
-    }
-
-    // return the first item with index index or higher that is visible
-    this.NavNext = function(index)
-    {
-      var focusItem;
-      while (1)
-      {
-        var focusName = 'Item'+index;
-        focusItem = document.getElementById(focusName);
-        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
-        {
-          break;
-        }
-        else if (!focusItem) // last element
-        {
-          break;
-        }
-        focusItem=null;
-        index++;
-      }
-      return focusItem;
-    }
-
-    this.NavPrev = function(index)
-    {
-      var focusItem;
-      while (1)
-      {
-        var focusName = 'Item'+index;
-        focusItem = document.getElementById(focusName);
-        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
-        {
-          break;
-        }
-        else if (!focusItem) // last element
-        {
-          break;
-        }
-        focusItem=null;
-        index--;
-      }
-      return focusItem;
-    }
-
-    this.ProcessKeys = function(e)
-    {
-      if (e.type == "keydown")
-      {
-        this.repeatOn = false;
-        this.lastKey = e.keyCode;
-      }
-      else if (e.type == "keypress")
-      {
-        if (!this.repeatOn)
-        {
-          if (this.lastKey) this.repeatOn = true;
-          return false; // ignore first keypress after keydown
-        }
-      }
-      else if (e.type == "keyup")
-      {
-        this.lastKey = 0;
-        this.repeatOn = false;
-      }
-      return this.lastKey!=0;
-    }
-
-    this.Nav = function(evt,itemIndex)
-    {
-      var e  = (evt) ? evt : window.event; // for IE
-      if (e.keyCode==13) return true;
-      if (!this.ProcessKeys(e)) return false;
-
-      if (this.lastKey==38) // Up
-      {
-        var newIndex = itemIndex-1;
-        var focusItem = this.NavPrev(newIndex);
-        if (focusItem)
-        {
-          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
-          if (child && child.style.display == 'block') // children visible
-          {
-            var n=0;
-            var tmpElem;
-            while (1) // search for last child
-            {
-              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
-              if (tmpElem)
-              {
-                focusItem = tmpElem;
-              }
-              else // found it!
-              {
-                break;
-              }
-              n++;
-            }
-          }
-        }
-        if (focusItem)
-        {
-          focusItem.focus();
-        }
-        else // return focus to search field
-        {
-           parent.document.getElementById("MSearchField").focus();
-        }
-      }
-      else if (this.lastKey==40) // Down
-      {
-        var newIndex = itemIndex+1;
-        var focusItem;
-        var item = document.getElementById('Item'+itemIndex);
-        var elem = this.FindChildElement(item.parentNode.parentNode.id);
-        if (elem && elem.style.display == 'block') // children visible
-        {
-          focusItem = document.getElementById('Item'+itemIndex+'_c0');
-        }
-        if (!focusItem) focusItem = this.NavNext(newIndex);
-        if (focusItem)  focusItem.focus();
-      }
-      else if (this.lastKey==39) // Right
-      {
-        var item = document.getElementById('Item'+itemIndex);
-        var elem = this.FindChildElement(item.parentNode.parentNode.id);
-        if (elem) elem.style.display = 'block';
-      }
-      else if (this.lastKey==37) // Left
-      {
-        var item = document.getElementById('Item'+itemIndex);
-        var elem = this.FindChildElement(item.parentNode.parentNode.id);
-        if (elem) elem.style.display = 'none';
-      }
-      else if (this.lastKey==27) // Escape
-      {
-        parent.searchBox.CloseResultsWindow();
-        parent.document.getElementById("MSearchField").focus();
-      }
-      else if (this.lastKey==13) // Enter
-      {
-        return true;
-      }
-      return false;
-    }
-
-    this.NavChild = function(evt,itemIndex,childIndex)
-    {
-      var e  = (evt) ? evt : window.event; // for IE
-      if (e.keyCode==13) return true;
-      if (!this.ProcessKeys(e)) return false;
-
-      if (this.lastKey==38) // Up
-      {
-        if (childIndex>0)
-        {
-          var newIndex = childIndex-1;
-          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
-        }
-        else // already at first child, jump to parent
-        {
-          document.getElementById('Item'+itemIndex).focus();
-        }
-      }
-      else if (this.lastKey==40) // Down
-      {
-        var newIndex = childIndex+1;
-        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
-        if (!elem) // last child, jump to parent next parent
-        {
-          elem = this.NavNext(itemIndex+1);
-        }
-        if (elem)
-        {
-          elem.focus();
-        }
-      }
-      else if (this.lastKey==27) // Escape
-      {
-        parent.searchBox.CloseResultsWindow();
-        parent.document.getElementById("MSearchField").focus();
-      }
-      else if (this.lastKey==13) // Enter
-      {
-        return true;
-      }
-      return false;
-    }
-}
-
-function setKeyActions(elem,action)
-{
-  elem.setAttribute('onkeydown',action);
-  elem.setAttribute('onkeypress',action);
-  elem.setAttribute('onkeyup',action);
-}
-
-function setClassAttr(elem,attr)
-{
-  elem.setAttribute('class',attr);
-  elem.setAttribute('className',attr);
-}
-
-function createResults()
-{
-  var results = document.getElementById("SRResults");
-  for (var e=0; e<searchData.length; e++)
-  {
-    var id = searchData[e][0];
-    var srResult = document.createElement('div');
-    srResult.setAttribute('id','SR_'+id);
-    setClassAttr(srResult,'SRResult');
-    var srEntry = document.createElement('div');
-    setClassAttr(srEntry,'SREntry');
-    var srLink = document.createElement('a');
-    srLink.setAttribute('id','Item'+e);
-    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
-    setClassAttr(srLink,'SRSymbol');
-    srLink.innerHTML = searchData[e][1][0];
-    srEntry.appendChild(srLink);
-    if (searchData[e][1].length==2) // single result
-    {
-      srLink.setAttribute('href',searchData[e][1][1][0]);
-      srLink.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
-      if (searchData[e][1][1][1])
-      {
-       srLink.setAttribute('target','_parent');
-      }
-      var srScope = document.createElement('span');
-      setClassAttr(srScope,'SRScope');
-      srScope.innerHTML = searchData[e][1][1][2];
-      srEntry.appendChild(srScope);
-    }
-    else // multiple results
-    {
-      srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
-      var srChildren = document.createElement('div');
-      setClassAttr(srChildren,'SRChildren');
-      for (var c=0; c<searchData[e][1].length-1; c++)
-      {
-        var srChild = document.createElement('a');
-        srChild.setAttribute('id','Item'+e+'_c'+c);
-        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
-        setClassAttr(srChild,'SRScope');
-        srChild.setAttribute('href',searchData[e][1][c+1][0]);
-        srChild.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
-        if (searchData[e][1][c+1][1])
-        {
-         srChild.setAttribute('target','_parent');
-        }
-        srChild.innerHTML = searchData[e][1][c+1][2];
-        srChildren.appendChild(srChild);
-      }
-      srEntry.appendChild(srChildren);
-    }
-    srResult.appendChild(srEntry);
-    results.appendChild(srResult);
-  }
-}
-
-function init_search()
-{
-  var results = document.getElementById("MSearchSelectWindow");
-  for (var key in indexSectionLabels)
-  {
-    var link = document.createElement('a');
-    link.setAttribute('class','SelectItem');
-    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
-    link.href='javascript:void(0)';
-    link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
-    results.appendChild(link);
-  }
-  searchBox.OnSelectItem(0);
-}
-/* @license-end */

二进制
docs/html/search/search_l.png


二进制
docs/html/search/search_m.png


二进制
docs/html/search/search_r.png


+ 0 - 18
docs/html/search/searchdata.js

@@ -1,18 +0,0 @@
-var indexSectionsWithContent =
-{
-  0: "achvw",
-  1: "achvw"
-};
-
-var indexSectionNames =
-{
-  0: "all",
-  1: "classes"
-};
-
-var indexSectionLabels =
-{
-  0: "All",
-  1: "Data Structures"
-};
-

二进制
docs/html/splitbar.png


+ 0 - 96
docs/html/structarray.html

@@ -1,96 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: array Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Data Fields</a>  </div>
-  <div class="headertitle"><div class="title">array Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-<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:a350c6413406d308f89ad202b95bbbd3f"><td class="memItemLeft" align="right" valign="top"><a id="a350c6413406d308f89ad202b95bbbd3f" name="a350c6413406d308f89ad202b95bbbd3f"></a>
-size_t&#160;</td><td class="memItemRight" valign="bottom"><b>item_size</b></td></tr>
-<tr class="separator:a350c6413406d308f89ad202b95bbbd3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a223f5760985fe124132e794b6e3e1a64"><td class="memItemLeft" align="right" valign="top"><a id="a223f5760985fe124132e794b6e3e1a64" name="a223f5760985fe124132e794b6e3e1a64"></a>
-size_t&#160;</td><td class="memItemRight" valign="bottom"><b>size</b></td></tr>
-<tr class="separator:a223f5760985fe124132e794b6e3e1a64"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a897259ab222e846d19c6354a9cc3dc52"><td class="memItemLeft" align="right" valign="top"><a id="a897259ab222e846d19c6354a9cc3dc52" name="a897259ab222e846d19c6354a9cc3dc52"></a>
-size_t&#160;</td><td class="memItemRight" valign="bottom"><b>alloc_size</b></td></tr>
-<tr class="separator:a897259ab222e846d19c6354a9cc3dc52"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a992e4daf657b3508eb62981340a6a7d4"><td class="memItemLeft" align="right" valign="top"><a id="a992e4daf657b3508eb62981340a6a7d4" name="a992e4daf657b3508eb62981340a6a7d4"></a>
-void **&#160;</td><td class="memItemRight" valign="bottom"><b>data</b></td></tr>
-<tr class="separator:a992e4daf657b3508eb62981340a6a7d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>include/toolbox/<a class="el" href="array_8h_source.html">array.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.3
-</small></address>
-</body>
-</html>

+ 0 - 90
docs/html/structcstr__fixed.html

@@ -1,90 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: cstr_fixed Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Data Fields</a>  </div>
-  <div class="headertitle"><div class="title">cstr_fixed Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-<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:a37a67eaa81729157630eb7f34a63e443"><td class="memItemLeft" align="right" valign="top"><a id="a37a67eaa81729157630eb7f34a63e443" name="a37a67eaa81729157630eb7f34a63e443"></a>
-size_t&#160;</td><td class="memItemRight" valign="bottom"><b>size</b></td></tr>
-<tr class="separator:a37a67eaa81729157630eb7f34a63e443"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a248ed4739a7e91a1aad925ee5cdb8a54"><td class="memItemLeft" align="right" valign="top"><a id="a248ed4739a7e91a1aad925ee5cdb8a54" name="a248ed4739a7e91a1aad925ee5cdb8a54"></a>
-char&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> [TOOLBOX_CSTR_FIXED_MAX_SIZE]</td></tr>
-<tr class="separator:a248ed4739a7e91a1aad925ee5cdb8a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>include/toolbox/<a class="el" href="cstr__fixed_8h_source.html">cstr_fixed.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.3
-</small></address>
-</body>
-</html>

+ 0 - 97
docs/html/structhashtable.html

@@ -1,97 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: hashtable Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Data Fields</a>  </div>
-  <div class="headertitle"><div class="title">hashtable Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-<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:a3e9c5aee2fc0ab26d8c989ce8744d7e2"><td class="memItemLeft" ><a id="a3e9c5aee2fc0ab26d8c989ce8744d7e2" name="a3e9c5aee2fc0ab26d8c989ce8744d7e2"></a>
-struct {</td></tr>
-<tr class="memitem:af593f16f3b90e65df6efd35d68052cc3"><td class="memItemLeft" >
-&#160;&#160;&#160;size_t&#160;&#160;&#160;<b>size</b></td></tr>
-<tr class="separator:af593f16f3b90e65df6efd35d68052cc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9416d7c9bcc2d71512730745efecd506"><td class="memItemLeft" >
-&#160;&#160;&#160;size_t&#160;&#160;&#160;<b>data</b> [HASHTABLE_SIZE]</td></tr>
-<tr class="separator:a9416d7c9bcc2d71512730745efecd506"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3e9c5aee2fc0ab26d8c989ce8744d7e2"><td class="memItemLeft" valign="top">}&#160;</td><td class="memItemRight" valign="bottom"><b>used_keys</b></td></tr>
-<tr class="separator:a3e9c5aee2fc0ab26d8c989ce8744d7e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a009725a811574ec67d4a96466ee09b06"><td class="memItemLeft" align="right" valign="top"><a id="a009725a811574ec67d4a96466ee09b06" name="a009725a811574ec67d4a96466ee09b06"></a>
-struct <a class="el" href="structhashtable__item.html">hashtable_item</a>&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> [HASHTABLE_SIZE]</td></tr>
-<tr class="separator:a009725a811574ec67d4a96466ee09b06"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>src/toolbox/hashtable.c</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.3
-</small></address>
-</body>
-</html>

+ 0 - 100
docs/html/structhashtable__item.html

@@ -1,100 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: hashtable_item Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Data Fields</a>  </div>
-  <div class="headertitle"><div class="title">hashtable_item Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-<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:a2c2cda3cb4aebeec040c60141ba8da0f"><td class="memItemLeft" ><a id="a2c2cda3cb4aebeec040c60141ba8da0f" name="a2c2cda3cb4aebeec040c60141ba8da0f"></a>
-struct {</td></tr>
-<tr class="memitem:af9ed4ab2350acf2a557a21d58ad1a75e"><td class="memItemLeft" >
-&#160;&#160;&#160;size_t&#160;&#160;&#160;<b>hash</b></td></tr>
-<tr class="separator:af9ed4ab2350acf2a557a21d58ad1a75e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ade2e009aefb06d8c262da81d40e18157"><td class="memItemLeft" >
-&#160;&#160;&#160;uint64_t&#160;&#160;&#160;<b>true_hash</b></td></tr>
-<tr class="separator:ade2e009aefb06d8c262da81d40e18157"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2c2cda3cb4aebeec040c60141ba8da0f"><td class="memItemLeft" valign="top">}&#160;</td><td class="memItemRight" valign="bottom"><b>key</b></td></tr>
-<tr class="separator:a2c2cda3cb4aebeec040c60141ba8da0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a90d93cd954008e69278da8779a18ab0d"><td class="memItemLeft" align="right" valign="top"><a id="a90d93cd954008e69278da8779a18ab0d" name="a90d93cd954008e69278da8779a18ab0d"></a>
-struct <a class="el" href="structvptr.html">vptr</a>&#160;</td><td class="memItemRight" valign="bottom"><b>item</b></td></tr>
-<tr class="separator:a90d93cd954008e69278da8779a18ab0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2ad1fbf00ef7b5339d734dc879da4049"><td class="memItemLeft" align="right" valign="top"><a id="a2ad1fbf00ef7b5339d734dc879da4049" name="a2ad1fbf00ef7b5339d734dc879da4049"></a>
-struct <a class="el" href="structhashtable__item.html">hashtable_item</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>p_next</b></td></tr>
-<tr class="separator:a2ad1fbf00ef7b5339d734dc879da4049"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>src/toolbox/hashtable.c</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.3
-</small></address>
-</body>
-</html>

+ 0 - 101
docs/html/structvec2__uint16.html

@@ -1,101 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: vec2_uint16 Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Data Fields</a>  </div>
-  <div class="headertitle"><div class="title">vec2_uint16 Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-<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:a58bb02338aebf7798ed13083eedb64b7"><td class="memItemLeft" ><a id="a58bb02338aebf7798ed13083eedb64b7" name="a58bb02338aebf7798ed13083eedb64b7"></a>
-union {</td></tr>
-<tr class="memitem:a531ff170dd49606c90ba2e44c956bbea"><td class="memItemLeft" ><a id="a531ff170dd49606c90ba2e44c956bbea" name="a531ff170dd49606c90ba2e44c956bbea"></a>
-&#160;&#160;&#160;struct {</td></tr>
-<tr class="memitem:af6057220f4103efa96a8ee4d928ff06a"><td class="memItemLeft" >
-&#160;&#160;&#160;&#160;&#160;&#160;uint16_t&#160;&#160;&#160;<b>x</b></td></tr>
-<tr class="separator:af6057220f4103efa96a8ee4d928ff06a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7d998d642e987a26cdd2dc70e039de5a"><td class="memItemLeft" >
-&#160;&#160;&#160;&#160;&#160;&#160;uint16_t&#160;&#160;&#160;<b>y</b></td></tr>
-<tr class="separator:a7d998d642e987a26cdd2dc70e039de5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a531ff170dd49606c90ba2e44c956bbea"><td class="memItemLeft" valign="top">&#160;&#160;&#160;}&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="separator:a531ff170dd49606c90ba2e44c956bbea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa72a82c2cdcac642d99d427a4a768409"><td class="memItemLeft" >
-&#160;&#160;&#160;uint16_t&#160;&#160;&#160;<b>data</b> [2]</td></tr>
-<tr class="separator:aa72a82c2cdcac642d99d427a4a768409"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a58bb02338aebf7798ed13083eedb64b7"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="separator:a58bb02338aebf7798ed13083eedb64b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>include/toolbox/vec2/<a class="el" href="vec2__uint16_8h_source.html">vec2_uint16.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.3
-</small></address>
-</body>
-</html>

+ 0 - 101
docs/html/structvec2__uint8.html

@@ -1,101 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: vec2_uint8 Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Data Fields</a>  </div>
-  <div class="headertitle"><div class="title">vec2_uint8 Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-<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:a92aca6e6c698ff149c1fe56f92c50d95"><td class="memItemLeft" ><a id="a92aca6e6c698ff149c1fe56f92c50d95" name="a92aca6e6c698ff149c1fe56f92c50d95"></a>
-union {</td></tr>
-<tr class="memitem:a6d99c1ecd603f2915487695127fb4286"><td class="memItemLeft" ><a id="a6d99c1ecd603f2915487695127fb4286" name="a6d99c1ecd603f2915487695127fb4286"></a>
-&#160;&#160;&#160;struct {</td></tr>
-<tr class="memitem:a5a1cfc729f7111e5744b8db1428d99be"><td class="memItemLeft" >
-&#160;&#160;&#160;&#160;&#160;&#160;uint8_t&#160;&#160;&#160;<b>x</b></td></tr>
-<tr class="separator:a5a1cfc729f7111e5744b8db1428d99be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5e2ac1e6855e83e5142a2c58cae3751e"><td class="memItemLeft" >
-&#160;&#160;&#160;&#160;&#160;&#160;uint8_t&#160;&#160;&#160;<b>y</b></td></tr>
-<tr class="separator:a5e2ac1e6855e83e5142a2c58cae3751e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6d99c1ecd603f2915487695127fb4286"><td class="memItemLeft" valign="top">&#160;&#160;&#160;}&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="separator:a6d99c1ecd603f2915487695127fb4286"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7a7e4bab0d7ae7c3fbf9f46c82505f3e"><td class="memItemLeft" >
-&#160;&#160;&#160;uint8_t&#160;&#160;&#160;<b>data</b> [2]</td></tr>
-<tr class="separator:a7a7e4bab0d7ae7c3fbf9f46c82505f3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a92aca6e6c698ff149c1fe56f92c50d95"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="separator:a92aca6e6c698ff149c1fe56f92c50d95"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>include/toolbox/vec2/<a class="el" href="vec2__uint8_8h_source.html">vec2_uint8.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.3
-</small></address>
-</body>
-</html>

+ 0 - 101
docs/html/structwindow.html

@@ -1,101 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: window Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Data Fields</a>  </div>
-  <div class="headertitle"><div class="title">window Struct Reference</div></div>
-</div><!--header-->
-<div class="contents">
-<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:ad10ee0838c981963b07fabc8abdc972b"><td class="memItemLeft" ><a id="ad10ee0838c981963b07fabc8abdc972b" name="ad10ee0838c981963b07fabc8abdc972b"></a>
-union {</td></tr>
-<tr class="memitem:a8fb7917ee0845737089f8a880b861c63"><td class="memItemLeft" ><a id="a8fb7917ee0845737089f8a880b861c63" name="a8fb7917ee0845737089f8a880b861c63"></a>
-&#160;&#160;&#160;struct {</td></tr>
-<tr class="memitem:abfd454b23ff176b1bed6342048dd76cb"><td class="memItemLeft" >
-&#160;&#160;&#160;&#160;&#160;&#160;uint16_t&#160;&#160;&#160;<b>width</b></td></tr>
-<tr class="separator:abfd454b23ff176b1bed6342048dd76cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7fe7f11224da5789232bfdd36bdac5e1"><td class="memItemLeft" >
-&#160;&#160;&#160;&#160;&#160;&#160;uint16_t&#160;&#160;&#160;<b>height</b></td></tr>
-<tr class="separator:a7fe7f11224da5789232bfdd36bdac5e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8fb7917ee0845737089f8a880b861c63"><td class="memItemLeft" valign="top">&#160;&#160;&#160;}&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="separator:a8fb7917ee0845737089f8a880b861c63"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4073722e85476cebf22d11740b9715b0"><td class="memItemLeft" >
-&#160;&#160;&#160;struct <a class="el" href="structvec2__uint16.html">vec2_uint16</a>&#160;&#160;&#160;<b>size</b></td></tr>
-<tr class="separator:a4073722e85476cebf22d11740b9715b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad10ee0838c981963b07fabc8abdc972b"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
-<tr class="separator:ad10ee0838c981963b07fabc8abdc972b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>src/toolbox/tui.c</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.3
-</small></address>
-</body>
-</html>

二进制
docs/html/tab_a.png


二进制
docs/html/tab_b.png


二进制
docs/html/tab_h.png


二进制
docs/html/tab_s.png


+ 0 - 134
docs/html/template_8h_source.html

@@ -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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/template.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">template.h</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#ifndef TOOLBOX_TEMPLATE_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#define TOOLBOX_TEMPLATE_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="preprocessor">#define CASE_1_BYTE case CHAR:  case UCHAR: case UINT8</span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span> </div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="preprocessor">#define CASE_2_BYTE                                                     \</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="preprocessor">    case SHORT:                                                         \</span></div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="preprocessor">    case USHORT:                                                        \</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="preprocessor">    case INT:                                                           \</span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="preprocessor">    case UINT:                                                          \</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="preprocessor">    case UINT16</span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#define CASE_4_BYTE                                                     \</span></div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">    case LONG:                                                          \</span></div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">    case LONGINT:                                                       \</span></div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="preprocessor">    case ULONG:                                                         \</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="preprocessor">    case ULONGINT:                                                      \</span></div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="preprocessor">    case FLOAT:                                                         \</span></div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">    case UINT32</span></div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#define CASE_8_BYTE                                                     \</span></div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">    case LONGLONG:                                                      \</span></div>
-<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">    case LONGLONGINT:                                                   \</span></div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">    case ULONGLONG:                                                     \</span></div>
-<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">    case ULONGLONGINT:                                                  \</span></div>
-<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">    case DOUBLE:                                                        \</span></div>
-<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">    case UINT64</span></div>
-<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
-<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">enum</span> generic_type {</div>
-<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    CHAR,</div>
-<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    UCHAR,</div>
-<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>    UINT8,</div>
-<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
-<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>    SHORT,</div>
-<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>    USHORT,</div>
-<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    INT,</div>
-<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    UINT,</div>
-<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    UINT16,</div>
-<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
-<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>    LONG,</div>
-<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>    LONGINT,</div>
-<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>    ULONG,</div>
-<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>    ULONGINT,</div>
-<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>    FLOAT,</div>
-<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>    UINT32,</div>
-<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span> </div>
-<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>    LONGLONG,</div>
-<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>    LONGLONGINT,</div>
-<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>    ULONGLONG,</div>
-<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>    ULONGLONGINT,</div>
-<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>    DOUBLE,</div>
-<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>    UINT64,</div>
-<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>};</div>
-<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span> </div>
-<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span><span class="preprocessor">#endif</span></div>
-</div><!-- fragment --></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.3
-</small></address>
-</body>
-</html>

+ 0 - 100
docs/html/vec2__uint8_8h_source.html

@@ -1,100 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/vec2/vec2_uint8.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li><li class="navelem"><a class="el" href="dir_3992a0e54f569a6be1ae2aba41236f49.html">vec2</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">vec2_uint8.h</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#ifndef TOOLBOX_VEC2_UINT8_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#define TOOLBOX_VEC2_UINT8_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="preprocessor">#ifdef TOOLBOX_TYPEDEF</span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structvec2__uint8.html">vec2_uint8</a> vec2_uint8_st;</div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span> </div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span> </div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"><a class="line" href="structvec2__uint8.html">   10</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structvec2__uint8.html">vec2_uint8</a> {</div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span>    <span class="keyword">union </span>{</div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span>        <span class="keyword">struct </span>{</div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span>            uint8_t x;</div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span>            uint8_t y;</div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span>        };</div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span>        uint8_t data[2];</div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>    };</div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>};</div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="preprocessor">#endif</span></div>
-<div class="ttc" id="astructvec2__uint8_html"><div class="ttname"><a href="structvec2__uint8.html">vec2_uint8</a></div><div class="ttdef"><b>Definition:</b> vec2_uint8.h:10</div></div>
-</div><!-- fragment --></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.3
-</small></address>
-</body>
-</html>

+ 0 - 91
docs/html/void__pointer_8h_source.html

@@ -1,91 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/void_pointer.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">void_pointer.h</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#ifndef TOOLBOX_VOID_POINTER_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#define TOOLBOX_VOID_POINTER_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span> </div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span>__attribute__((__pure__))</div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="keywordtype">bool</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span>void_pointer_equal(<span class="keyword">const</span> <span class="keywordtype">void</span> *restrict r_p_vptr1, <span class="keyword">const</span> <span class="keywordtype">size_t</span> p_vptr1_size</div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span>                   , <span class="keyword">const</span> <span class="keywordtype">void</span> *restrict r_p_vptr2, <span class="keyword">const</span> <span class="keywordtype">size_t</span> p_vptr2_size);</div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span> </div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#endif</span></div>
-</div><!-- fragment --></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.3
-</small></address>
-</body>
-</html>

+ 0 - 101
docs/html/vptr_8h_source.html

@@ -1,101 +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">
-<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.3"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>ToolBox Library: include/toolbox/vptr.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<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">ToolBox Library<span id="projectnumber">&#160;2.1.0</span>
-   </div>
-   <div id="projectbrief">An Library containing function and class to make developing in C faster</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.3 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-var searchBox = new SearchBox("searchBox", "search",'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */
-</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dc8d4286420b7aa8efcc9a53b027321f.html">toolbox</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle"><div class="title">vptr.h</div></div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#ifndef TOOLBOX_VPTR_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="preprocessor">#define TOOLBOX_VPTR_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span> </div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="preprocessor">#ifdef TOOLBOX_TYPEDEF</span></div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structvptr.html">vptr</a> vptr_st;</div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span> </div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"><a class="line" href="structvptr.html">   11</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structvptr.html">vptr</a> {</div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span>    <span class="keywordtype">size_t</span> size;</div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span>    <span class="keywordtype">void</span> *data;</div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span>};</div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span> </div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span>__attribute__((__pure__))</div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="keywordtype">bool</span></div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>vptr_equal(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structvptr.html">vptr</a> *restrict r_p_vptr1</div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>           , <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structvptr.html">vptr</a> *restrict r_p_vptr2);</div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#endif</span></div>
-<div class="ttc" id="astructvptr_html"><div class="ttname"><a href="structvptr.html">vptr</a></div><div class="ttdef"><b>Definition:</b> vptr.h:11</div></div>
-</div><!-- fragment --></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.3
-</small></address>
-</body>
-</html>

+ 0 - 23
docs/latex/Makefile

@@ -1,23 +0,0 @@
-LATEX_CMD=pdflatex
-
-all: refman.pdf
-
-pdf: refman.pdf
-
-refman.pdf: clean refman.tex
-	$(LATEX_CMD) refman
-	makeindex refman.idx
-	$(LATEX_CMD) refman
-	latex_count=8 ; \
-	while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
-	    do \
-	      echo "Rerunning latex...." ;\
-	      $(LATEX_CMD) refman ;\
-	      latex_count=`expr $$latex_count - 1` ;\
-	    done
-	makeindex refman.idx
-	$(LATEX_CMD) refman
-
-
-clean:
-	rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf

+ 0 - 104
docs/latex/ansi__escape_8h_source.tex

@@ -1,104 +0,0 @@
-\hypertarget{ansi__escape_8h_source}{}\doxysection{ansi\+\_\+escape.\+h}
-\label{ansi__escape_8h_source}\index{include/toolbox/ansi\_escape.h@{include/toolbox/ansi\_escape.h}}
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef TOOLBOX\_ANSI\_ESCAPE\_H}}
-\DoxyCodeLine{2 \textcolor{preprocessor}{\#define TOOLBOX\_ANSI\_ESCAPE\_H}}
-\DoxyCodeLine{3 }
-\DoxyCodeLine{4 \textcolor{preprocessor}{\#define ESC\_CHAR    "{}\(\backslash\)033"{}}}
-\DoxyCodeLine{5 }
-\DoxyCodeLine{6 \textcolor{preprocessor}{\#define CRS\_HOME        ESC\_CHAR"{}[H"{}}}
-\DoxyCodeLine{7 \textcolor{preprocessor}{\#define CRS\_MOV\_Y\_X ESC\_CHAR"{}[\%d;\%dH"{}}}
-\DoxyCodeLine{8 \textcolor{preprocessor}{\#define CRS\_MOV\_UP      ESC\_CHAR"{}[\%dA"{}}}
-\DoxyCodeLine{9 \textcolor{preprocessor}{\#define CRS\_MOV\_DOWN    ESC\_CHAR"{}[\%dB"{}}}
-\DoxyCodeLine{10 \textcolor{preprocessor}{\#define CRS\_MOV\_RIGHT   ESC\_CHAR"{}[\%dC"{}}}
-\DoxyCodeLine{11 \textcolor{preprocessor}{\#define CRS\_MOV\_LEFT    ESC\_CHAR"{}[\%dD"{}}}
-\DoxyCodeLine{12 \textcolor{preprocessor}{\#define CRS\_BGN\_NEXT    ESC\_CHAR"{}[\%dE"{}}}
-\DoxyCodeLine{13 \textcolor{preprocessor}{\#define CRS\_BGN\_PREV    ESC\_CHAR"{}[\%dF"{}}}
-\DoxyCodeLine{14 \textcolor{preprocessor}{\#define CRS\_MOV\_COL ESC\_CHAR"{}[\%dG"{}}}
-\DoxyCodeLine{15 \textcolor{preprocessor}{\#define CRS\_POS     ESC\_CHAR"{}[6n"{}}}
-\DoxyCodeLine{16 \textcolor{preprocessor}{\#define CRS\_UP          ESC\_CHAR"{}M"{}}}
-\DoxyCodeLine{17 \textcolor{preprocessor}{\#define CRS\_SAV\_DEC ESC\_CHAR"{}7"{}}}
-\DoxyCodeLine{18 \textcolor{preprocessor}{\#define CRS\_RES\_DEC ESC\_CHAR"{}8"{}}}
-\DoxyCodeLine{19 \textcolor{preprocessor}{\#define CRS\_SAV\_SCO ESC\_CHAR"{}[s"{}}}
-\DoxyCodeLine{20 \textcolor{preprocessor}{\#define CRS\_RES\_SCO ESC\_CHAR"{}[u"{}}}
-\DoxyCodeLine{21 }
-\DoxyCodeLine{22 \textcolor{preprocessor}{\#define CRS\_MOV\_1UP ESC\_CHAR"{}[1A"{}}}
-\DoxyCodeLine{23 \textcolor{preprocessor}{\#define CRS\_MOV\_1DOWN   ESC\_CHAR"{}[1B"{}}}
-\DoxyCodeLine{24 \textcolor{preprocessor}{\#define CRS\_MOV\_1RIGHT  ESC\_CHAR"{}[1C"{}}}
-\DoxyCodeLine{25 \textcolor{preprocessor}{\#define CRS\_MOV\_1LEFT   ESC\_CHAR"{}[1D"{}}}
-\DoxyCodeLine{26 }
-\DoxyCodeLine{27 \textcolor{preprocessor}{\#define ERS\_END\_SCR ESC\_CHAR"{}[0J"{}}}
-\DoxyCodeLine{28 \textcolor{preprocessor}{\#define ERS\_BGN\_SCR ESC\_CHAR"{}[1J"{}}}
-\DoxyCodeLine{29 \textcolor{preprocessor}{\#define ERS\_SCR     ESC\_CHAR"{}[2J"{}}}
-\DoxyCodeLine{30 \textcolor{preprocessor}{\#define ERS\_SAV\_LINE    ESC\_CHAR"{}[3J"{}}}
-\DoxyCodeLine{31 \textcolor{preprocessor}{\#define ERS\_END\_LINE    ESC\_CHAR"{}[0K"{}}}
-\DoxyCodeLine{32 \textcolor{preprocessor}{\#define ERS\_BGN\_LINE    ESC\_CHAR"{}[1K"{}}}
-\DoxyCodeLine{33 \textcolor{preprocessor}{\#define ERS\_LINE        ESC\_CHAR"{}[2K"{}}}
-\DoxyCodeLine{34 }
-\DoxyCodeLine{35 \textcolor{preprocessor}{\#define SET\_BOLD    ESC\_CHAR"{}[1m"{}}}
-\DoxyCodeLine{36 \textcolor{preprocessor}{\#define SET\_DIM ESC\_CHAR"{}[2m"{}}}
-\DoxyCodeLine{37 \textcolor{preprocessor}{\#define SET\_ITALIC  ESC\_CHAR"{}[3m"{}}}
-\DoxyCodeLine{38 \textcolor{preprocessor}{\#define SET\_UNDER   ESC\_CHAR"{}[4m"{}}}
-\DoxyCodeLine{39 \textcolor{preprocessor}{\#define SET\_BLINK   ESC\_CHAR"{}[5m"{}}}
-\DoxyCodeLine{40 \textcolor{preprocessor}{\#define SET\_INVERSE ESC\_CHAR"{}[7m"{}}}
-\DoxyCodeLine{41 \textcolor{preprocessor}{\#define SET\_HIDDEN  ESC\_CHAR"{}[8m"{}}}
-\DoxyCodeLine{42 \textcolor{preprocessor}{\#define SET\_STRIKE  ESC\_CHAR"{}[9m"{}}}
-\DoxyCodeLine{43 }
-\DoxyCodeLine{44 \textcolor{preprocessor}{\#define RST\_ALL ESC\_CHAR"{}[0m"{}}}
-\DoxyCodeLine{45 \textcolor{preprocessor}{\#define RST\_BOLD    ESC\_CHAR"{}[22m"{}}}
-\DoxyCodeLine{46 \textcolor{preprocessor}{\#define RST\_DIM ESC\_CHAR"{}[22m"{}}}
-\DoxyCodeLine{47 \textcolor{preprocessor}{\#define RST\_ITALIC  ESC\_CHAR"{}[23m"{}}}
-\DoxyCodeLine{48 \textcolor{preprocessor}{\#define RST\_UNDER   ESC\_CHAR"{}[24m"{}}}
-\DoxyCodeLine{49 \textcolor{preprocessor}{\#define RST\_BLINK   ESC\_CHAR"{}[25m"{}}}
-\DoxyCodeLine{50 \textcolor{preprocessor}{\#define RST\_INVERSE ESC\_CHAR"{}[27m"{}}}
-\DoxyCodeLine{51 \textcolor{preprocessor}{\#define RST\_HIDDEN  ESC\_CHAR"{}[28m"{}}}
-\DoxyCodeLine{52 \textcolor{preprocessor}{\#define RST\_STRIKE  ESC\_CHAR"{}[29m"{}}}
-\DoxyCodeLine{53 }
-\DoxyCodeLine{54 \textcolor{preprocessor}{\#define FG\_BLACK    ESC\_CHAR"{}[30m"{}}}
-\DoxyCodeLine{55 \textcolor{preprocessor}{\#define FG\_RED      ESC\_CHAR"{}[31m"{}}}
-\DoxyCodeLine{56 \textcolor{preprocessor}{\#define FG\_GREEN    ESC\_CHAR"{}[32m"{}}}
-\DoxyCodeLine{57 \textcolor{preprocessor}{\#define FG\_YELLOW   ESC\_CHAR"{}[33m"{}}}
-\DoxyCodeLine{58 \textcolor{preprocessor}{\#define FG\_BLUE ESC\_CHAR"{}[34m"{}}}
-\DoxyCodeLine{59 \textcolor{preprocessor}{\#define FG\_MAGENTA  ESC\_CHAR"{}[35m"{}}}
-\DoxyCodeLine{60 \textcolor{preprocessor}{\#define FG\_CYAN ESC\_CHAR"{}[36m"{}}}
-\DoxyCodeLine{61 \textcolor{preprocessor}{\#define FG\_WHITE    ESC\_CHAR"{}[37m"{}}}
-\DoxyCodeLine{62 \textcolor{preprocessor}{\#define FG\_DEFAULT  ESC\_CHAR"{}[39m"{}}}
-\DoxyCodeLine{63 }
-\DoxyCodeLine{64 \textcolor{preprocessor}{\#define BG\_BLACK    ESC\_CHAR"{}[40m"{}}}
-\DoxyCodeLine{65 \textcolor{preprocessor}{\#define BG\_RED      ESC\_CHAR"{}[41m"{}}}
-\DoxyCodeLine{66 \textcolor{preprocessor}{\#define BG\_GREEN    ESC\_CHAR"{}[42m"{}}}
-\DoxyCodeLine{67 \textcolor{preprocessor}{\#define BG\_YELLOW   ESC\_CHAR"{}[43m"{}}}
-\DoxyCodeLine{68 \textcolor{preprocessor}{\#define BG\_BLUE ESC\_CHAR"{}[44m"{}}}
-\DoxyCodeLine{69 \textcolor{preprocessor}{\#define BG\_MAGENTA  ESC\_CHAR"{}[45m"{}}}
-\DoxyCodeLine{70 \textcolor{preprocessor}{\#define BG\_CYAN ESC\_CHAR"{}[46m"{}}}
-\DoxyCodeLine{71 \textcolor{preprocessor}{\#define BG\_WHITE    ESC\_CHAR"{}[47m"{}}}
-\DoxyCodeLine{72 \textcolor{preprocessor}{\#define BG\_DEFAULT  ESC\_CHAR"{}[49m"{}}}
-\DoxyCodeLine{73 }
-\DoxyCodeLine{74 \textcolor{preprocessor}{\#define FG\_BBLACK   ESC\_CHAR"{}[90m"{}}}
-\DoxyCodeLine{75 \textcolor{preprocessor}{\#define FG\_BRED ESC\_CHAR"{}[91m"{}}}
-\DoxyCodeLine{76 \textcolor{preprocessor}{\#define FG\_BGREEN   ESC\_CHAR"{}[92m"{}}}
-\DoxyCodeLine{77 \textcolor{preprocessor}{\#define FG\_BYELLOW  ESC\_CHAR"{}[93m"{}}}
-\DoxyCodeLine{78 \textcolor{preprocessor}{\#define FG\_BBLUE    ESC\_CHAR"{}[94m"{}}}
-\DoxyCodeLine{79 \textcolor{preprocessor}{\#define FG\_BMAGENTA ESC\_CHAR"{}[95m"{}}}
-\DoxyCodeLine{80 \textcolor{preprocessor}{\#define FG\_BCYAN    ESC\_CHAR"{}[96m"{}}}
-\DoxyCodeLine{81 \textcolor{preprocessor}{\#define FG\_BWHITE   ESC\_CHAR"{}[97m"{}}}
-\DoxyCodeLine{82 }
-\DoxyCodeLine{83 \textcolor{preprocessor}{\#define BG\_BBLACK   ESC\_CHAR"{}[100m"{}}}
-\DoxyCodeLine{84 \textcolor{preprocessor}{\#define BG\_BRED ESC\_CHAR"{}[101m"{}}}
-\DoxyCodeLine{85 \textcolor{preprocessor}{\#define BG\_BGREEN   ESC\_CHAR"{}[102m"{}}}
-\DoxyCodeLine{86 \textcolor{preprocessor}{\#define BG\_BYELLOW  ESC\_CHAR"{}[103m"{}}}
-\DoxyCodeLine{87 \textcolor{preprocessor}{\#define BG\_BBLUE    ESC\_CHAR"{}[104m"{}}}
-\DoxyCodeLine{88 \textcolor{preprocessor}{\#define BG\_BMAGENTA ESC\_CHAR"{}[105m"{}}}
-\DoxyCodeLine{89 \textcolor{preprocessor}{\#define BG\_BCYAN    ESC\_CHAR"{}[106m"{}}}
-\DoxyCodeLine{90 \textcolor{preprocessor}{\#define BG\_BWHITE   ESC\_CHAR"{}[107m"{}}}
-\DoxyCodeLine{91 }
-\DoxyCodeLine{92 \textcolor{preprocessor}{\#define FG\_256 ESC\_CHAR"{}[38;5;\%dm"{}}}
-\DoxyCodeLine{93 \textcolor{preprocessor}{\#define BG\_256 ESC\_CHAR"{}[48;5;\%dm"{}}}
-\DoxyCodeLine{94 }
-\DoxyCodeLine{95 \textcolor{preprocessor}{\#define FG\_RGB ESC\_CHAR"{}[38;2;\%dm"{}}}
-\DoxyCodeLine{96 \textcolor{preprocessor}{\#define BG\_RGB ESC\_CHAR"{}[48;2;\%dm"{}}}
-\DoxyCodeLine{97 }
-\DoxyCodeLine{98 \textcolor{preprocessor}{\#endif}}
-
-\end{DoxyCode}

+ 0 - 79
docs/latex/args_8h_source.tex

@@ -1,79 +0,0 @@
-\hypertarget{args_8h_source}{}\doxysection{args.\+h}
-\label{args_8h_source}\index{include/toolbox/args.h@{include/toolbox/args.h}}
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef TOOLBOX\_ARGS\_H}}
-\DoxyCodeLine{2 \textcolor{preprocessor}{\#define TOOLBOX\_ARGS\_H}}
-\DoxyCodeLine{3 }
-\DoxyCodeLine{4 \textcolor{preprocessor}{\#include <stdbool.h>}}
-\DoxyCodeLine{5 \textcolor{preprocessor}{\#include <stddef.h>}}
-\DoxyCodeLine{6 \textcolor{preprocessor}{\#include <stdint.h>}}
-\DoxyCodeLine{7 }
-\DoxyCodeLine{8 \textcolor{preprocessor}{\#ifdef TOOLBOX\_TYPEDEF}}
-\DoxyCodeLine{9 \textcolor{keyword}{typedef} \textcolor{keyword}{struct }\mbox{\hyperlink{structargs}{args}} args\_st;}
-\DoxyCodeLine{10 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{11 }
-\DoxyCodeLine{12 \textcolor{preprocessor}{\#define MAX\_NUM\_OF\_OPTIONS 1024}}
-\DoxyCodeLine{13 }
-\DoxyCodeLine{14 \textcolor{keyword}{struct }\mbox{\hyperlink{structargs__op}{args\_op}} \{}
-\DoxyCodeLine{15     \textcolor{keywordtype}{bool} mand;}
-\DoxyCodeLine{16     \textcolor{keyword}{enum} \{}
-\DoxyCodeLine{17         TOGGLE,}
-\DoxyCodeLine{18         STRING,}
-\DoxyCodeLine{19         INT8, INT16, INT32, INT64,}
-\DoxyCodeLine{20         FLOAT, DOUBLE}
-\DoxyCodeLine{21     \} type;}
-\DoxyCodeLine{22     \textcolor{keywordtype}{char} abv;}
-\DoxyCodeLine{23     \textcolor{keyword}{const} \textcolor{keywordtype}{void} *ret;}
-\DoxyCodeLine{24     \textcolor{keyword}{struct }\{}
-\DoxyCodeLine{25         \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{structcstr}{cstr}};}
-\DoxyCodeLine{26         \textcolor{keywordtype}{size\_t} size;}
-\DoxyCodeLine{27     \} verb;}
-\DoxyCodeLine{28     \textcolor{keyword}{const} \textcolor{keywordtype}{char} *desc;}
-\DoxyCodeLine{29 \};}
-\DoxyCodeLine{30 }
-\DoxyCodeLine{31 \textcolor{keyword}{struct }\mbox{\hyperlink{structargs}{args}} \{}
-\DoxyCodeLine{32     \textcolor{keyword}{const} \textcolor{keywordtype}{int} argc;}
-\DoxyCodeLine{33     \textcolor{keywordtype}{char} **argv;}
-\DoxyCodeLine{34     \textcolor{keywordtype}{size\_t} mand\_num;}
-\DoxyCodeLine{35     \textcolor{keywordtype}{char} prepender;}
-\DoxyCodeLine{36     \textcolor{keyword}{struct }\{}
-\DoxyCodeLine{37         \textcolor{keywordtype}{size\_t} size;}
-\DoxyCodeLine{38         \textcolor{keyword}{struct }\mbox{\hyperlink{structargs__op}{args\_op}} data[MAX\_NUM\_OF\_OPTIONS];}
-\DoxyCodeLine{39     \} ops;}
-\DoxyCodeLine{40 \};}
-\DoxyCodeLine{41 }
-\DoxyCodeLine{42 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{43 \textcolor{keyword}{struct }\mbox{\hyperlink{structargs}{args}}}
-\DoxyCodeLine{44 args\_create(int argc, char **argv);}
-\DoxyCodeLine{45 }
-\DoxyCodeLine{46 \textcolor{keywordtype}{void}}
-\DoxyCodeLine{47 args\_set\_toggle(\textcolor{keyword}{struct} \mbox{\hyperlink{structargs}{args}} *self}
-\DoxyCodeLine{48                 , \textcolor{keyword}{const} \textcolor{keywordtype}{char} abreviation, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *restrict verbose}
-\DoxyCodeLine{49                 , \textcolor{keyword}{const} \textcolor{keywordtype}{char} *restrict description, \textcolor{keywordtype}{bool} mandatory}
-\DoxyCodeLine{50                 , \textcolor{keywordtype}{bool} *ret);}
-\DoxyCodeLine{51 }
-\DoxyCodeLine{52 \textcolor{keywordtype}{void}}
-\DoxyCodeLine{53 args\_set\_op\_str(\textcolor{keyword}{struct} \mbox{\hyperlink{structargs}{args}} *self}
-\DoxyCodeLine{54                 , \textcolor{keyword}{const} \textcolor{keywordtype}{char} abreviation, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *restrict verbose}
-\DoxyCodeLine{55                 , \textcolor{keyword}{const} \textcolor{keywordtype}{char} *restrict description}
-\DoxyCodeLine{56                 , \textcolor{keywordtype}{bool} mandatory, \textcolor{keywordtype}{void} *ret);}
-\DoxyCodeLine{57 }
-\DoxyCodeLine{58 \textcolor{keywordtype}{void}}
-\DoxyCodeLine{59 args\_set\_op\_float(\textcolor{keyword}{struct} \mbox{\hyperlink{structargs}{args}} *self}
-\DoxyCodeLine{60                   , \textcolor{keyword}{const} \textcolor{keywordtype}{char} abreviation, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *restrict verbose}
-\DoxyCodeLine{61                   , \textcolor{keyword}{const} \textcolor{keywordtype}{char} *restrict description, \textcolor{keywordtype}{bool} mandatory}
-\DoxyCodeLine{62                   , \textcolor{keywordtype}{bool} is\_double, \textcolor{keywordtype}{void} *ret);}
-\DoxyCodeLine{63 }
-\DoxyCodeLine{64 \textcolor{keywordtype}{void}}
-\DoxyCodeLine{65 args\_set\_op\_int(\textcolor{keyword}{struct} \mbox{\hyperlink{structargs}{args}} *self}
-\DoxyCodeLine{66                 , \textcolor{keyword}{const} \textcolor{keywordtype}{char} abreviation, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *restrict verbose}
-\DoxyCodeLine{67                 , \textcolor{keyword}{const} \textcolor{keywordtype}{char} *restrict description, \textcolor{keywordtype}{bool} mandatory}
-\DoxyCodeLine{68                 , \textcolor{keywordtype}{size\_t} size\_in\_byte, \textcolor{keywordtype}{void} *ret);}
-\DoxyCodeLine{69 }
-\DoxyCodeLine{70 \textcolor{keywordtype}{void}}
-\DoxyCodeLine{71 args\_check(\textcolor{keyword}{struct} \mbox{\hyperlink{structargs}{args}} *self);}
-\DoxyCodeLine{72 }
-\DoxyCodeLine{73 \textcolor{preprocessor}{\#endif}}
-
-\end{DoxyCode}

+ 0 - 75
docs/latex/array_8h_source.tex

@@ -1,75 +0,0 @@
-\hypertarget{array_8h_source}{}\doxysection{array.\+h}
-\label{array_8h_source}\index{include/toolbox/array.h@{include/toolbox/array.h}}
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef TOOLBOX\_ARRAY\_H}}
-\DoxyCodeLine{2 \textcolor{preprocessor}{\#define TOOLBOX\_ARRAY\_H}}
-\DoxyCodeLine{3 }
-\DoxyCodeLine{4 \textcolor{preprocessor}{\#include "{}toolbox/vptr.h"{}}}
-\DoxyCodeLine{5 \textcolor{preprocessor}{\#include "{}toolbox/return\_codes.h"{}}}
-\DoxyCodeLine{6 }
-\DoxyCodeLine{7 \textcolor{preprocessor}{\#include <stdint.h>}}
-\DoxyCodeLine{8 \textcolor{preprocessor}{\#include <stddef.h>}}
-\DoxyCodeLine{9 \textcolor{preprocessor}{\#include <string.h>}}
-\DoxyCodeLine{10 }
-\DoxyCodeLine{11 \textcolor{preprocessor}{\#ifdef TOOLBOX\_TYPEDEF}}
-\DoxyCodeLine{12 \textcolor{keyword}{typedef} \textcolor{keyword}{struct }\mbox{\hyperlink{structarray}{array}} array\_st;}
-\DoxyCodeLine{13 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{14 }
-\DoxyCodeLine{15 \textcolor{keyword}{struct }\mbox{\hyperlink{structarray}{array}} \{}
-\DoxyCodeLine{16     \textcolor{keywordtype}{size\_t} item\_size;}
-\DoxyCodeLine{17     \textcolor{keywordtype}{size\_t} size;}
-\DoxyCodeLine{18     \textcolor{keywordtype}{size\_t} alloc\_size;}
-\DoxyCodeLine{19     \textcolor{keywordtype}{void} **data;}
-\DoxyCodeLine{20 \};}
-\DoxyCodeLine{21 }
-\DoxyCodeLine{33 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{34 \textcolor{keyword}{struct }\mbox{\hyperlink{structarray}{array}} *}
-\DoxyCodeLine{35 array\_create(\textcolor{keywordtype}{size\_t} arr\_size, \textcolor{keywordtype}{size\_t} item\_size);}
-\DoxyCodeLine{36 }
-\DoxyCodeLine{37 RET\_TYPE}
-\DoxyCodeLine{38 array\_clear(\textcolor{keyword}{struct} \mbox{\hyperlink{structarray}{array}} *self);}
-\DoxyCodeLine{39 }
-\DoxyCodeLine{40 RET\_TYPE}
-\DoxyCodeLine{41 array\_destroy(\textcolor{keyword}{struct} \mbox{\hyperlink{structarray}{array}} **self);}
-\DoxyCodeLine{42 }
-\DoxyCodeLine{43 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{44 \textcolor{keywordtype}{size\_t}}
-\DoxyCodeLine{45 array\_index\_of(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structarray}{array}} *self}
-\DoxyCodeLine{46                , \textcolor{keyword}{const} \textcolor{keywordtype}{void} *item);}
-\DoxyCodeLine{47 }
-\DoxyCodeLine{48 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{49 \_Bool}
-\DoxyCodeLine{50 array\_contain(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structarray}{array}} *self}
-\DoxyCodeLine{51               , \textcolor{keyword}{const} \textcolor{keywordtype}{void} *item);}
-\DoxyCodeLine{52 }
-\DoxyCodeLine{53 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{54 \textcolor{keywordtype}{size\_t}}
-\DoxyCodeLine{55 array\_count(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structarray}{array}} *self, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *item);}
-\DoxyCodeLine{56 }
-\DoxyCodeLine{57 RET\_TYPE}
-\DoxyCodeLine{58 array\_set(\textcolor{keyword}{struct} \mbox{\hyperlink{structarray}{array}} *self, \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} p\_index}
-\DoxyCodeLine{59           , \textcolor{keyword}{const} \textcolor{keywordtype}{void} *item);}
-\DoxyCodeLine{60 }
-\DoxyCodeLine{61 RET\_TYPE}
-\DoxyCodeLine{62 array\_insert(\textcolor{keyword}{struct} \mbox{\hyperlink{structarray}{array}} *self, \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} p\_index}
-\DoxyCodeLine{63              , \textcolor{keyword}{const} \textcolor{keywordtype}{void} *item);}
-\DoxyCodeLine{64 }
-\DoxyCodeLine{65 RET\_TYPE}
-\DoxyCodeLine{66 array\_append(\textcolor{keyword}{struct} \mbox{\hyperlink{structarray}{array}} *self, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *item);}
-\DoxyCodeLine{67 }
-\DoxyCodeLine{68 RET\_TYPE}
-\DoxyCodeLine{69 array\_prepend(\textcolor{keyword}{struct} \mbox{\hyperlink{structarray}{array}} *self, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *item);}
-\DoxyCodeLine{70 }
-\DoxyCodeLine{71 RET\_TYPE}
-\DoxyCodeLine{72 array\_delete(\textcolor{keyword}{struct} \mbox{\hyperlink{structarray}{array}} *self, \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} p\_index);}
-\DoxyCodeLine{73 }
-\DoxyCodeLine{74 RET\_TYPE}
-\DoxyCodeLine{75 array\_remove(\textcolor{keyword}{struct} \mbox{\hyperlink{structarray}{array}} *self, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *item);}
-\DoxyCodeLine{76 }
-\DoxyCodeLine{77 RET\_TYPE}
-\DoxyCodeLine{78 array\_for\_each(\textcolor{keyword}{struct} \mbox{\hyperlink{structarray}{array}} *self, \textcolor{keywordtype}{void} (*for\_each)(\textcolor{keywordtype}{void} *item));}
-\DoxyCodeLine{79 }
-\DoxyCodeLine{80 \textcolor{preprocessor}{\#endif}}
-
-\end{DoxyCode}

+ 0 - 21
docs/latex/cstring_8h_source.tex

@@ -1,21 +0,0 @@
-\hypertarget{cstring_8h_source}{}\doxysection{cstring.\+h}
-\label{cstring_8h_source}\index{include/toolbox/cstring.h@{include/toolbox/cstring.h}}
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef TOOLBOX\_CSTRING\_H}}
-\DoxyCodeLine{2 \textcolor{preprocessor}{\#define TOOLBOX\_CSTRING\_H}}
-\DoxyCodeLine{3 }
-\DoxyCodeLine{4 \textcolor{preprocessor}{\#include <stdbool.h>}}
-\DoxyCodeLine{5 \textcolor{preprocessor}{\#include <stddef.h>}}
-\DoxyCodeLine{6 }
-\DoxyCodeLine{7 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{8 \textcolor{keywordtype}{size\_t}}
-\DoxyCodeLine{9 cstring\_len(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *cstring);}
-\DoxyCodeLine{10 }
-\DoxyCodeLine{11 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{12 \textcolor{keywordtype}{bool}}
-\DoxyCodeLine{13 cstring\_equal(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *restrict cstring\_1, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *restrict cstring\_2);}
-\DoxyCodeLine{14 }
-\DoxyCodeLine{15 \textcolor{preprocessor}{\#endif}}
-
-\end{DoxyCode}

+ 0 - 601
docs/latex/doxygen.sty

@@ -1,601 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{doxygen}
-
-% Packages used by this style file
-\RequirePackage{alltt}
-%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
-\RequirePackage{calc}
-\RequirePackage{float}
-%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
-\RequirePackage{verbatim}
-\RequirePackage[table]{xcolor}
-\RequirePackage{longtable_doxygen}
-\RequirePackage{tabu_doxygen}
-\RequirePackage{fancyvrb}
-\RequirePackage{tabularx}
-\RequirePackage{multicol}
-\RequirePackage{multirow}
-\RequirePackage{hanging}
-\RequirePackage{ifpdf}
-\RequirePackage{adjustbox}
-\RequirePackage{amssymb}
-\RequirePackage{stackengine}
-\RequirePackage{enumitem}
-\RequirePackage{alphalph}
-\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis
-\RequirePackage{enumitem}
-
-%---------- Internal commands used in this style file ----------------
-
-\newcommand{\ensurespace}[1]{%
-  \begingroup%
-    \setlength{\dimen@}{#1}%
-    \vskip\z@\@plus\dimen@%
-    \penalty -100\vskip\z@\@plus -\dimen@%
-    \vskip\dimen@%
-    \penalty 9999%
-    \vskip -\dimen@%
-    \vskip\z@skip% hide the previous |\vskip| from |\addvspace|
-  \endgroup%
-}
-
-\newcommand{\DoxyHorRuler}[1]{%
-  \setlength{\parskip}{0ex plus 0ex minus 0ex}%
-  \ifthenelse{#1=0}%
-  {%
-    \hrule%
-  }%
-  {%
-    \hrulefilll%
-  }%
-}
-\newcommand{\DoxyLabelFont}{}
-\newcommand{\entrylabel}[1]{%
-  {%
-    \parbox[b]{\labelwidth-4pt}{%
-      \makebox[0pt][l]{\DoxyLabelFont#1}%
-      \vspace{1.5\baselineskip}%
-    }%
-  }%
-}
-
-\newenvironment{DoxyDesc}[1]{%
-  \ensurespace{4\baselineskip}%
-  \begin{list}{}{%
-    \settowidth{\labelwidth}{20pt}%
-    %\setlength{\parsep}{0pt}%
-    \setlength{\itemsep}{0pt}%
-    \setlength{\leftmargin}{\labelwidth+\labelsep}%
-    \renewcommand{\makelabel}{\entrylabel}%
-  }%
-  \item[#1]%
-}{%
-  \end{list}%
-}
-
-\newsavebox{\xrefbox}
-\newlength{\xreflength}
-\newcommand{\xreflabel}[1]{%
-  \sbox{\xrefbox}{#1}%
-  \setlength{\xreflength}{\wd\xrefbox}%
-  \ifthenelse{\xreflength>\labelwidth}{%
-    \begin{minipage}{\textwidth}%
-      \setlength{\parindent}{0pt}%
-      \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
-    \end{minipage}%
-  }{%
-   \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
-  }%
-}
-
-%---------- Commands used by doxygen LaTeX output generator ----------
-
-% Used by <pre> ... </pre>
-\newenvironment{DoxyPre}{%
-  \small%
-  \begin{alltt}%
-}{%
-  \end{alltt}%
-  \normalsize%
-}
-% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output.
-\newlength{\CodeWidthChar}
-\newlength{\CodeHeightChar}
-\settowidth{\CodeWidthChar}{?}
-\settoheight{\CodeHeightChar}{?}
-% Necessary for hanging indent
-\newlength{\DoxyCodeWidth}
-
-\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par}
-
-\newcommand\NiceSpace{%
-     \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}%
-}
-
-% Used by @code ... @endcode
-\newenvironment{DoxyCode}[1]{%
-  \par%
-  \scriptsize%
-  \normalfont\ttfamily%
-  \rightskip0pt plus 1fil%
-  \settowidth{\DoxyCodeWidth}{000000}%
-  \settowidth{\CodeWidthChar}{?}%
-  \settoheight{\CodeHeightChar}{?}%
-  \setlength{\parskip}{0ex plus 0ex minus 0ex}%
-  \ifthenelse{\equal{#1}{0}}
-  {
-    {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
-  }
-  {
-    {\lccode`~32 \lowercase{\global\let~}}\obeyspaces%
-  }
-
-}{%
-  \normalfont%
-  \normalsize%
-  \settowidth{\CodeWidthChar}{?}%
-  \settoheight{\CodeHeightChar}{?}%
-}
-
-% Redefining not defined characters, i.e. "Replacement Character" in tex output.
-\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{%
-   \textcolor{white}{\sffamily\bfseries\small ?}}{%
-   \rotatebox{45}{$\blacksquare$}}}}
-
-% Used by @example, @include, @includelineno and @dontinclude
-\newenvironment{DoxyCodeInclude}[1]{%
-	\DoxyCode{#1}%
-}{%
-  \endDoxyCode%
-}
-
-% Used by @verbatim ... @endverbatim
-\newenvironment{DoxyVerb}{%
-  \footnotesize%
-  \verbatim%
-}{%
-  \endverbatim%
-  \normalsize%
-}
-
-% Used by @verbinclude
-\newenvironment{DoxyVerbInclude}{%
-  \DoxyVerb%
-}{%
-  \endDoxyVerb%
-}
-
-% Used by numbered lists (using '-#' or <ol> ... </ol>)
-\setlistdepth{12}
-\newlist{DoxyEnumerate}{enumerate}{12}
-\setlist[DoxyEnumerate,1]{label=\arabic*.}
-\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)}
-\setlist[DoxyEnumerate,3]{label=\roman*.}
-\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.}
-\setlist[DoxyEnumerate,5]{label=\arabic*.}
-\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)}
-\setlist[DoxyEnumerate,7]{label=\roman*.}
-\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.}
-\setlist[DoxyEnumerate,9]{label=\arabic*.}
-\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)}
-\setlist[DoxyEnumerate,11]{label=\roman*.}
-\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.}
-
-% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
-\setlistdepth{12}
-\newlist{DoxyItemize}{itemize}{12}
-\setlist[DoxyItemize]{label=\textperiodcentered}
-
-\setlist[DoxyItemize,1]{label=\textbullet}
-\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash}
-\setlist[DoxyItemize,3]{label=\textasteriskcentered}
-\setlist[DoxyItemize,4]{label=\textperiodcentered}
-
-% Used by description lists (using <dl> ... </dl>)
-\newenvironment{DoxyDescription}{%
-  \description%
-}{%
-  \enddescription%
-}
-
-% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
-% (only if caption is specified)
-\newenvironment{DoxyImage}{%
-  \begin{figure}[H]%
-    \centering%
-}{%
-  \end{figure}%
-}
-
-% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
-% (only if no caption is specified)
-\newenvironment{DoxyImageNoCaption}{%
-  \begin{center}%
-}{%
-  \end{center}%
-}
-
-% Used by @image
-% (only if inline is specified)
-\newenvironment{DoxyInlineImage}{%
-}{%
-}
-
-% Used by @attention
-\newenvironment{DoxyAttention}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @author and @authors
-\newenvironment{DoxyAuthor}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @date
-\newenvironment{DoxyDate}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @invariant
-\newenvironment{DoxyInvariant}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @note
-\newenvironment{DoxyNote}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @post
-\newenvironment{DoxyPostcond}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @pre
-\newenvironment{DoxyPrecond}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @copyright
-\newenvironment{DoxyCopyright}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @remark
-\newenvironment{DoxyRemark}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @return and @returns
-\newenvironment{DoxyReturn}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @since
-\newenvironment{DoxySince}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @see
-\newenvironment{DoxySeeAlso}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @version
-\newenvironment{DoxyVersion}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @warning
-\newenvironment{DoxyWarning}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by @internal
-\newenvironment{DoxyInternal}[1]{%
-  \paragraph*{#1}%
-}{%
-}
-
-% Used by @par and @paragraph
-\newenvironment{DoxyParagraph}[1]{%
-  \begin{DoxyDesc}{#1}%
-}{%
-  \end{DoxyDesc}%
-}
-
-% Used by parameter lists
-\newenvironment{DoxyParams}[2][]{%
-    \tabulinesep=1mm%
-    \par%
-    \ifthenelse{\equal{#1}{}}%
-      {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
-    {\ifthenelse{\equal{#1}{1}}%
-      {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
-      {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
-    }
-    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
-    \hline%
-    \endfirsthead%
-    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
-    \hline%
-    \endhead%
-}{%
-    \end{longtabu*}%
-    \vspace{6pt}%
-}
-
-% Used for fields of simple structs
-\newenvironment{DoxyFields}[1]{%
-    \tabulinesep=1mm%
-    \par%
-    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
-    \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
-    \hline%
-    \endfirsthead%
-    \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
-    \hline%
-    \endhead%
-}{%
-    \end{longtabu*}%
-    \vspace{6pt}%
-}
-
-% Used for fields simple class style enums
-\newenvironment{DoxyEnumFields}[1]{%
-    \tabulinesep=1mm%
-    \par%
-    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
-    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
-    \hline%
-    \endfirsthead%
-    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
-    \hline%
-    \endhead%
-}{%
-    \end{longtabu*}%
-    \vspace{6pt}%
-}
-
-% Used for parameters within a detailed function description
-\newenvironment{DoxyParamCaption}{%
-  \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% 
-}{%
-}
-
-% Used by return value lists
-\newenvironment{DoxyRetVals}[1]{%
-    \tabulinesep=1mm%
-    \par%
-    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
-    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
-    \hline%
-    \endfirsthead%
-    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
-    \hline%
-    \endhead%
-}{%
-    \end{longtabu*}%
-    \vspace{6pt}%
-}
-
-% Used by exception lists
-\newenvironment{DoxyExceptions}[1]{%
-    \tabulinesep=1mm%
-    \par%
-    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
-    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
-    \hline%
-    \endfirsthead%
-    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
-    \hline%
-    \endhead%
-}{%
-    \end{longtabu*}%
-    \vspace{6pt}%
-}
-
-% Used by template parameter lists
-\newenvironment{DoxyTemplParams}[1]{%
-    \tabulinesep=1mm%
-    \par%
-    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
-    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
-    \hline%
-    \endfirsthead%
-    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
-    \hline%
-    \endhead%
-}{%
-    \end{longtabu*}%
-    \vspace{6pt}%
-}
-
-% Used for member lists
-\newenvironment{DoxyCompactItemize}{%
-  \begin{itemize}%
-    \setlength{\itemsep}{-3pt}%
-    \setlength{\parsep}{0pt}%
-    \setlength{\topsep}{0pt}%
-    \setlength{\partopsep}{0pt}%
-}{%
-  \end{itemize}%
-}
-
-% Used for member descriptions
-\newenvironment{DoxyCompactList}{%
-  \begin{list}{}{%
-    \setlength{\leftmargin}{0.5cm}%
-    \setlength{\itemsep}{0pt}%
-    \setlength{\parsep}{0pt}%
-    \setlength{\topsep}{0pt}%
-    \renewcommand{\makelabel}{\hfill}%
-  }%
-}{%
-  \end{list}%
-}
-
-% Used for reference lists (@bug, @deprecated, @todo, etc.)
-\newenvironment{DoxyRefList}{%
-  \begin{list}{}{%
-    \setlength{\labelwidth}{10pt}%
-    \setlength{\leftmargin}{\labelwidth}%
-    \addtolength{\leftmargin}{\labelsep}%
-    \renewcommand{\makelabel}{\xreflabel}%
-  }%
-}{%
-  \end{list}%
-}
-
-% Used by @bug, @deprecated, @todo, etc.
-\newenvironment{DoxyRefDesc}[1]{%
-  \begin{list}{}{%
-    \renewcommand\makelabel[1]{\textbf{##1}}%
-    \settowidth\labelwidth{\makelabel{#1}}%
-    \setlength\leftmargin{\labelwidth+\labelsep}%
-  }%
-}{%
-  \end{list}%
-}
-
-% Used by parameter lists and simple sections
-\newenvironment{Desc}
-{\begin{list}{}{%
-    \settowidth{\labelwidth}{20pt}%
-    \setlength{\parsep}{0pt}%
-    \setlength{\itemsep}{0pt}%
-    \setlength{\leftmargin}{\labelwidth+\labelsep}%
-    \renewcommand{\makelabel}{\entrylabel}%
-  }
-}{%
-  \end{list}%
-}
-
-% Used by tables
-\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
-\newenvironment{TabularC}[1]%
-{\tabulinesep=1mm
-\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}%
-{\end{longtabu*}\par}%
-
-\newenvironment{TabularNC}[1]%
-{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}%
-{\end{tabu}\par}%
-
-% Used for member group headers
-\newenvironment{Indent}{%
-  \begin{list}{}{%
-    \setlength{\leftmargin}{0.5cm}%
-  }%
-  \item[]\ignorespaces%
-}{%
-  \unskip%
-  \end{list}%
-}
-
-% Used when hyperlinks are turned off
-\newcommand{\doxyref}[3]{%
-  \textbf{#1} (\textnormal{#2}\,\pageref{#3})%
-}
-
-% Used to link to a table when hyperlinks are turned on
-\newcommand{\doxytablelink}[2]{%
-  \ref{#1}%
-}
-
-% Used to link to a table when hyperlinks are turned off
-\newcommand{\doxytableref}[3]{%
-  \ref{#3}%
-}
-
-% Used by @addindex
-\newcommand{\lcurly}{\{}
-\newcommand{\rcurly}{\}}
-
-% Colors used for syntax highlighting
-\definecolor{comment}{rgb}{0.5,0.0,0.0}
-\definecolor{keyword}{rgb}{0.0,0.5,0.0}
-\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
-\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
-\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
-\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
-\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
-\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
-\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
-\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
-\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
-
-% Color used for table heading
-\newcommand{\tableheadbgcolor}{lightgray}%
-
-% Version of hypertarget with correct landing location
-\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
-
-% possibility to have sections etc. be within the margins
-% unfortunately had to copy part of book.cls and add \raggedright
-\makeatletter
-\newcommand\doxysection{\@startsection {section}{1}{\z@}%
-                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
-                                   {2.3ex \@plus.2ex}%
-                                   {\raggedright\normalfont\Large\bfseries}}
-\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}%
-                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
-                                     {1.5ex \@plus .2ex}%
-                                     {\raggedright\normalfont\large\bfseries}}
-\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}%
-                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
-                                     {1.5ex \@plus .2ex}%
-                                     {\raggedright\normalfont\normalsize\bfseries}}
-\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}%
-                                    {3.25ex \@plus1ex \@minus.2ex}%
-                                    {-1em}%
-                                    {\raggedright\normalfont\normalsize\bfseries}}
-\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}%
-                                       {3.25ex \@plus1ex \@minus .2ex}%
-                                       {-1em}%
-                                      {\raggedright\normalfont\normalsize\bfseries}}
-\makeatother
-% Define caption that is also suitable in a table
-\makeatletter
-\def\doxyfigcaption{%
-\H@refstepcounter{figure}%
-\@dblarg{\@caption{figure}}}
-\makeatother
-
-% Define alpha enumarative names for counters > 26
-\makeatletter
-\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname}
-\def\@enumalphalphcnt#1{\alphalph{#1}}
-\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname}
-\def\@enumAlphAlphcnt#1{\AlphAlph{#1}}
-\makeatother
-\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa}
-\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA}

+ 0 - 20
docs/latex/files.tex

@@ -1,20 +0,0 @@
-\doxysection{File List}
-Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{ansi__escape_8h_source}{ansi\+\_\+escape.\+h}} }{\pageref{ansi__escape_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{args_8h_source}{args.\+h}} }{\pageref{args_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{array_8h_source}{array.\+h}} }{\pageref{array_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{cstr_8h_source}{cstr.\+h}} }{\pageref{cstr_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{cstr__fixed_8h_source}{cstr\+\_\+fixed.\+h}} }{\pageref{cstr__fixed_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{cstring_8h_source}{cstring.\+h}} }{\pageref{cstring_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{hash_8h_source}{hash.\+h}} }{\pageref{hash_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{hashtable_8h_source}{hashtable.\+h}} }{\pageref{hashtable_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{log_8h_source}{log.\+h}} }{\pageref{log_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{random_8h_source}{random.\+h}} }{\pageref{random_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{return__codes_8h_source}{return\+\_\+codes.\+h}} }{\pageref{return__codes_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{template_8h_source}{template.\+h}} }{\pageref{template_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{tui_8h_source}{tui.\+h}} }{\pageref{tui_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{void__pointer_8h_source}{void\+\_\+pointer.\+h}} }{\pageref{void__pointer_8h_source}}{}
-\item\contentsline{section}{include/toolbox/\mbox{\hyperlink{vptr_8h_source}{vptr.\+h}} }{\pageref{vptr_8h_source}}{}
-\item\contentsline{section}{include/toolbox/vec2/\mbox{\hyperlink{vec2__uint16_8h_source}{vec2\+\_\+uint16.\+h}} }{\pageref{vec2__uint16_8h_source}}{}
-\item\contentsline{section}{include/toolbox/vec2/\mbox{\hyperlink{vec2__uint8_8h_source}{vec2\+\_\+uint8.\+h}} }{\pageref{vec2__uint8_8h_source}}{}
-\end{DoxyCompactList}

+ 0 - 16
docs/latex/hash_8h_source.tex

@@ -1,16 +0,0 @@
-\hypertarget{hash_8h_source}{}\doxysection{hash.\+h}
-\label{hash_8h_source}\index{include/toolbox/hash.h@{include/toolbox/hash.h}}
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef TOOLBOX\_HASH\_H}}
-\DoxyCodeLine{2 \textcolor{preprocessor}{\#define TOOLBOX\_HASH\_H}}
-\DoxyCodeLine{3 }
-\DoxyCodeLine{4 \textcolor{preprocessor}{\#include <stdint.h>}}
-\DoxyCodeLine{5 }
-\DoxyCodeLine{6 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{7 uint64\_t}
-\DoxyCodeLine{8 hash\_cstr(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *r\_p\_cstr);}
-\DoxyCodeLine{9 }
-\DoxyCodeLine{10 \textcolor{preprocessor}{\#endif}}
-
-\end{DoxyCode}

+ 0 - 96
docs/latex/hashtable_8h_source.tex

@@ -1,96 +0,0 @@
-\hypertarget{hashtable_8h_source}{}\doxysection{hashtable.\+h}
-\label{hashtable_8h_source}\index{include/toolbox/hashtable.h@{include/toolbox/hashtable.h}}
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef TOOLBOX\_HASHTABLE\_H}}
-\DoxyCodeLine{2 \textcolor{preprocessor}{\#define TOOLBOX\_HASHTABLE\_H}}
-\DoxyCodeLine{3 }
-\DoxyCodeLine{4 \textcolor{preprocessor}{\#include "{}toolbox/return\_codes.h"{}}}
-\DoxyCodeLine{5 }
-\DoxyCodeLine{6 \textcolor{preprocessor}{\#include <stdbool.h>}}
-\DoxyCodeLine{7 \textcolor{preprocessor}{\#include <stddef.h>}}
-\DoxyCodeLine{8 \textcolor{preprocessor}{\#include <stdint.h>}}
-\DoxyCodeLine{9 }
-\DoxyCodeLine{10 \textcolor{preprocessor}{\#ifndef HASHTABLE\_SIZE\_BYTES}}
-\DoxyCodeLine{11 \textcolor{preprocessor}{\#define HASHTABLE\_SIZE\_BYTES (1024*1024)}}
-\DoxyCodeLine{12 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{13 }
-\DoxyCodeLine{14 \textcolor{preprocessor}{\#ifdef TOOLBOX\_TYPEDEF}}
-\DoxyCodeLine{15 \textcolor{keyword}{typedef} \textcolor{keyword}{struct }\mbox{\hyperlink{structhashtable}{hashtable}} hashtable\_st;}
-\DoxyCodeLine{16 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{17 }
-\DoxyCodeLine{18 \textcolor{keyword}{struct }\mbox{\hyperlink{structhashtable}{hashtable}};}
-\DoxyCodeLine{19 }
-\DoxyCodeLine{20 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{21 \textcolor{keyword}{struct }\mbox{\hyperlink{structhashtable}{hashtable}} *}
-\DoxyCodeLine{22 hashtable\_create(\textcolor{keywordtype}{void});}
-\DoxyCodeLine{23 }
-\DoxyCodeLine{24 RET\_TYPE}
-\DoxyCodeLine{25 hashtable\_destroy(\textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} **self);}
-\DoxyCodeLine{26 }
-\DoxyCodeLine{27 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{28 \textcolor{keywordtype}{bool}}
-\DoxyCodeLine{29 hashtable\_contain\_item(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self}
-\DoxyCodeLine{30                         , \textcolor{keyword}{const} \textcolor{keywordtype}{void}* item, \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} item\_size);}
-\DoxyCodeLine{31 }
-\DoxyCodeLine{32 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{33 \textcolor{keywordtype}{bool}}
-\DoxyCodeLine{34 hashtable\_contain\_key(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self}
-\DoxyCodeLine{35                        , \textcolor{keyword}{const} \textcolor{keywordtype}{char} *key);}
-\DoxyCodeLine{36 }
-\DoxyCodeLine{37 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{38 \textcolor{keywordtype}{bool}}
-\DoxyCodeLine{39 hashtable\_contain\_key\_hash(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self}
-\DoxyCodeLine{40                             , \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} key\_hash);}
-\DoxyCodeLine{41 }
-\DoxyCodeLine{42 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{43 \textcolor{keyword}{const} \textcolor{keywordtype}{void} *}
-\DoxyCodeLine{44 hashtable\_get(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self}
-\DoxyCodeLine{45               , \textcolor{keyword}{const} \textcolor{keywordtype}{char} *key);}
-\DoxyCodeLine{46 }
-\DoxyCodeLine{47 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{48 \textcolor{keyword}{const} \textcolor{keywordtype}{void} *}
-\DoxyCodeLine{49 hashtable\_get\_or\_default(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self}
-\DoxyCodeLine{50                          , \textcolor{keyword}{const} \textcolor{keywordtype}{char} *key}
-\DoxyCodeLine{51                          , \textcolor{keyword}{const} \textcolor{keywordtype}{void} *default\_item);}
-\DoxyCodeLine{52 }
-\DoxyCodeLine{53 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{54 \textcolor{keywordtype}{bool}}
-\DoxyCodeLine{55 hashtable\_is\_empty(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self);}
-\DoxyCodeLine{56 }
-\DoxyCodeLine{57 RET\_TYPE}
-\DoxyCodeLine{58 hashtable\_put(\textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self}
-\DoxyCodeLine{59               , \textcolor{keyword}{const} \textcolor{keywordtype}{char} *key}
-\DoxyCodeLine{60               , \textcolor{keyword}{const} \textcolor{keywordtype}{void} *item, \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} item\_size);}
-\DoxyCodeLine{61 }
-\DoxyCodeLine{62 \textcolor{keyword}{const} \textcolor{keywordtype}{void} *}
-\DoxyCodeLine{63 hashtable\_remove(\textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *key);}
-\DoxyCodeLine{64 }
-\DoxyCodeLine{65 \textcolor{keywordtype}{bool}}
-\DoxyCodeLine{66 hashtable\_remove\_if\_equal(\textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self}
-\DoxyCodeLine{67                           , \textcolor{keyword}{const} \textcolor{keywordtype}{char} *key}
-\DoxyCodeLine{68                           , \textcolor{keyword}{const} \textcolor{keywordtype}{void} *item, \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} item\_size);}
-\DoxyCodeLine{69 }
-\DoxyCodeLine{70 \textcolor{keyword}{const} \textcolor{keywordtype}{void} *}
-\DoxyCodeLine{71 hashtable\_replace(\textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self}
-\DoxyCodeLine{72                   , \textcolor{keyword}{const} \textcolor{keywordtype}{char} *key}
-\DoxyCodeLine{73                   , \textcolor{keyword}{const} \textcolor{keywordtype}{void} *item, \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} item\_size);}
-\DoxyCodeLine{74 }
-\DoxyCodeLine{75 \textcolor{keywordtype}{bool}}
-\DoxyCodeLine{76 hashtable\_replace\_if\_equal(\textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self}
-\DoxyCodeLine{77                            , \textcolor{keyword}{const} \textcolor{keywordtype}{char} *key}
-\DoxyCodeLine{78                            , \textcolor{keyword}{const} \textcolor{keywordtype}{void} *restrict old\_item}
-\DoxyCodeLine{79                            , \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} item\_old\_size}
-\DoxyCodeLine{80                            , \textcolor{keyword}{const} \textcolor{keywordtype}{void} *restrict new\_item}
-\DoxyCodeLine{81                            , \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} item\_new\_size);}
-\DoxyCodeLine{82 }
-\DoxyCodeLine{83 \textcolor{keywordtype}{size\_t}}
-\DoxyCodeLine{84 hashtable\_used\_size(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self);}
-\DoxyCodeLine{85 }
-\DoxyCodeLine{86 RET\_TYPE}
-\DoxyCodeLine{87 hashtable\_for\_each(\textcolor{keyword}{struct} \mbox{\hyperlink{structhashtable}{hashtable}} *self}
-\DoxyCodeLine{88                    , \textcolor{keywordtype}{void} (*for\_each)(\textcolor{keywordtype}{void} *item, \textcolor{keywordtype}{size\_t} *item\_size));}
-\DoxyCodeLine{89 }
-\DoxyCodeLine{90 \textcolor{preprocessor}{\#endif}}
-
-\end{DoxyCode}

+ 0 - 46
docs/latex/log_8h_source.tex

@@ -1,46 +0,0 @@
-\hypertarget{log_8h_source}{}\doxysection{log.\+h}
-\label{log_8h_source}\index{include/toolbox/log.h@{include/toolbox/log.h}}
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef TOOLBOX\_LOG\_H}}
-\DoxyCodeLine{2 \textcolor{preprocessor}{\#define TOOLBOX\_LOG\_H}}
-\DoxyCodeLine{3 }
-\DoxyCodeLine{4 \textcolor{preprocessor}{\#include "{}toolbox/ansi\_escape.h"{}}}
-\DoxyCodeLine{5 }
-\DoxyCodeLine{6 \textcolor{preprocessor}{\#include <stdio.h>}}
-\DoxyCodeLine{7 }
-\DoxyCodeLine{8 \textcolor{preprocessor}{\#ifndef LOG\_FILE\_OUT}}
-\DoxyCodeLine{9 \textcolor{preprocessor}{\#define LOG\_FILE\_OUT stdout}}
-\DoxyCodeLine{10 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{11 }
-\DoxyCodeLine{12 \textcolor{preprocessor}{\#define LOGV\_TEST(MSG, ...)                                             \(\backslash\)}}
-\DoxyCodeLine{13 \textcolor{preprocessor}{    fprintf(LOG\_FILE\_OUT                                                \(\backslash\)}}
-\DoxyCodeLine{14 \textcolor{preprocessor}{            , FG\_MAGENTA"{}"{}}SET\_BLINK"{}[TEST] (\%s:\%d) "{}MSG"{}"{}RST\_ALL"{}\(\backslash\)n"{}    \(\backslash\)}
-\DoxyCodeLine{15             , \_\_FILE\_NAME\_\_, \_\_LINE\_\_, \_\_VA\_ARGS\_\_)}
-\DoxyCodeLine{16 \textcolor{preprocessor}{\#define LOGV\_INFO(MSG, ...)                                         \(\backslash\)}}
-\DoxyCodeLine{17 \textcolor{preprocessor}{    fprintf(LOG\_FILE\_OUT, "{}[INFO] (\%s:\%d) "{}}MSG"{}"{}RST\_ALL"{}\(\backslash\)n"{}             \(\backslash\)}
-\DoxyCodeLine{18             , \_\_FILE\_NAME\_\_, \_\_LINE\_\_, \_\_VA\_ARGS\_\_)}
-\DoxyCodeLine{19 \textcolor{preprocessor}{\#define LOGV\_WARNING(MSG, ...)                                          \(\backslash\)}}
-\DoxyCodeLine{20 \textcolor{preprocessor}{    fprintf(LOG\_FILE\_OUT, FG\_YELLOW"{}[WARNING] (\%s:\%d) "{}}MSG"{}"{}RST\_ALL"{}\(\backslash\)n"{} \(\backslash\)}
-\DoxyCodeLine{21             , \_\_FILE\_NAME\_\_, \_\_LINE\_\_, \_\_VA\_ARGS\_\_)}
-\DoxyCodeLine{22 \textcolor{preprocessor}{\#define LOGV\_ERROR(MSG, ...)                                       \(\backslash\)}}
-\DoxyCodeLine{23 \textcolor{preprocessor}{    fprintf(LOG\_FILE\_OUT, FG\_RED"{}[ERROR] (\%s:\%d) "{}}MSG"{}"{}RST\_ALL"{}\(\backslash\)n"{} \(\backslash\)}
-\DoxyCodeLine{24             , \_\_FILE\_NAME\_\_, \_\_LINE\_\_, \_\_VA\_ARGS\_\_)}
-\DoxyCodeLine{25 }
-\DoxyCodeLine{26 \textcolor{preprocessor}{\#define LOG\_TEST(MSG)                                                   \(\backslash\)}}
-\DoxyCodeLine{27 \textcolor{preprocessor}{    fprintf(LOG\_FILE\_OUT                                                \(\backslash\)}}
-\DoxyCodeLine{28 \textcolor{preprocessor}{            , FG\_MAGENTA"{}"{}}SET\_BLINK"{}[TEST] (\%s:\%d) "{}MSG"{}"{}RST\_ALL"{}\(\backslash\)n"{}    \(\backslash\)}
-\DoxyCodeLine{29             , \_\_FILE\_NAME\_\_, \_\_LINE\_\_)}
-\DoxyCodeLine{30 \textcolor{preprocessor}{\#define LOG\_INFO(MSG)                                                   \(\backslash\)}}
-\DoxyCodeLine{31 \textcolor{preprocessor}{    fprintf(LOG\_FILE\_OUT, "{}[INFO] (\%s:\%d) "{}}MSG"{}"{}RST\_ALL"{}\(\backslash\)n"{}             \(\backslash\)}
-\DoxyCodeLine{32             , \_\_FILE\_NAME\_\_, \_\_LINE\_\_)}
-\DoxyCodeLine{33 \textcolor{preprocessor}{\#define LOG\_WARNING(MSG)                                                \(\backslash\)}}
-\DoxyCodeLine{34 \textcolor{preprocessor}{    fprintf(LOG\_FILE\_OUT, FG\_YELLOW"{}[WARNING] (\%s:\%d) "{}}MSG"{}"{}RST\_ALL"{}\(\backslash\)n"{} \(\backslash\)}
-\DoxyCodeLine{35             , \_\_FILE\_NAME\_\_, \_\_LINE\_\_)}
-\DoxyCodeLine{36 \textcolor{preprocessor}{\#define LOG\_ERROR(MSG)                                             \(\backslash\)}}
-\DoxyCodeLine{37 \textcolor{preprocessor}{    fprintf(LOG\_FILE\_OUT, FG\_RED"{}[ERROR] (\%s:\%d) "{}}MSG"{}"{}RST\_ALL"{}\(\backslash\)n"{} \(\backslash\)}
-\DoxyCodeLine{38             , \_\_FILE\_NAME\_\_, \_\_LINE\_\_)}
-\DoxyCodeLine{39 }
-\DoxyCodeLine{40 \textcolor{preprocessor}{\#endif}}
-
-\end{DoxyCode}

+ 0 - 448
docs/latex/longtable_doxygen.sty

@@ -1,448 +0,0 @@
-%%
-%% This is file `longtable.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% longtable.dtx  (with options: `package')
-%% 
-%% This is a generated file.
-%% 
-%% The source is maintained by the LaTeX Project team and bug
-%% reports for it can be opened at http://latex-project.org/bugs.html
-%% (but please observe conditions on bug reports sent to that address!)
-%% 
-%% Copyright 1993-2016
-%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%% 
-%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
-%% --------------------------------------------------------------------------
-%% 
-%% It may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3c
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%%    http://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%% 
-%% This file may only be distributed together with a copy of the LaTeX
-%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
-%% without such generated files.
-%% 
-%% The list of all files belonging to the LaTeX `Tools Bundle' is
-%% given in the file `manifest.txt'.
-%% 
-%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle
-\NeedsTeXFormat{LaTeX2e}[1995/06/01]
-\ProvidesPackage{longtable_doxygen}
-          [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen]
-\def\LT@err{\PackageError{longtable}}
-\def\LT@warn{\PackageWarning{longtable}}
-\def\LT@final@warn{%
-  \AtEndDocument{%
-    \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}%
-  \global\let\LT@final@warn\relax}
-\DeclareOption{errorshow}{%
-  \def\LT@warn{\PackageInfo{longtable}}}
-\DeclareOption{pausing}{%
-  \def\LT@warn#1{%
-    \LT@err{#1}{This is not really an error}}}
-\DeclareOption{set}{}
-\DeclareOption{final}{}
-\ProcessOptions
-\newskip\LTleft       \LTleft=\fill
-\newskip\LTright      \LTright=\fill
-\newskip\LTpre        \LTpre=\bigskipamount
-\newskip\LTpost       \LTpost=\bigskipamount
-\newcount\LTchunksize \LTchunksize=20
-\let\c@LTchunksize\LTchunksize
-\newdimen\LTcapwidth  \LTcapwidth=4in
-\newbox\LT@head
-\newbox\LT@firsthead
-\newbox\LT@foot
-\newbox\LT@lastfoot
-\newcount\LT@cols
-\newcount\LT@rows
-\newcounter{LT@tables}
-\newcounter{LT@chunks}[LT@tables]
-\ifx\c@table\undefined
-  \newcounter{table}
-  \def\fnum@table{\tablename~\thetable}
-\fi
-\ifx\tablename\undefined
-  \def\tablename{Table}
-\fi
-\newtoks\LT@p@ftn
-\mathchardef\LT@end@pen=30000
-\def\longtable{%
-  \par
-  \ifx\multicols\@undefined
-  \else
-     \ifnum\col@number>\@ne
-       \@twocolumntrue
-     \fi
-  \fi
-  \if@twocolumn
-    \LT@err{longtable not in 1-column mode}\@ehc
-  \fi
-  \begingroup
-  \@ifnextchar[\LT@array{\LT@array[x]}}
-\def\LT@array[#1]#2{%
-  \refstepcounter{table}\stepcounter{LT@tables}%
-  \if l#1%
-    \LTleft\z@ \LTright\fill
-  \else\if r#1%
-    \LTleft\fill \LTright\z@
-  \else\if c#1%
-    \LTleft\fill \LTright\fill
-  \fi\fi\fi
-  \let\LT@mcol\multicolumn
-  \let\LT@@tabarray\@tabarray
-  \let\LT@@hl\hline
-  \def\@tabarray{%
-    \let\hline\LT@@hl
-    \LT@@tabarray}%
-  \let\\\LT@tabularcr\let\tabularnewline\\%
-  \def\newpage{\noalign{\break}}%
-  \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
-  \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
-  \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
-  \@tempdima\ht\strutbox
-  \let\@endpbox\LT@endpbox
-  \ifx\extrarowheight\@undefined
-    \let\@acol\@tabacol
-    \let\@classz\@tabclassz \let\@classiv\@tabclassiv
-    \def\@startpbox{\vtop\LT@startpbox}%
-    \let\@@startpbox\@startpbox
-    \let\@@endpbox\@endpbox
-    \let\LT@LL@FM@cr\@tabularcr
-  \else
-    \advance\@tempdima\extrarowheight
-    \col@sep\tabcolsep
-    \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
-  \fi
-  \setbox\@arstrutbox\hbox{\vrule
-    \@height \arraystretch \@tempdima
-    \@depth \arraystretch \dp \strutbox
-    \@width \z@}%
-  \let\@sharp##\let\protect\relax
-   \begingroup
-    \@mkpream{#2}%
-    \xdef\LT@bchunk{%
-       \global\advance\c@LT@chunks\@ne
-       \global\LT@rows\z@\setbox\z@\vbox\bgroup
-       \LT@setprevdepth
-       \tabskip\LTleft \noexpand\halign to\hsize\bgroup
-      \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
-  \endgroup
-  \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
-  \LT@make@row
-  \m@th\let\par\@empty
-  \everycr{}\lineskip\z@\baselineskip\z@
-  \LT@bchunk}
-\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}}
-\def\LT@start{%
-  \let\LT@start\endgraf
-  \endgraf\penalty\z@\vskip\LTpre
-  \dimen@\pagetotal
-  \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
-  \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
-  \advance\dimen@ \ht\LT@foot
-  \dimen@ii\vfuzz
-  \vfuzz\maxdimen
-    \setbox\tw@\copy\z@
-    \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
-    \setbox\tw@\vbox{\unvbox\tw@}%
-  \vfuzz\dimen@ii
-  \advance\dimen@ \ht
-        \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
-  \advance\dimen@\dp
-        \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
-  \advance\dimen@ -\pagegoal
-  \ifdim \dimen@>\z@\vfil\break\fi
-      \global\@colroom\@colht
-  \ifvoid\LT@foot\else
-    \advance\vsize-\ht\LT@foot
-    \global\advance\@colroom-\ht\LT@foot
-    \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
-    \maxdepth\z@
-  \fi
-  \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
-  \output{\LT@output}}
-\def\endlongtable{%
-  \crcr
-  \noalign{%
-    \let\LT@entry\LT@entry@chop
-    \xdef\LT@save@row{\LT@save@row}}%
-  \LT@echunk
-  \LT@start
-  \unvbox\z@
-  \LT@get@widths
-  \if@filesw
-    {\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
-      \gdef\expandafter\noexpand
-        \csname LT@\romannumeral\c@LT@tables\endcsname
-          {\LT@save@row}}}%
-  \fi
-  \ifx\LT@save@row\LT@@save@row
-  \else
-    \LT@warn{Column \@width s have changed\MessageBreak
-             in table \thetable}%
-    \LT@final@warn
-  \fi
-  \endgraf\penalty -\LT@end@pen
-  \endgroup
-  \global\@mparbottom\z@
-  \pagegoal\vsize
-  \endgraf\penalty\z@\addvspace\LTpost
-  \ifvoid\footins\else\insert\footins{}\fi}
-\def\LT@nofcols#1&{%
-  \futurelet\@let@token\LT@n@fcols}
-\def\LT@n@fcols{%
-  \advance\LT@cols\@ne
-  \ifx\@let@token\LT@nofcols
-    \expandafter\@gobble
-  \else
-    \expandafter\LT@nofcols
-  \fi}
-\def\LT@tabularcr{%
-  \relax\iffalse{\fi\ifnum0=`}\fi
-  \@ifstar
-    {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr
-     \LT@t@bularcr}%
-    {\LT@t@bularcr}}
-\let\LT@crcr\crcr
-\let\LT@setprevdepth\relax
-\def\LT@t@bularcr{%
-  \global\advance\LT@rows\@ne
-  \ifnum\LT@rows=\LTchunksize
-    \gdef\LT@setprevdepth{%
-      \prevdepth\z@\global
-      \global\let\LT@setprevdepth\relax}%
-    \expandafter\LT@xtabularcr
-  \else
-    \ifnum0=`{}\fi
-    \expandafter\LT@LL@FM@cr
-  \fi}
-\def\LT@xtabularcr{%
-  \@ifnextchar[\LT@argtabularcr\LT@ntabularcr}
-\def\LT@ntabularcr{%
-  \ifnum0=`{}\fi
-  \LT@echunk
-  \LT@start
-  \unvbox\z@
-  \LT@get@widths
-  \LT@bchunk}
-\def\LT@argtabularcr[#1]{%
-  \ifnum0=`{}\fi
-  \ifdim #1>\z@
-    \unskip\@xargarraycr{#1}%
-  \else
-    \@yargarraycr{#1}%
-  \fi
-  \LT@echunk
-  \LT@start
-  \unvbox\z@
-  \LT@get@widths
-  \LT@bchunk}
-\def\LT@echunk{%
-  \crcr\LT@save@row\cr\egroup
-  \global\setbox\@ne\lastbox
-    \unskip
-  \egroup}
-\def\LT@entry#1#2{%
-  \ifhmode\@firstofone{&}\fi\omit
-  \ifnum#1=\c@LT@chunks
-  \else
-    \kern#2\relax
-  \fi}
-\def\LT@entry@chop#1#2{%
-  \noexpand\LT@entry
-    {\ifnum#1>\c@LT@chunks
-       1}{0pt%
-     \else
-       #1}{#2%
-     \fi}}
-\def\LT@entry@write{%
-  \noexpand\LT@entry^^J%
-  \@spaces}
-\def\LT@kill{%
-  \LT@echunk
-  \LT@get@widths
-  \expandafter\LT@rebox\LT@bchunk}
-\def\LT@rebox#1\bgroup{%
-  #1\bgroup
-  \unvbox\z@
-  \unskip
-  \setbox\z@\lastbox}
-\def\LT@blank@row{%
-  \xdef\LT@save@row{\expandafter\LT@build@blank
-    \romannumeral\number\LT@cols 001 }}
-\def\LT@build@blank#1{%
-  \if#1m%
-    \noexpand\LT@entry{1}{0pt}%
-    \expandafter\LT@build@blank
-  \fi}
-\def\LT@make@row{%
-  \global\expandafter\let\expandafter\LT@save@row
-    \csname LT@\romannumeral\c@LT@tables\endcsname
-  \ifx\LT@save@row\relax
-    \LT@blank@row
-  \else
-    {\let\LT@entry\or
-     \if!%
-         \ifcase\expandafter\expandafter\expandafter\LT@cols
-         \expandafter\@gobble\LT@save@row
-         \or
-         \else
-           \relax
-         \fi
-        !%
-     \else
-       \aftergroup\LT@blank@row
-     \fi}%
-  \fi}
-\let\setlongtables\relax
-\def\LT@get@widths{%
-  \setbox\tw@\hbox{%
-    \unhbox\@ne
-    \let\LT@old@row\LT@save@row
-    \global\let\LT@save@row\@empty
-    \count@\LT@cols
-    \loop
-      \unskip
-      \setbox\tw@\lastbox
-    \ifhbox\tw@
-      \LT@def@row
-      \advance\count@\m@ne
-    \repeat}%
-  \ifx\LT@@save@row\@undefined
-    \let\LT@@save@row\LT@save@row
-  \fi}
-\def\LT@def@row{%
-  \let\LT@entry\or
-  \edef\@tempa{%
-    \ifcase\expandafter\count@\LT@old@row
-    \else
-      {1}{0pt}%
-    \fi}%
-  \let\LT@entry\relax
-  \xdef\LT@save@row{%
-    \LT@entry
-    \expandafter\LT@max@sel\@tempa
-    \LT@save@row}}
-\def\LT@max@sel#1#2{%
-  {\ifdim#2=\wd\tw@
-     #1%
-   \else
-     \number\c@LT@chunks
-   \fi}%
-  {\the\wd\tw@}}
-\def\LT@hline{%
-  \noalign{\ifnum0=`}\fi
-    \penalty\@M
-    \futurelet\@let@token\LT@@hline}
-\def\LT@@hline{%
-  \ifx\@let@token\hline
-    \global\let\@gtempa\@gobble
-    \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
-  \else
-    \global\let\@gtempa\@empty
-    \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}%
-  \fi
-  \ifnum0=`{\fi}%
-  \multispan\LT@cols
-     \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
-  \noalign{\LT@sep}%
-  \multispan\LT@cols
-     \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
-  \noalign{\penalty\@M}%
-  \@gtempa}
-\def\LT@caption{%
-  \noalign\bgroup
-    \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n}
-\def\LT@c@ption#1[#2]#3{%
-  \LT@makecaption#1\fnum@table{#3}%
-  \def\@tempa{#2}%
-  \ifx\@tempa\@empty\else
-     {\let\\\space
-     \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
-  \fi}
-\def\LT@capti@n{%
-  \@ifstar
-    {\egroup\LT@c@ption\@gobble[]}%
-    {\egroup\@xdblarg{\LT@c@ption\@firstofone}}}
-\def\LT@makecaption#1#2#3{%
-  \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
-    \sbox\@tempboxa{#1{#2: }#3}%
-    \ifdim\wd\@tempboxa>\hsize
-      #1{#2: }#3%
-    \else
-      \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
-    \fi
-    \endgraf\vskip\baselineskip}%
-  \hss}}}
-\def\LT@output{%
-  \ifnum\outputpenalty <-\@Mi
-    \ifnum\outputpenalty > -\LT@end@pen
-      \LT@err{floats and marginpars not allowed in a longtable}\@ehc
-    \else
-      \setbox\z@\vbox{\unvbox\@cclv}%
-      \ifdim \ht\LT@lastfoot>\ht\LT@foot
-        \dimen@\pagegoal
-        \advance\dimen@-\ht\LT@lastfoot
-        \ifdim\dimen@<\ht\z@
-          \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
-          \@makecol
-          \@outputpage
-          \setbox\z@\vbox{\box\LT@head}%
-        \fi
-      \fi
-      \global\@colroom\@colht
-      \global\vsize\@colht
-      \vbox
-        {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%
-    \fi
-  \else
-    \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
-    \@makecol
-    \@outputpage
-      \global\vsize\@colroom
-    \copy\LT@head\nobreak
-  \fi}
-\def\LT@end@hd@ft#1{%
-  \LT@echunk
-  \ifx\LT@start\endgraf
-    \LT@err
-     {Longtable head or foot not at start of table}%
-     {Increase LTchunksize}%
-  \fi
-  \setbox#1\box\z@
-  \LT@get@widths
-  \LT@bchunk}
-\def\endfirsthead{\LT@end@hd@ft\LT@firsthead}
-\def\endhead{\LT@end@hd@ft\LT@head}
-\def\endfoot{\LT@end@hd@ft\LT@foot}
-\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}
-\def\LT@startpbox#1{%
-  \bgroup
-    \let\@footnotetext\LT@p@ftntext
-    \setlength\hsize{#1}%
-    \@arrayparboxrestore
-    \vrule \@height \ht\@arstrutbox \@width \z@}
-\def\LT@endpbox{%
-  \@finalstrut\@arstrutbox
-  \egroup
-  \the\LT@p@ftn
-  \global\LT@p@ftn{}%
-  \hfil}
-\def\LT@p@ftntext#1{%
-  \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}%
-  \global\LT@p@ftn\expandafter{\@tempa{#1}}}%
-
-\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen}
-\endinput
-%%
-%% End of file `longtable.sty'.

+ 0 - 221
docs/latex/refman.tex

@@ -1,221 +0,0 @@
-  % Handle batch mode
-  % to overcome problems with too many open files
-  \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}
-  % Set document class depending on configuration
-  \documentclass[twoside]{book}
-  %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
-  \usepackage{ifthen}
-  \ifx\requestedLaTeXdate\undefined
-    \usepackage{array}
-  \else
-    \usepackage{array}[=2016-10-06]
-  \fi
-  %%
-  % Packages required by doxygen
-  \usepackage{fixltx2e} % for \textsubscript
-  \usepackage{doxygen}
-  \usepackage{graphicx}
-  \usepackage[utf8]{inputenc}
-  \usepackage{makeidx}
-  \PassOptionsToPackage{warn}{textcomp}
-  \usepackage{textcomp}
-  \usepackage[nointegrals]{wasysym}
-  \usepackage{ifxetex}
-  % NLS support packages
-  % Define default fonts
-  % Font selection
-  \usepackage[T1]{fontenc}
-  % set main and monospaced font
-  \usepackage[scaled=.90]{helvet}
-\usepackage{courier}
-\renewcommand{\familydefault}{\sfdefault}
-  \usepackage{sectsty}
-  \allsectionsfont{%
-    \fontseries{bc}\selectfont%
-    \color{darkgray}%
-  }
-  \renewcommand{\DoxyLabelFont}{%
-    \fontseries{bc}\selectfont%
-    \color{darkgray}%
-  }
-  \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
-   % Arguments of doxygenemoji:
-   % 1) ':<text>:' form of the emoji, already LaTeX-escaped
-   % 2) file with the name of the emoji without the .png extension
-   % in case image exist use this otherwise use the ':<text>:' form
-   \newcommand{\doxygenemoji}[2]{%
-     \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
-   }
-  % Page & text layout
-  \usepackage{geometry}
-  \geometry{%
-    a4paper,%
-    top=2.5cm,%
-    bottom=2.5cm,%
-    left=2.5cm,%
-    right=2.5cm%
-  }
-  % Allow a bit of overflow to go unnoticed by other means
-  \tolerance=750
-  \hfuzz=15pt
-  \hbadness=750
-  \setlength{\emergencystretch}{15pt}
-  \setlength{\parindent}{0cm}
-  \newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
-  \newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
-  \doxynormalparskip
-  % Redefine paragraph/subparagraph environments, using sectsty fonts
-  \makeatletter
-  \renewcommand{\paragraph}{%
-    \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
-      \normalfont\normalsize\bfseries\SS@parafont%
-    }%
-  }
-  \renewcommand{\subparagraph}{%
-    \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
-      \normalfont\normalsize\bfseries\SS@subparafont%
-    }%
-  }
-  \makeatother
-  \makeatletter
-  \newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
-  \makeatother
-  % Headers & footers
-  \usepackage{fancyhdr}
-  \pagestyle{fancyplain}
-  \renewcommand{\footrulewidth}{0.4pt}
-  \fancypagestyle{fancyplain}{
-    \fancyhf{}
-    \fancyhead[LE, RO]{\bfseries\thepage}
-    \fancyhead[LO]{\bfseries\rightmark}
-    \fancyhead[RE]{\bfseries\leftmark}
-    \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
-  }
-  \fancypagestyle{plain}{
-    \fancyhf{}
-    \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
-    \renewcommand{\headrulewidth}{0pt}
-  }
-  \pagestyle{fancyplain}
-  \renewcommand{\chaptermark}[1]{%
-    \markboth{#1}{}%
-  }
-  \renewcommand{\sectionmark}[1]{%
-    \markright{\thesection\ #1}%
-  }
-  % ToC, LoF, LoT, bibliography, and index
-  % Indices & bibliography
-  \usepackage{natbib}
-  \usepackage[titles]{tocloft}
-  \setcounter{tocdepth}{3}
-  \setcounter{secnumdepth}{5}
-  % creating indexes
-  \makeindex
-  \usepackage{newunicodechar}
-  \newunicodechar{⁻}{${}^{-}$}% Superscript minus
-  \newunicodechar{²}{${}^{2}$}% Superscript two
-  \newunicodechar{³}{${}^{3}$}% Superscript three
-  % Hyperlinks
-    % Hyperlinks (required, but should be loaded last)
-    \ifpdf
-      \usepackage[pdftex,pagebackref=true]{hyperref}
-    \else
-      \ifxetex
-        \usepackage[pagebackref=true]{hyperref}
-      \else
-        \usepackage[ps2pdf,pagebackref=true]{hyperref}
-      \fi
-    \fi
-    \hypersetup{%
-      colorlinks=true,%
-      linkcolor=blue,%
-      citecolor=blue,%
-      unicode,%
-      pdftitle=Tool\+Box Library,%
-      pdfsubject=An Library containing function and class to make developing in C faster%
-    }
-  % Custom commands used by the header
-  % Custom commands
-  \newcommand{\clearemptydoublepage}{%
-    \newpage{\pagestyle{empty}\cleardoublepage}%
-  }
-  % caption style definition
-  \usepackage{caption}
-  \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
-  % in page table of contents
-  \usepackage{etoc}
-  \etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
-  % prevent numbers overlap the titles in toc
-  \renewcommand{\numberline}[1]{#1~}
-% End of preamble, now comes the document contents
-%===== C O N T E N T S =====
-\begin{document}
-  \raggedbottom
-  % Titlepage & ToC
-    % To avoid duplicate page anchors due to reuse of same numbers for
-    % the index (be it as roman numbers)
-    \hypersetup{pageanchor=false,
-                bookmarksnumbered=true,
-                pdfencoding=unicode
-               }
-  \pagenumbering{alph}
-  \begin{titlepage}
-  \vspace*{7cm}
-  \begin{center}%
-  {\Large Tool\+Box Library}\\
-  \vspace*{1cm}
-  {\large Generated by Doxygen 1.9.3}\\
-  \end{center}
-  \end{titlepage}
-  \clearemptydoublepage
-  \pagenumbering{roman}
-  \tableofcontents
-  \clearemptydoublepage
-  \pagenumbering{arabic}
-  % re-enable anchors again
-  \hypersetup{pageanchor=true}
-%--- Begin generated contents ---
-\chapter{Data Structure Index}
-\input{annotated}
-\chapter{File Index}
-\input{files}
-\chapter{Data Structure Documentation}
-\input{structargs}
-\input{structargs__op}
-\input{structarray}
-\input{structcstr}
-\input{structcstr__fixed}
-\input{structhashtable}
-\input{structhashtable__item}
-\input{structvec2__uint16}
-\input{structvec2__uint8}
-\input{structvptr}
-\input{structwindow}
-\chapter{File Documentation}
-\input{ansi__escape_8h_source}
-\input{args_8h_source}
-\input{array_8h_source}
-\input{cstr_8h_source}
-\input{cstr__fixed_8h_source}
-\input{cstring_8h_source}
-\input{hash_8h_source}
-\input{hashtable_8h_source}
-\input{log_8h_source}
-\input{random_8h_source}
-\input{return__codes_8h_source}
-\input{template_8h_source}
-\input{tui_8h_source}
-\input{vec2__uint16_8h_source}
-\input{vec2__uint8_8h_source}
-\input{void__pointer_8h_source}
-\input{vptr_8h_source}
-%--- End generated contents ---
-% Index
-  \backmatter
-  \newpage
-  \phantomsection
-  \clearemptydoublepage
-  \addcontentsline{toc}{chapter}{\indexname}
-  \printindex
-% Required for some languages (in combination with latexdocumentpre from the header)
-\end{document}

+ 0 - 23
docs/latex/return__codes_8h_source.tex

@@ -1,23 +0,0 @@
-\hypertarget{return__codes_8h_source}{}\doxysection{return\+\_\+codes.\+h}
-\label{return__codes_8h_source}\index{include/toolbox/return\_codes.h@{include/toolbox/return\_codes.h}}
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef TOOLBOX\_RETURN\_VALUES\_H}}
-\DoxyCodeLine{2 \textcolor{preprocessor}{\#define TOOLBOX\_RETURN\_VALUES\_H}}
-\DoxyCodeLine{3 }
-\DoxyCodeLine{4 \textcolor{preprocessor}{\#include <stdint.h>}}
-\DoxyCodeLine{5 }
-\DoxyCodeLine{6 \textcolor{preprocessor}{\#define RET\_TYPE uint8\_t}}
-\DoxyCodeLine{7 }
-\DoxyCodeLine{8 \textcolor{preprocessor}{\#define RET\_OK (0L)}}
-\DoxyCodeLine{9 \textcolor{preprocessor}{\#define RET\_ERR\_VALUE\_NULL (1L)}}
-\DoxyCodeLine{10 \textcolor{preprocessor}{\#define RET\_ERR\_VALUE\_BIGGER\_THAN\_SIZE (2L)}}
-\DoxyCodeLine{11 \textcolor{preprocessor}{\#define RET\_ERR\_FAILED\_MALLOC (3L)}}
-\DoxyCodeLine{12 \textcolor{preprocessor}{\#define RET\_ERR\_ITEM\_DOES\_NOT\_EXIST (4L)}}
-\DoxyCodeLine{13 \textcolor{preprocessor}{\#define RET\_ERR\_ITEM\_ALREADY\_EXIST (5L)}}
-\DoxyCodeLine{14 }
-\DoxyCodeLine{15 \textcolor{keyword}{extern} RET\_TYPE toolbox\_errno;}
-\DoxyCodeLine{16 }
-\DoxyCodeLine{17 \textcolor{preprocessor}{\#endif}}
-
-\end{DoxyCode}

+ 0 - 31
docs/latex/structargs.tex

@@ -1,31 +0,0 @@
-\hypertarget{structargs}{}\doxysection{args Struct Reference}
-\label{structargs}\index{args@{args}}
-\doxysubsection*{Data Fields}
-\begin{DoxyCompactItemize}
-\item 
-\mbox{\Hypertarget{structargs_ac8113782401c377f5a0f631ef8e346ca}\label{structargs_ac8113782401c377f5a0f631ef8e346ca}} 
-const int {\bfseries argc}
-\item 
-\mbox{\Hypertarget{structargs_a3b1a49f49983a326bd2ab028ec889f6a}\label{structargs_a3b1a49f49983a326bd2ab028ec889f6a}} 
-char $\ast$$\ast$ {\bfseries argv}
-\item 
-\mbox{\Hypertarget{structargs_aeef07c45a29612d35cbd867347bc0b53}\label{structargs_aeef07c45a29612d35cbd867347bc0b53}} 
-size\+\_\+t {\bfseries mand\+\_\+num}
-\item 
-\mbox{\Hypertarget{structargs_a8f84801092554d4f2d9ebf7bd47b0a64}\label{structargs_a8f84801092554d4f2d9ebf7bd47b0a64}} 
-char {\bfseries prepender}
-\item 
-\mbox{\Hypertarget{structargs_a8b04a760524be50ceefa2e56c2cf8782}\label{structargs_a8b04a760524be50ceefa2e56c2cf8782}} 
-\begin{tabbing}
-xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
-struct \{\\
-\>size\_t {\bfseries size}\\
-\>struct \mbox{\hyperlink{structargs__op}{args\_op}} {\bfseries data} \mbox{[}MAX\_NUM\_OF\_OPTIONS\mbox{]}\\
-\} {\bfseries ops}\\
-
-\end{tabbing}\end{DoxyCompactItemize}
-
-
-The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
-\item 
-include/toolbox/args.\+h\end{DoxyCompactItemize}

+ 0 - 16
docs/latex/structcstr.tex

@@ -1,16 +0,0 @@
-\hypertarget{structcstr}{}\doxysection{cstr Struct Reference}
-\label{structcstr}\index{cstr@{cstr}}
-\doxysubsection*{Data Fields}
-\begin{DoxyCompactItemize}
-\item 
-\mbox{\Hypertarget{structcstr_a77f6e92f1103e6f035ef7e8c0bd25f01}\label{structcstr_a77f6e92f1103e6f035ef7e8c0bd25f01}} 
-size\+\_\+t {\bfseries size}
-\item 
-\mbox{\Hypertarget{structcstr_a5594c84f07d7e5836b19fae327d73b4e}\label{structcstr_a5594c84f07d7e5836b19fae327d73b4e}} 
-char $\ast$ {\bfseries data}
-\end{DoxyCompactItemize}
-
-
-The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
-\item 
-include/toolbox/cstr.\+h\end{DoxyCompactItemize}

+ 0 - 16
docs/latex/structcstr__fixed.tex

@@ -1,16 +0,0 @@
-\hypertarget{structcstr__fixed}{}\doxysection{cstr\+\_\+fixed Struct Reference}
-\label{structcstr__fixed}\index{cstr\_fixed@{cstr\_fixed}}
-\doxysubsection*{Data Fields}
-\begin{DoxyCompactItemize}
-\item 
-\mbox{\Hypertarget{structcstr__fixed_a37a67eaa81729157630eb7f34a63e443}\label{structcstr__fixed_a37a67eaa81729157630eb7f34a63e443}} 
-size\+\_\+t {\bfseries size}
-\item 
-\mbox{\Hypertarget{structcstr__fixed_a248ed4739a7e91a1aad925ee5cdb8a54}\label{structcstr__fixed_a248ed4739a7e91a1aad925ee5cdb8a54}} 
-char {\bfseries data} \mbox{[}TOOLBOX\+\_\+\+CSTR\+\_\+\+FIXED\+\_\+\+MAX\+\_\+\+SIZE\mbox{]}
-\end{DoxyCompactItemize}
-
-
-The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
-\item 
-include/toolbox/cstr\+\_\+fixed.\+h\end{DoxyCompactItemize}

+ 0 - 22
docs/latex/structhashtable.tex

@@ -1,22 +0,0 @@
-\hypertarget{structhashtable}{}\doxysection{hashtable Struct Reference}
-\label{structhashtable}\index{hashtable@{hashtable}}
-\doxysubsection*{Data Fields}
-\begin{DoxyCompactItemize}
-\item 
-\mbox{\Hypertarget{structhashtable_a3e9c5aee2fc0ab26d8c989ce8744d7e2}\label{structhashtable_a3e9c5aee2fc0ab26d8c989ce8744d7e2}} 
-\begin{tabbing}
-xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
-struct \{\\
-\>size\_t {\bfseries size}\\
-\>size\_t {\bfseries data} \mbox{[}HASHTABLE\_SIZE\mbox{]}\\
-\} {\bfseries used\_keys}\\
-
-\end{tabbing}\item 
-\mbox{\Hypertarget{structhashtable_a009725a811574ec67d4a96466ee09b06}\label{structhashtable_a009725a811574ec67d4a96466ee09b06}} 
-struct \mbox{\hyperlink{structhashtable__item}{hashtable\+\_\+item}} {\bfseries data} \mbox{[}HASHTABLE\+\_\+\+SIZE\mbox{]}
-\end{DoxyCompactItemize}
-
-
-The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
-\item 
-src/toolbox/hashtable.\+c\end{DoxyCompactItemize}

+ 0 - 25
docs/latex/structhashtable__item.tex

@@ -1,25 +0,0 @@
-\hypertarget{structhashtable__item}{}\doxysection{hashtable\+\_\+item Struct Reference}
-\label{structhashtable__item}\index{hashtable\_item@{hashtable\_item}}
-\doxysubsection*{Data Fields}
-\begin{DoxyCompactItemize}
-\item 
-\mbox{\Hypertarget{structhashtable__item_a2c2cda3cb4aebeec040c60141ba8da0f}\label{structhashtable__item_a2c2cda3cb4aebeec040c60141ba8da0f}} 
-\begin{tabbing}
-xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
-struct \{\\
-\>size\_t {\bfseries hash}\\
-\>uint64\_t {\bfseries true\_hash}\\
-\} {\bfseries key}\\
-
-\end{tabbing}\item 
-\mbox{\Hypertarget{structhashtable__item_a90d93cd954008e69278da8779a18ab0d}\label{structhashtable__item_a90d93cd954008e69278da8779a18ab0d}} 
-struct \mbox{\hyperlink{structvptr}{vptr}} {\bfseries item}
-\item 
-\mbox{\Hypertarget{structhashtable__item_a2ad1fbf00ef7b5339d734dc879da4049}\label{structhashtable__item_a2ad1fbf00ef7b5339d734dc879da4049}} 
-struct \mbox{\hyperlink{structhashtable__item}{hashtable\+\_\+item}} $\ast$ {\bfseries p\+\_\+next}
-\end{DoxyCompactItemize}
-
-
-The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
-\item 
-src/toolbox/hashtable.\+c\end{DoxyCompactItemize}

+ 0 - 23
docs/latex/structvec2__uint16.tex

@@ -1,23 +0,0 @@
-\hypertarget{structvec2__uint16}{}\doxysection{vec2\+\_\+uint16 Struct Reference}
-\label{structvec2__uint16}\index{vec2\_uint16@{vec2\_uint16}}
-\doxysubsection*{Data Fields}
-\begin{DoxyCompactItemize}
-\item 
-\mbox{\Hypertarget{structvec2__uint16_a58bb02338aebf7798ed13083eedb64b7}\label{structvec2__uint16_a58bb02338aebf7798ed13083eedb64b7}} 
-\begin{tabbing}
-xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
-union \{\\
-\mbox{\Hypertarget{unionvec2__uint16_1_1_0d9_a531ff170dd49606c90ba2e44c956bbea}\label{unionvec2__uint16_1_1_0d9_a531ff170dd49606c90ba2e44c956bbea}} 
-\>struct \{\\
-\>\>uint16\_t {\bfseries x}\\
-\>\>uint16\_t {\bfseries y}\\
-\>\} \\
-\>uint16\_t {\bfseries data} \mbox{[}2\mbox{]}\\
-\}; \\
-
-\end{tabbing}\end{DoxyCompactItemize}
-
-
-The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
-\item 
-include/toolbox/vec2/vec2\+\_\+uint16.\+h\end{DoxyCompactItemize}

+ 0 - 23
docs/latex/structvec2__uint8.tex

@@ -1,23 +0,0 @@
-\hypertarget{structvec2__uint8}{}\doxysection{vec2\+\_\+uint8 Struct Reference}
-\label{structvec2__uint8}\index{vec2\_uint8@{vec2\_uint8}}
-\doxysubsection*{Data Fields}
-\begin{DoxyCompactItemize}
-\item 
-\mbox{\Hypertarget{structvec2__uint8_a92aca6e6c698ff149c1fe56f92c50d95}\label{structvec2__uint8_a92aca6e6c698ff149c1fe56f92c50d95}} 
-\begin{tabbing}
-xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
-union \{\\
-\mbox{\Hypertarget{unionvec2__uint8_1_1_0d13_a6d99c1ecd603f2915487695127fb4286}\label{unionvec2__uint8_1_1_0d13_a6d99c1ecd603f2915487695127fb4286}} 
-\>struct \{\\
-\>\>uint8\_t {\bfseries x}\\
-\>\>uint8\_t {\bfseries y}\\
-\>\} \\
-\>uint8\_t {\bfseries data} \mbox{[}2\mbox{]}\\
-\}; \\
-
-\end{tabbing}\end{DoxyCompactItemize}
-
-
-The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
-\item 
-include/toolbox/vec2/vec2\+\_\+uint8.\+h\end{DoxyCompactItemize}

+ 0 - 16
docs/latex/structvptr.tex

@@ -1,16 +0,0 @@
-\hypertarget{structvptr}{}\doxysection{vptr Struct Reference}
-\label{structvptr}\index{vptr@{vptr}}
-\doxysubsection*{Data Fields}
-\begin{DoxyCompactItemize}
-\item 
-\mbox{\Hypertarget{structvptr_ac9744cece908b06555076f90b3edf7b4}\label{structvptr_ac9744cece908b06555076f90b3edf7b4}} 
-size\+\_\+t {\bfseries size}
-\item 
-\mbox{\Hypertarget{structvptr_a56cc8aa3cc6da8a3e234a2f14bbe3233}\label{structvptr_a56cc8aa3cc6da8a3e234a2f14bbe3233}} 
-void $\ast$ {\bfseries data}
-\end{DoxyCompactItemize}
-
-
-The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
-\item 
-include/toolbox/vptr.\+h\end{DoxyCompactItemize}

+ 0 - 23
docs/latex/structwindow.tex

@@ -1,23 +0,0 @@
-\hypertarget{structwindow}{}\doxysection{window Struct Reference}
-\label{structwindow}\index{window@{window}}
-\doxysubsection*{Data Fields}
-\begin{DoxyCompactItemize}
-\item 
-\mbox{\Hypertarget{structwindow_ad10ee0838c981963b07fabc8abdc972b}\label{structwindow_ad10ee0838c981963b07fabc8abdc972b}} 
-\begin{tabbing}
-xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
-union \{\\
-\mbox{\Hypertarget{unionwindow_1_1_0d2_a8fb7917ee0845737089f8a880b861c63}\label{unionwindow_1_1_0d2_a8fb7917ee0845737089f8a880b861c63}} 
-\>struct \{\\
-\>\>uint16\_t {\bfseries width}\\
-\>\>uint16\_t {\bfseries height}\\
-\>\} \\
-\>struct \mbox{\hyperlink{structvec2__uint16}{vec2\_uint16}} {\bfseries size}\\
-\}; \\
-
-\end{tabbing}\end{DoxyCompactItemize}
-
-
-The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
-\item 
-src/toolbox/tui.\+c\end{DoxyCompactItemize}

+ 0 - 2557
docs/latex/tabu_doxygen.sty

@@ -1,2557 +0,0 @@
-%%
-%% This is file `tabu.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% tabu.dtx  (with options: `package')
-%% 
-%% This is a generated file.
-%% Copyright (FC) 2010-2011 - lppl
-%% 
-%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars
-%% 
-%% **********************************************************************************************
-%% \begin{tabu}               { preamble } => default target: \linewidth or \linegoal
-%% \begin{tabu} to     <dimen>{ preamble } => target specified
-%% \begin{tabu} spread <dimen>{ preamble } => target relative to the ``natural width''
-%% 
-%%  tabu works in text and in math modes.
-%% 
-%%  X columns: automatic width adjustment + horizontal and vertical alignment
-%%  \begin{tabu}   { X[4c] X[1c] X[-2ml]  }
-%% 
-%%  Horizontal lines and / or leaders:
-%%         \hline\hline                          => double horizontal line
-%%         \firsthline\hline                     => for nested tabulars
-%%         \lasthline\hline                      => for nested tabulars
-%%         \tabucline[line spec]{column-column}  => ``funny'' lines (dash/leader)
-%%  Automatic lines / leaders :
-%%         \everyrow{\hline\hline}
-%% 
-%%  Vertical lines and / or leaders:
-%%  \begin{tabu}   { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] }
-%%  \begin{tabu}   { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] }
-%% 
-%%  Fixed vertical spacing adjustment:
-%%         \extrarowheight=<dimen>     \extrarowdepth=<dimen>
-%%    or:     \extrarowsep=<dimen>               => may be prefixed by \global
-%% 
-%%  Dynamic vertical spacing adjustment:
-%%       \abovetabulinesep=<dimen>  \belowtabulinesep=<dimen>
-%%   or:      \tabulinesep=<dimen>               => may be prefixed by \global
-%% 
-%%  delarray.sty shortcuts: in math and text modes
-%%  \begin{tabu} ....        \({ preamble }\)
-%% 
-%%  Algorithms reports:
-%%            \tracingtabu=1             \tracingtabu=2
-%% 
-%% **********************************************************************************************
-%% 
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either
-%% version 1.3 of this license or (at your option) any later
-%% version. The latest version of this license is in
-%%    http://www.latex-project.org/lppl.txt
-%% 
-%% This work consists of the main source file tabu.dtx
-%% and the derived files
-%%    tabu.sty, tabu.pdf, tabu.ins
-%% 
-%% tabu : Flexible LaTeX tabulars
-%% lppl copyright 2010-2011 by FC <florent.chervet@free.fr>
-%% 
-
-\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen]
-\RequirePackage{array}[2008/09/09]
-\RequirePackage{varwidth}[2009/03/30]
-\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined}
-\let\tabu@AtEnd\@empty
-\def\TMP@EnsureCode#1={%
-    \edef\tabu@AtEnd{\tabu@AtEnd
-                     \catcode#1 \the\catcode#1}%
-    \catcode#1=%
-}% \TMP@EnsureCode
-\TMP@EnsureCode 33 = 12 % !
-\TMP@EnsureCode 58 = 12 % : (for siunitx)
-\TMP@EnsureCode124 = 12 % |
-\TMP@EnsureCode 36 =  3 % $ = math shift
-\TMP@EnsureCode 38 =  4 % & = tab alignment character
-\TMP@EnsureCode 32 = 10 % space
-\TMP@EnsureCode 94 =  7 % ^
-\TMP@EnsureCode 95 =  8 % _
-%% Constants --------------------------------------------------------
-\newcount \c@taburow        \def\thetaburow {\number\c@taburow}
-\newcount \tabu@nbcols
-\newcount \tabu@cnt
-\newcount \tabu@Xcol
-\let\tabu@start \@tempcnta
-\let\tabu@stop  \@tempcntb
-\newcount \tabu@alloc  \tabu@alloc=\m@ne
-\newcount \tabu@nested
-\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc}
-\newdimen \tabu@target
-\newdimen \tabu@spreadtarget
-\newdimen \tabu@naturalX
-\newdimen \tabucolX
-\let\tabu@DELTA \@tempdimc
-\let\tabu@thick \@tempdima
-\let\tabu@on    \@tempdimb
-\let\tabu@off   \@tempdimc
-\newdimen \tabu@Xsum
-\newdimen \extrarowdepth
-\newdimen \abovetabulinesep
-\newdimen \belowtabulinesep
-\newdimen \tabustrutrule      \tabustrutrule \z@
-\newtoks \tabu@thebody
-\newtoks \tabu@footnotes
-\newsavebox \tabu@box
-\newsavebox \tabu@arstrutbox
-\newsavebox \tabu@hleads
-\newsavebox \tabu@vleads
-\newif \iftabu@colortbl
-\newif \iftabu@siunitx
-\newif \iftabu@measuring
-\newif \iftabu@spread
-\newif \iftabu@negcoef
-\newif \iftabu@everyrow
-\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue}
-\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse}
-\newif \iftabu@long
-\newif \iftabuscantokens
-\def\tabu@rescan {\tabu@verbatim \scantokens  }
-%% Utilities (for internal usage) -----------------------------------
-\def\tabu@gobblespace #1  {#1}
-\def\tabu@gobbletoken #1#2{#1}
-\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex}
-\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble
-                  \else\ifx \@sptoken\@let@token
-                    \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX
-                  \fi\fi
-}% \tabu@gobblex
-\def\tabu@X{^^J}
-{\obeyspaces
-\global\let\tabu@spxiii= % saves an active space (for \ifx)
-\gdef\tabu@@spxiii{ }}
-\def\tabu@ifenvir {% only for \multicolumn
-    \expandafter\tabu@if@nvir\csname\@currenvir\endcsname
-}% \tabu@ifenvir
-\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else
-                              \ifx\longtabu#1first\else
-                              second\fi\fi oftwo\endcsname
-}% \tabu@ifenvir
-\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi}
-{\catcode`\&=3
-\gdef\tabu@strtrim  #1{% #1 = control sequence to trim
-    \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi
-            \let\tabu@c@l@r \@empty       \let#1\@empty
-    \else   \expandafter  \tabu@trimspaces  #1&#1\@nnil
-    \fi
-}% \tabu@strtrim
-\gdef\tabu@trimspaces #1&#2\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& &#2}%
-\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&}
-\gdef\tabu@lastspace #1&#2&#3{\def #3{#1}%
-    \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi
-    \tabu@trimspaces #1&#3\@nnil}
-}% \catcode
-\def\tabu@sanitizearg #1#2{{%
-    \csname \ifcsname if@safe@actives\endcsname         % <babel>
-                      @safe@activestrue\else
-                      relax\fi       \endcsname
-    \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2%
-    \expandafter}\expandafter\def\expandafter#2\expandafter{#2}%
-}% \tabu@sanitizearg
-\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}%
-    \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!!
-}% \tabu@textbar
-\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi}
-\def\tabu@everyrow@egroup{%
-    \iftabu@everyrow \expandafter \endgroup \the\toks@
-    \else            \ifnum0=`{\fi}%
-    \fi
-}% \tabu@everyrow@egroup
-\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule
-    height \arraystretch \dimexpr\ht\strutbox+\extrarowheight
-    depth  \arraystretch \dimexpr\dp\strutbox+\extrarowdepth
-    width  \z@}%
-}% \tabu@arstrut
-\def\tabu@rearstrut {%
-    \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax
-    \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth  \relax
-    \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima
-            \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi
-        \tabu@mkarstrut
-    \fi
-}% \tabu@rearstrut
-\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi}
-\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox
-    \hbox to\z@{\hbox to\z@{\hss
-    {\tabu@DBG{cyan}\vrule
-    height \arraystretch \dimexpr\ht\strutbox+\extrarowheight
-    depth  \z@
-    width  \tabustrutrule}\kern-\tabustrutrule
-    {\tabu@DBG{pink}\vrule
-    height \z@
-    depth  \arraystretch \dimexpr\dp\strutbox+\extrarowdepth
-    width \tabustrutrule}}}%
-}% \tabu@DBG@arstrut
-\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@
-                                                              \@nextchar}}%
-\def\tabu@savedecl{\ifcat$\d@llarend\else
-       \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode
-}% \tabu@savedecl
-\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@}
-\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k }
-\let\tabu@trialh@@k \@empty
-\def\tabu@nowrite #1#{{\afterassignment}\toks@}
-\let\tabu@write\write
-\let\tabu@immediate\immediate
-\def\tabu@WRITE{\begingroup
-   \def\immediate\write{\aftergroup\endgroup
-                  \tabu@immediate\tabu@write}%
-}% \tabu@WRITE
-\expandafter\def\expandafter\tabu@GenericError\expandafter{%
-                      \expandafter\tabu@WRITE\GenericError}
-\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}}
-\def\tabu@noxfootnote [#1]{\@gobble}
-\def\tabu@nocolor #1#{\@gobble}
-\newcommand*\tabu@norowcolor[2][]{}
-\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}%
-                          \futurelet\@let@token \tabu@m@ybesiunitx}
-\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {%
-    \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi
-    \tabu@temp}% \tabu@m@ybesiunitx
-}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname
-\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}%
-%% Fixed vertical spacing adjustment: \extrarowsep ------------------
-\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}%
-    \iftabu@everyrow    \aftergroup\tabu@Gextra
-    \else               \aftergroup\tabu@n@Gextra
-    \fi
-    \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra
-}% \extrarowsep
-\def\tabu@extra {\@ifnextchar_%
-    {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}
-    {\ifx ^\@let@token \def\tabu@temp{%
-            \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}%
-    \else   \let\tabu@temp \@empty
-            \afterassignment \tabu@setextrasep \extrarowdepth
-    \fi \tabu@temp}%
-}% \tabu@extra
-\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2}
-\def\tabu@extr@ #1#2{\@ifnextchar^%
-    {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}
-    {\ifx _\@let@token \def\tabu@temp{%
-            \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}%
-    \else   \let\tabu@temp \@empty
-            \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth
-    \fi \tabu@temp}%
-}% \tabu@extr@
-\def\tabu@setextrasep {\extrarowheight=\extrarowdepth
-    \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth
-}% \tabu@setextrasep
-\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi}
-\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi}
-\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra}
-\let\tabu@C@extra \z@
-\let\tabu@G@extra \@empty
-%% Dynamic vertical spacing adjustment: \tabulinesep ----------------
-\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}%
-    \iftabu@everyrow    \aftergroup\tabu@Glinesep
-    \else               \aftergroup\tabu@n@Glinesep
-    \fi
-    \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep
-}% \tabulinesep
-\def\tabu@linesep {\@ifnextchar_%
-    {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}
-    {\ifx ^\@let@token \def\tabu@temp{%
-            \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}%
-     \else  \let\tabu@temp \@empty
-            \afterassignment \tabu@setlinesep \abovetabulinesep
-     \fi \tabu@temp}%
-}% \tabu@linesep
-\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2}
-\def\tabu@sets@p #1#2{\@ifnextchar^%
-    {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}
-    {\ifx _\@let@token \def\tabu@temp{%
-            \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}%
-    \else   \let\tabu@temp \@empty
-            \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep
-    \fi \tabu@temp}%
-}% \tabu@sets@p
-\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep
-    \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep
-}% \tabu@setlinesep
-\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi}
-\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi}
-\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep}
-\let\tabu@C@linesep \z@
-\let\tabu@G@linesep \@empty
-%% \global\extrarowsep  and  \global\tabulinesep  -------------------
-\def\tabu@Gsave #1#2#3#4{\xdef#1{#1%
-    \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}%
-}% \tabu@Gsave
-\def\tabu@Grestore#1#2{%
-    \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax
-    \ifcat$\the\toks\currentgrouplevel$\else
-        \global\let#1\@empty \global\let#2\z@
-        \the\toks\currentgrouplevel
-    \fi
-}% \tabu@Grestore
-%% Setting code for every row ---------------------------------------
-\newcommand*\everyrow{\tabu@everyrow@bgroup
-                      \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop
-}% \everyrow
-\def\tabu@evrstartstop {\@ifnextchar^%
-    {\afterassignment \tabu@evrstartstop \tabu@stop=}%
-    {\ifx ^\@let@token
-            \afterassignment\tabu@evrstartstop \tabu@start=%
-     \else  \afterassignment\tabu@everyr@w     \toks@
-     \fi}%
-}% \tabu@evrstartstop
-\def\tabu@everyr@w {%
-    \xdef\tabu@everyrow{%
-        \noexpand\tabu@everyrowfalse
-        \let\noalign \relax
-        \noexpand\tabu@rowfontreset
-        \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors
-        \let\noexpand\tabu@docline \noexpand\tabu@docline@evr
-        \the\toks@
-        \noexpand\tabu@evrh@@k
-        \noexpand\tabu@rearstrut
-        \global\advance\c@taburow \@ne}%
-    \iftabu@everyrow \toks@\expandafter
-        {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}%
-    \else \xdef\tabu@evr@G{\the\toks@}%
-    \fi
-    \tabu@everyrow@egroup
-}% \tabu@everyr@w
-\def\tabu@evr {\def\tabu@evrh@@k}         % for internal use only
-\tabu@evr{}
-%% line style and leaders -------------------------------------------
-\newcommand*\newtabulinestyle [1]{%
-    {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}%
-}% \newtabulinestyle
-\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}%
-    \tabu@sanitizearg {#1}\@tempa
-    \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi
-    \global\expandafter\let
-        \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi
-}% \tabu@newlinestyle
-\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}%
-    \iftabu@everyrow
-        \toks@\expandafter{\expandafter \def \expandafter
-                    \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}%
-        \gdef\tabu@ls@{\tabu@ls@L}%
-    \else
-        \global\let\tabu@ls@G \tabu@thestyle
-        \gdef\tabu@ls@{\tabu@ls@G}%
-    \fi
-    \tabu@everyrow@egroup
-}% \tabulinestyle
-\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor}
-\def\tabu@rulecolor #1{\toks@{}%
-    \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1%
-                                                    \tabu@temp
-                                                 \tabu@rulearc
-}% \tabu@rulecolor
-\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp
-    \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}%
-    \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}%
-    \fi
-    \tabu@temp
-}% \tabu@ruledrsc@
-\def\tabu@ruledrsc@   #1#{\tabu@rule@drsc@ {#1}}
-\def\tabu@rule@drsc@ #1#2{%
-    \iftabu@everyrow
-        \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}%
-        \else        \toks@{\def\CT@drsc@{\color #1{#2}}}%
-        \fi
-    \else
-        \ifx \\#1#2\\\global\let\CT@drsc@ \relax
-        \else        \gdef\CT@drsc@{\color #1{#2}}%
-        \fi
-    \fi
-    \tabu@rulearc
-}% \tabu@rule@drsc@
-\def\tabu@rulearc    #1#{\tabu@rule@arc@ {#1}}
-\def\tabu@rule@arc@ #1#2{%
-    \iftabu@everyrow
-        \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}%
-        \else        \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}%
-        \fi
-        \toks@\expandafter{\the\toks@
-            \let\tabu@arc@L  \CT@arc@
-            \let\tabu@drsc@L \CT@drsc@
-            \ignorespaces}%
-    \else
-        \ifx \\#1#2\\\gdef\CT@arc@{}%
-        \else        \gdef\CT@arc@{\color #1{#2}}%
-        \fi
-        \global\let\tabu@arc@G  \CT@arc@
-        \global\let\tabu@drsc@G \CT@drsc@
-    \fi
-    \tabu@everyrow@egroup
-}% \tabu@rule@arc@
-\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1}
-\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}}
-\def\tabu@rowc@lors #1#2#3{%
-    \toks@{}\@defaultunits \count@      =\number0#2\relax \@nnil
-            \@defaultunits \tabu@start  =\number0#1\relax \@nnil
-    \ifnum \count@<\tw@ \count@=\tw@ \fi
-    \advance\tabu@start \m@ne
-    \ifnum \tabu@start<\z@ \tabu@start \z@ \fi
-    \tabu@rowcolorseries #3\in@..\in@ \@nnil
-}% \tabu@rowcolors
-\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {%
-    \ifx \in@#1\relax
-        \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}%
-        \else   \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@
-        \fi
-    \else
-        \ifx \\#2\\\tabu@rowcolorserieserror \fi
-        \tabu@sanitizearg{#1}\tabu@temp
-        \tabu@sanitizearg{#2}\@tempa
-        \advance\count@ \m@ne
-    \iftabu@everyrow
-        \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{%
-            \ifnum ##2=\c@taburow
-                \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi
-            \ifnum \c@taburow<##2 \else
-                \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@
-                    \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi
-                \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
-                \rowcolor{tabu@rc@\the\tabu@nested}\fi}%
-        }\edef\x{\noexpand\tabu@rc@           {\the\count@}
-                                          {\the\tabu@start}
-                                               {\tabu@temp}
-                                                  {\@tempa}%
-                }\x
-        \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}%
-        \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}%
-    \else   % inside \noalign
-        \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}%
-        \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}%
-        \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
-        \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}%
-        \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{%
-            \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne
-                \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi
-            \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
-            \rowcolor{tabu@rc@\the\tabu@nested}}%
-        }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x
-        \global\let\tabu@rc@G \tabu@rc@
-    \fi
-    \fi
-    \tabu@everyrow@egroup
-}% \tabu@rowcolorseries
-\tabuDisableCommands {\let\tabu@rc@ \@empty }
-\def\tabu@rowcolorserieserror {\PackageError{tabu}
-    {Invalid syntax for \string\taburowcolors
-    \MessageBreak Please look at the documentation!}\@ehd
-}% \tabu@rowcolorserieserror
-\newcommand*\tabureset {%
-    \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@
-    \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}%
-}% \tabureset
-%% Parsing the line styles ------------------------------------------
-\def\tabu@getline #1{\begingroup
-    \csname \ifcsname if@safe@actives\endcsname         % <babel>
-                      @safe@activestrue\else
-                      relax\fi       \endcsname
-    \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa
-    \let\tabu@thestyle \relax
-    \ifcsname tabu@linestyle@\@tempa \endcsname
-            \edef\tabu@thestyle{\endgroup
-                \def\tabu@thestyle{\expandafter\noexpand
-                    \csname tabu@linestyle@\@tempa\endcsname}%
-            }\tabu@thestyle
-    \else   \expandafter\tabu@definestyle \tabu@temp \@nil
-    \fi
-}% \tabu@getline
-\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter
-    \tabu@thick \maxdimen  \tabu@on \maxdimen   \tabu@off \maxdimen
-    \let\tabu@c@lon \@undefined  \let\tabu@c@loff \@undefined
-    \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs
-            \def\tabu@temp{\tabu@getparam{thick}}%
-    \else   \def\tabu@temp{\tabu@getparam{thick}\maxdimen}%
-    \fi
-    {%
-        \let\tabu@ \relax
-        \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-))
-        \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}%
-                        \expandafter}\expandafter
-                                \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-)
-    \def\;{\def\:}%
-    \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10)
-    \let\tabu@ \tabu@getcolor    \:%    all arguments are ready now ;-)
-    \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi
-    \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi
-    \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty        \fi
-    \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen
-                                  \tabu@on \tabulineon        \fi\fi
-    \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen
-                                  \tabu@off \tabulineoff      \fi\fi
-    \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi
-            \in@true    % <leaders>
-    \else   \in@false   % <rule>
-    \fi
-    \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}%
-    \else                       \edef\tabu@thick{\the\tabu@thick}%
-    \fi
-    \edef \tabu@thestyle ##1##2{\endgroup
-        \def\tabu@thestyle{%
-            \ifin@  \noexpand\tabu@leadersstyle {\tabu@thick}
-                                                {\the\tabu@on}{##1}
-                                                {\the\tabu@off}{##2}%
-            \else   \noexpand\tabu@rulesstyle
-                            {##1\vrule width \tabu@thick}%
-                            {##1\leaders \hrule height \tabu@thick \hfil}%
-            \fi}%
-    }\expandafter \expandafter
-        \expandafter \tabu@thestyle \expandafter
-            \expandafter \expandafter
-                {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}%
-}% \tabu@definestyle
-{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active
-    \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}}
-    \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space}
-}% \catcode
-\def\tabu@oxiii #1{%
-    \ifcase  \ifx n#1\z@ \else
-             \ifx f#1\@ne\else
-             \tw@       \fi\fi
-          \expandafter\tabu@onxiii
-    \or   \expandafter\tabu@ofxiii
-    \else o%
-    \fi#1}%
-\def\tabu@onxiii #1#2{%
-    \ifcase  \ifx  !#2\tw@          \else
-             \ifcat.\noexpand#2\z@  \else
-             \ifx \tabu@spxiii#2\@ne\else
-             \tw@               \fi\fi\fi
-          \tabu@getparam{on}#2\expandafter\@gobble
-    \or   \expandafter\tabu@onxiii    % (space is active)
-    \else o\expandafter\@firstofone
-    \fi{#1#2}}%
-\def\tabu@ofxiii #1#2{%
-    \ifx #2f\expandafter\tabu@offxiii
-    \else   o\expandafter\@firstofone
-    \fi{#1#2}}
-\def\tabu@offxiii #1#2{%
-    \ifcase \ifx  !#2\tw@           \else
-            \ifcat.\noexpand#2\z@   \else
-            \ifx\tabu@spxiii#2\@ne  \else
-            \tw@                \fi\fi\fi
-          \tabu@getparam{off}#2\expandafter\@gobble
-    \or   \expandafter\tabu@offxiii   % (space is active)
-    \else o\expandafter\@firstofone
-    \fi{#1#2}}
-\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=}
-\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef
-    \ifx \tabu@#1\else   % no more spec
-        \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi
-}% \tabu@getcolor
-\def\tabu@getc@l@r #1\tabu@ {%
-    \def\tabu@temp{#1}\tabu@strtrim \tabu@temp
-    \ifx \tabu@temp\@empty
-    \else%\ifcsname \string\color@\tabu@temp \endcsname  % if the color exists
-        \ifx \tabu@theparam \tabu@off   \let\tabu@c@loff \tabu@c@l@r
-        \else                           \let\tabu@c@lon  \tabu@c@l@r
-        \fi
-    %\else \tabu@warncolour{\tabu@temp}%
-    \fi%\fi
-    \tabu@ % next spec
-}% \tabu@getc@l@r
-\def\tabu@warncolour #1{\PackageWarning{tabu}
-    {Color #1 is not defined. Default color used}%
-}% \tabu@warncolour
-\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}%
-    \ifx \tabu@leaders\tabu@leaders@G \else
-                \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi
-}% \tabu@leadersstyle
-\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined
-        \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}%
-}% \tabu@rulesstyle
-%% The leaders boxes ------------------------------------------------
-\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color
-    {\let\color \tabu@color % => during trials ->  \color = \tabu@nocolor
-    {%                      %    but the leaders boxes should have colors !
-    \def\@therule{\vrule}\def\@thick{height}\def\@length{width}%
-    \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}%
-    \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}%
-    \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}%
-    \global\let\tabu@thehleaders \tabu@theleaders
-    }%
-    {%
-    \def\@therule{\hrule}\def\@thick{width}\def\@length{height}%
-    \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}%
-    \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}%
-    \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}%
-    \global\let\tabu@thevleaders \tabu@theleaders
-    }%
-    \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}%
-    }%
-}% \tabu@LEADERS
-\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@}
-\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color
-    \global\setbox \tabu@leads=\@box{%
-        {#3\tabu@therule{#1}{#2}}%
-        \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi
-        {#3\tabu@therule{#1}{#2}}}%
-    \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss
-        {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}%
-    \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {%
-        {##1\tabu@therule{#1}{#2}}%
-        \xleaders \copy\tabu@leads \@ss
-        \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}%
-    }\tabu@theleaders{#3}%
-}% \tabu@l@@d@rs
-%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ----------
-\newcommand*\tabu {\tabu@longfalse
-    \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}%
-    \else  \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi
-    \expandafter\let\csname tabu*\endcsname \tabu
-    \expandafter\def\csname endtabu*\endcsname{\endtabu}%
-    \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
-}% {tabu}
-\let\tabu@tabular \tabular % <For LyX: some users redefine \tabular...>
-\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu}
-\newcommand*\longtabu {\tabu@longtrue
-   \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi
-   \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}%
-   \LTchunksize=\@M
-   \expandafter\let\csname tabu*\endcsname \tabu
-   \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}%
-   \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts }
-   \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
-}% {longtabu}
-\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu}
-\def\tabu@nolongtabu{\PackageError{tabu}
-   {longtabu requires the longtable package}\@ehd}
-%% Read the target and  then : \tabular or \@array ------------------
-\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget }
-\def\tabu@sett@rget {\tabu@target \z@
-   \ifcase \ifx \bgroup\@let@token   \z@  \else
-           \ifx \@sptoken\@let@token \@ne \else
-           \if t\@let@token          \tw@ \else
-           \if s\@let@token          \thr@@\else
-           \z@\fi\fi\fi\fi
-         \expandafter\tabu@begin
-   \or   \expandafter\tabu@gobblespace\expandafter\tabu@settarget
-   \or   \expandafter\tabu@to
-   \or   \expandafter\tabu@spread
-   \fi
-}% \tabu@sett@rget
-\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget}
-\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget}
-\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target }
-\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget }
-\def\tabu@linegoalt@rget {%
-   \ifx \tabu@temp\LNGL@setlinegoal
-        \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal
-   \tabu@begin
-}% \tabu@linegoalt@rget
-\def\tabu@begin #1#{%
-    \iftabu@measuring \expandafter\tabu@nestedmeasure \fi
-    \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty
-    \else                   \edef\tabu@halignto{\tabu@halignto\the\tabu@target}%
-    \fi
-    \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil
-}% \tabu@begin
-\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup
-   \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}%
-   \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }%
-}% \tabu@tabu@
-\def\tabu@nestedmeasure {%
-    \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax
-            \tabu@spreadtrue
-    \else   \begingroup \iffalse{\fi \ifnum0=`}\fi
-            \toks@{}\def\tabu@stack{b}%
-            \expandafter\tabu@collectbody\expandafter\tabu@quickrule
-                                         \expandafter\endgroup
-    \fi
-}% \tabu@nestedmeasure
-\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target}
-%% \tabu@setup  \tabu@init  \tabu@indent
-\def\tabu@setup{\tabu@alloc@
-    \ifcase \tabu@nested
-        \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@
-            \let\tabu@afterendpar \par
-        \fi\fi\fi
-        \def\tabu@aligndefault{c}\tabu@init \tabu@indent
-    \else       % <nested tabu>
-        \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth
-    \fi
-    \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined
-    \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}%
-    \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu...
-              \let\@endpbox   \tabu@endpbox   % idem "    "    "    "    "    "
-              \let\@tabarray  \tabu@tabarray  % idem "    "    "    "    "    "
-    \tabu@setcleanup \tabu@setreset
-}% \tabu@setup
-\def\tabu@init{\tabu@starttimer \tabu@measuringfalse
-    \edef\tabu@hfuzz  {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}%
-    \let\firsthline    \tabu@firsthline   \let\lasthline      \tabu@lasthline
-    \let\firstline     \tabu@firstline    \let\lastline       \tabu@lastline
-    \let\hline         \tabu@hline        \let\@xhline        \tabu@xhline
-    \let\color         \tabu@color        \let\@arstrutbox    \tabu@arstrutbox
-    \iftabu@colortbl\else\let\LT@@hline   \tabu@LT@@hline \fi
-    \tabu@trivlist     %<restore \\=\@normalcr inside lists>
-    \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext
-    \let\@xfootnote    \tabu@xfootnote    \let\centering      \tabu@centering
-    \let\raggedright   \tabu@raggedright  \let\raggedleft     \tabu@raggedleft
-    \let\tabudecimal   \tabu@tabudecimal  \let\Centering      \tabu@Centering
-    \let\RaggedRight   \tabu@RaggedRight  \let\RaggedLeft     \tabu@RaggedLeft
-    \let\justifying    \tabu@justifying   \let\rowfont        \tabu@rowfont
-    \let\fbox          \tabu@fbox         \let\color@b@x      \tabu@color@b@x
-    \let\tabu@@everycr \everycr           \let\tabu@@everypar \everypar
-    \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok  \tabu@prepnext@tok
-    \let\tabu@multicolumnORI\multicolumn  \let\multicolumn    \tabu@multicolumn
-    \let\tabu@startpbox \@startpbox      % for nested tabu inside longtabu pfff !!!
-    \let\tabu@endpbox   \@endpbox        % idem  "    "    "    "    "    "    "
-    \let\tabu@tabarray  \@tabarray       % idem  "    "    "    "    "    "    "
-    \tabu@adl@fix      \let\endarray      \tabu@endarray % <fix> colortbl & arydshln (delarray)
-    \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi
-}% \tabu@init
-\def\tabu@indent{% correction for indentation
-    \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget
-    \everypar\expandafter{%
-        \the\everypar\everypar\expandafter{\the\everypar}%
-            \setbox\z@=\lastbox
-            \ifdim\wd\z@>\z@ \edef\tabu@thetarget
-                {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi
-            \box\z@}%
-    \fi\fi
-}% \tabu@indent
-\def\tabu@setcleanup {% saves last global assignments
-    \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax
-        \def\tabu@aftergroupcleanup{%
-                \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}%
-    \else
-        \def\tabu@aftergroupcleanup{%
-                \aftergroup\aftergroup\aftergroup\tabu@cleanup
-                \let\tabu@aftergroupcleanup \relax}%
-    \fi
-    \let\tabu@arc@Gsave         \tabu@arc@G
-    \let\tabu@arc@G             \tabu@arc@L   % <init>
-    \let\tabu@drsc@Gsave        \tabu@drsc@G
-    \let\tabu@drsc@G            \tabu@drsc@L  % <init>
-    \let\tabu@ls@Gsave          \tabu@ls@G
-    \let\tabu@ls@G              \tabu@ls@L    % <init>
-    \let\tabu@rc@Gsave          \tabu@rc@G
-    \let\tabu@rc@G              \tabu@rc@L    % <init>
-    \let\tabu@evr@Gsave         \tabu@evr@G
-    \let\tabu@evr@G             \tabu@evr@L   % <init>
-    \let\tabu@celllalign@save   \tabu@celllalign
-    \let\tabu@cellralign@save   \tabu@cellralign
-    \let\tabu@cellleft@save     \tabu@cellleft
-    \let\tabu@cellright@save    \tabu@cellright
-    \let\tabu@@celllalign@save  \tabu@@celllalign
-    \let\tabu@@cellralign@save  \tabu@@cellralign
-    \let\tabu@@cellleft@save    \tabu@@cellleft
-    \let\tabu@@cellright@save   \tabu@@cellright
-    \let\tabu@rowfontreset@save \tabu@rowfontreset
-    \let\tabu@@rowfontreset@save\tabu@@rowfontreset
-    \let\tabu@rowfontreset      \@empty
-    \edef\tabu@alloc@save      {\the\tabu@alloc}%   restore at \tabu@reset
-    \edef\c@taburow@save       {\the\c@taburow}%
-    \edef\tabu@naturalX@save   {\the\tabu@naturalX}%
-    \let\tabu@naturalXmin@save  \tabu@naturalXmin
-    \let\tabu@naturalXmax@save  \tabu@naturalXmax
-    \let\tabu@mkarstrut@save    \tabu@mkarstrut
-    \edef\tabu@clarstrut{%
-        \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax
-        \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax
-        \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}%
-}% \tabu@setcleanup
-\def\tabu@cleanup {\begingroup
-    \globaldefs\@ne         \tabu@everyrowtrue
-    \let\tabu@arc@G         \tabu@arc@Gsave
-    \let\CT@arc@            \tabu@arc@G
-    \let\tabu@drsc@G        \tabu@drsc@Gsave
-    \let\CT@drsc@           \tabu@drsc@G
-    \let\tabu@ls@G          \tabu@ls@Gsave
-    \let\tabu@ls@           \tabu@ls@G
-    \let\tabu@rc@G          \tabu@rc@Gsave
-    \let\tabu@rc@           \tabu@rc@G
-    \let\CT@do@color        \relax
-    \let\tabu@evr@G         \tabu@evr@Gsave
-    \let\tabu@celllalign    \tabu@celllalign@save
-    \let\tabu@cellralign    \tabu@cellralign@save
-    \let\tabu@cellleft      \tabu@cellleft@save
-    \let\tabu@cellright     \tabu@cellright@save
-    \let\tabu@@celllalign   \tabu@@celllalign@save
-    \let\tabu@@cellralign   \tabu@@cellralign@save
-    \let\tabu@@cellleft     \tabu@@cellleft@save
-    \let\tabu@@cellright    \tabu@@cellright@save
-    \let\tabu@rowfontreset  \tabu@rowfontreset@save
-    \let\tabu@@rowfontreset \tabu@@rowfontreset@save
-    \tabu@naturalX         =\tabu@naturalX@save
-    \let\tabu@naturalXmax   \tabu@naturalXmax@save
-    \let\tabu@naturalXmin   \tabu@naturalXmin@save
-    \let\tabu@mkarstrut     \tabu@mkarstrut@save
-    \c@taburow             =\c@taburow@save
-    \ifcase \tabu@nested    \tabu@alloc \m@ne\fi
-    \endgroup               % <end of \globaldefs>
-    \ifcase \tabu@nested
-        \the\tabu@footnotes \global\tabu@footnotes{}%
-        \tabu@afterendpar   \tabu@elapsedtime
-    \fi
-    \tabu@clarstrut
-    \everyrow\expandafter   {\tabu@evr@G}%
-}% \tabu@cleanup
-\let\tabu@afterendpar \relax
-\def\tabu@setreset {%
-    \edef\tabu@savedparams {%         \relax for \tabu@message@save
-        \ifmmode \col@sep \the\arraycolsep
-        \else    \col@sep \the\tabcolsep \fi    \relax
-        \arrayrulewidth   \the\arrayrulewidth   \relax
-        \doublerulesep    \the\doublerulesep    \relax
-        \extratabsurround \the\extratabsurround \relax
-        \extrarowheight   \the\extrarowheight   \relax
-        \extrarowdepth    \the\extrarowdepth    \relax
-        \abovetabulinesep \the\abovetabulinesep \relax
-        \belowtabulinesep \the\belowtabulinesep \relax
-        \def\noexpand\arraystretch{\arraystretch}%
-        \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}%
-    \begingroup
-        \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu
-        \ifx \tabu@arc@L\relax  \else \tabu@setsave \tabu@arc@L \fi
-        \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi
-        \tabu@setsave \tabu@ls@L      \tabu@setsave \tabu@evr@L
-        \expandafter \endgroup \expandafter
-            \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena
-                \let\tabu@arc@G  \tabu@arc@L
-                \let\tabu@drsc@G \tabu@drsc@L
-                \let\tabu@ls@G   \tabu@ls@L
-                \let\tabu@rc@G   \tabu@rc@L
-                \let\tabu@evr@G  \tabu@evr@L}%
-    \def\tabu@reset{\tabu@savedparams
-        \tabu@everyrowtrue  \c@taburow \z@
-        \let\CT@arc@        \tabu@arc@L
-        \let\CT@drsc@       \tabu@drsc@L
-        \let\tabu@ls@       \tabu@ls@L
-        \let\tabu@rc@       \tabu@rc@L
-        \global\tabu@alloc  \tabu@alloc@save
-        \everyrow\expandafter{\tabu@evr@L}}%
-}% \tabu@reset
-\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}}
-\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}}
-%% The Rewriting Process -------------------------------------------
-\def\tabu@newcolumntype #1{%
-    \expandafter\tabu@new@columntype
-        \csname NC@find@\string#1\expandafter\endcsname
-        \csname NC@rewrite@\string#1\endcsname
-        {#1}%
-}% \tabu@newcolumntype
-\def\tabu@new@columntype #1#2#3{%
-    \def#1##1#3{\NC@{##1}}%
-    \let#2\relax \newcommand*#2%
-}% \tabu@new@columntype
-\def\tabu@privatecolumntype #1{%
-    \expandafter\tabu@private@columntype
-        \csname NC@find@\string#1\expandafter\endcsname
-        \csname NC@rewrite@\string#1\expandafter\endcsname
-        \csname tabu@NC@find@\string#1\expandafter\endcsname
-        \csname tabu@NC@rewrite@\string#1\endcsname
-        {#1}%
-}% \tabu@privatecolumntype
-\def\tabu@private@columntype#1#2#3#4{%
-    \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}%
-    \tabu@new@columntype#3#4%
-}% \tabu@private@columntype
-\let\tabu@privatecolumns \@empty
-\newcommand*\tabucolumn [1]{\expandafter \def \expandafter
-    \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns
-                                          \NC@do #1}}%
-\let\tabu@highprioritycolumns \@empty
-%% The  |  ``column'' : rewriting process --------------------------
-\tabu@privatecolumntype |{\tabu@rewritevline}
-\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}%
-                \expandafter \NC@find \tabu@rewritten}
-\def\tabu@lines #1{%
-    \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi
-    \NC@list\expandafter{\the\NC@list \NC@do #1}%
-}% \tabu@lines@
-\def\tabu@vlinearg #1{%
-    \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}%
-    \else\tabu@getline {#1}%
-    \fi
-    \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}%
-    }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}%
-    \expandafter \tabu@keepls \tabu@thestyle \@nil
-}% \tabu@vlinearg
-\def\tabu@keepls #1\@nil{%
-    \ifcat $\@cdr #1\@nil $%
-    \ifx \relax#1\else
-    \ifx \tabu@ls@#1\else
-        \let#1\relax
-        \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer
-                \tabu@savels\noexpand#1}\fi\fi\fi
-}% \tabu@keepls
-\def\tabu@thevline {\begingroup
-    \ifdefined\tabu@leaders
-        \setbox\@tempboxa=\vtop to\dimexpr
-                      \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}%
-        \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox
-        \box\@tempboxa
-    \else
-                \tabu@thevrule
-    \fi             \endgroup
-}% \tabu@thevline
-\def\tabu@savels #1{%
-    \expandafter\let\csname\string#1\endcsname #1%
-    \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset
-                                                    \tabu@resetls#1}}%
-\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}%
-%% \multicolumn inside tabu environment -----------------------------
-\tabu@newcolumntype \tabu@rewritemulticolumn{%
-    \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group
-    \NC@list{\NC@do *}\tabu@textbar \tabu@lines
-    \tabu@savedecl
-    \tabu@privatecolumns
-    \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}%
-    \let\tabu@savels \relax
-    \NC@find
-}% \tabu@rewritemulticolumn
-\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup}
-\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI}
-\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup
-    \tabu@everyrowtrue
-    \NC@list{\NC@do \tabu@rewritemulticolumn}%
-    \expandafter\@gobbletwo % gobbles \multispan{#1}
-         \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}%
-                {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi
-                {#3}}%
-}% \tabu@multic@lumn
-%% The X column(s): rewriting process -----------------------------
-\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}}
-\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten }
-\def\tabu@siunitx   #1{\@ifnextchar \bgroup
-                     {\tabu@rewriteX@Ss{#1}}
-                      {\tabu@nosiunitx{#1}}}
-\def\tabu@rewriteX@Ss #1#2{\@temptokena{}%
-    \@defaultunits \let\tabu@temp =#2\relax\@nnil
-    \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi
-        \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}%
-            }\expandafter\NC@find \the\@temptokena \relax
-        }\expandafter\NC@rewrite@S \@gobble #2\relax
-    \else \tabu@siunitxerror
-    \fi
-    \expandafter \NC@find \tabu@rewritten
-}% \tabu@rewriteX@Ss
-\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column !
-        \MessageBreak X column can only embed siunitx S or s columns}\@ehd
-}% \tabu@siunitxerror
-\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}%
-    \iftabu@measuring
-    \else \tabu@measuringtrue % first X column found in the preamble
-        \let\@halignto \relax   \let\tabu@halignto \relax
-        \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@
-        \else          \tabu@spreadtarget \z@ \fi
-        \ifdim \tabu@target=\z@
-                \setlength\tabu@target \tabu@thetarget
-                \tabu@message{\tabu@message@defaulttarget}%
-        \else   \tabu@message{\tabu@message@target}\fi
-    \fi
-}% \tabu@rewriteX
-\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax
-                                \def\tabu@rewritten{l}}
-\def\tabu@Xarg #1#2#3{%
-   \advance\tabu@Xcol \@ne      \let\tabu@Xlcr  \@empty
-   \let\tabu@Xdisp    \@empty   \let\tabu@Xmath \@empty
-    \ifx\\#1\\%    <shortcut when no option>
-         \def\tabu@rewritten{p}\tabucolX \p@        % <default coef = 1>
-    \else
-         \let\tabu@rewritten \@empty   \let\tabu@temp \@empty  \tabucolX \z@
-         \tabu@Xparse {}#1\relax
-    \fi
-    \tabu@Xrewritten{#2}{#3}%
-}% \tabu@Xarg
-\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest}
-\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}}
-\def\tabu@Xtest{%
-   \ifcase \ifx \relax\@let@token \z@ \else
-           \if ,\@let@token \m@ne\else
-           \if p\@let@token 1\else
-           \if m\@let@token 2\else
-           \if b\@let@token 3\else
-           \if l\@let@token 4\else
-           \if c\@let@token 5\else
-           \if r\@let@token 6\else
-           \if j\@let@token 7\else
-           \if L\@let@token 8\else
-           \if C\@let@token 9\else
-           \if R\@let@token 10\else
-           \if J\@let@token 11\else
-           \ifx \@sptoken\@let@token 12\else
-           \if .\@let@token 13\else
-           \if -\@let@token 13\else
-           \ifcat $\@let@token 14\else
-           15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax
-   \or \tabu@Xtype {p}%
-   \or \tabu@Xtype {m}%
-   \or \tabu@Xtype {b}%
-   \or \tabu@Xalign \raggedright\relax
-   \or \tabu@Xalign \centering\relax
-   \or \tabu@Xalign \raggedleft\relax
-   \or \tabu@Xalign \tabu@justify\relax
-   \or \tabu@Xalign \RaggedRight\raggedright
-   \or \tabu@Xalign \Centering\centering
-   \or \tabu@Xalign \RaggedLeft\raggedleft
-   \or \tabu@Xalign \justifying\tabu@justify
-   \or \expandafter \tabu@Xparsespace
-   \or \expandafter \tabu@Xcoef
-   \or \expandafter \tabu@Xm@th
-   \or \tabu@Xcoef{}%
-   \else\expandafter \tabu@Xparse
-   \fi
-}% \tabu@Xtest
-\def\tabu@Xalign #1#2{%
-    \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu}
-       {Duplicate horizontal alignment specification}\fi
-    \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax
-    \else       \def\tabu@Xlcr{#2}\let#2\relax\fi
-    \expandafter\tabu@Xparse
-}% \tabu@Xalign
-\def\tabu@Xtype #1{%
-    \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu}
-            {Duplicate vertical alignment specification}\fi
-    \def\tabu@rewritten{#1}\expandafter\tabu@Xparse
-}% \tabu@Xtype
-\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}%
-    \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi
-}% \tabu@Xcoef
-\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@
-    \tabu@Xparse{}%
-}% \tabu@Xc@ef
-\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp}
-\def\tabu@Xd@sp{\let\tabu@Xmath=$%
-    \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}%
-            \expandafter\tabu@Xparse
-    \else   \expandafter\tabu@Xparse\expandafter{\expandafter}%
-    \fi
-}% \tabu@Xd@sp
-\def\tabu@Xrewritten {%
-   \ifx  \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi
-   \ifdim \tabucolX<\z@         \tabu@negcoeftrue
-   \else\ifdim \tabucolX=\z@    \tabucolX \p@
-   \fi\fi
-   \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}%
-   \edef\tabu@Xcoefs{\tabu@Xcoefs    \tabu@      \tabu@temp}%
-   \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{%
-        >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}%
-                    \tabu@rewritten {\tabu@hsize \tabu@temp}%
-        <{##2\ifx$\tabu@Xmath$\fi}}%
-   }\tabu@rewritten
-}% \tabu@Xrewritten
-\def\tabu@hsize #1#2{%
-    \ifdim #2\p@<\z@
-        \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else
-        \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi
-        \fi
-   \else #2\tabucolX
-   \fi
-}% \tabu@hsize
-%% \usetabu  and  \preamble: rewriting process ---------------------
-\tabu@privatecolumntype \usetabu [1]{%
-    \ifx\\#1\\\tabu@saveerr{}\else
-        \@ifundefined{tabu@saved@\string#1}
-            {\tabu@saveerr{#1}}
-            {\let\tabu@rewriteX \tabu@rewriteXrestore
-             \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}%
-    \fi
-}% \NC@rewrite@\usetabu
-\tabu@privatecolumntype \preamble [1]{%
-    \ifx\\#1\\\tabu@saveerr{}\else
-        \@ifundefined{tabu@saved@\string#1}
-            {\tabu@saveerr{#1}}
-            {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}%
-    \fi
-}% \NC@rewrite@\preamble
-%% Controlling the rewriting process -------------------------------
-\tabu@newcolumntype \tabu@rewritefirst{%
-    \iftabu@long    \aftergroup \tabu@longpream  % <the whole implementation is here !>
-    \else           \aftergroup \tabu@pream
-    \fi
-    \let\tabu@          \relax      \let\tabu@hsize     \relax
-    \let\tabu@Xcoefs    \@empty     \let\tabu@savels    \relax
-    \tabu@Xcol          \z@         \tabu@cnt           \tw@
-    \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse
-    \global\setbox\@arstrutbox \box\@arstrutbox
-    \NC@list{\NC@do *}\tabu@textbar \tabu@lines
-    \NC@list\expandafter{\the\NC@list \NC@do X}%
-    \iftabu@siunitx     % <siunitx S and s columns>
-            \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi
-    \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}%
-    \expandafter\def\expandafter\tabu@NC@list\expandafter{%
-                    \the\expandafter\NC@list \tabu@NC@list}%    % * | X S <original>
-    \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu
-                         \expandafter \NC@do \expandafter\preamble
-                         \the\NC@list \NC@do \tabu@rewritemiddle
-                                      \NC@do \tabu@rewritelast}%
-    \tabu@savedecl
-    \tabu@privatecolumns
-    \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle
-}% NC@rewrite@\tabu@rewritefirst
-\tabu@newcolumntype \tabu@rewritemiddle{%
-    \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast
-}% \NC@rewrite@\tabu@rewritemiddle
-\tabu@newcolumntype \tabu@rewritelast{%
-    \ifx \tabu@temp\tabu@prev   \advance\tabu@cnt \m@ne
-            \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle
-                                               \NC@do \tabu@rewritelast}%
-    \else \let\tabu@prev\tabu@temp
-    \fi
-    \ifcase \tabu@cnt   \expandafter\tabu@endrewrite
-    \else               \expandafter\NC@find \expandafter\tabu@rewritemiddle
-    \fi
-}% \NC@rewrite@\tabu@rewritelast
-%% Choosing the strategy --------------------------------------------
-\def\tabu@endrewrite {%
-    \let\tabu@temp \NC@find
-    \ifx \@arrayright\relax \let\@arrayright \@empty  \fi
-    \count@=%
-        \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print
-             \iftabu@measuring
-                \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer
-                    \tabu@target        \csname tabu@\the\tabu@nested.T\endcsname
-                    \tabucolX           \csname tabu@\the\tabu@nested.X\endcsname
-                    \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}%
-             \fi
-        \else\iftabu@measuring        4       % X columns
-                \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer
-                    \tabu@target        \the\tabu@target
-                    \tabu@spreadtarget  \the\tabu@spreadtarget}%
-                    \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}%
-                    \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}%
-                 \let\tabu@Xcoefs \relax
-             \else\ifcase\tabu@nested \thr@@  % outer, no X
-                                      \global\let\tabu@afterendpar \relax
-                  \else               \@ne    % inner, no X, outer in mode 1 or 2
-                  \fi
-                  \ifdefined\tabu@usetabu
-                  \else \ifdim\tabu@target=\z@
-                  \else \let\tabu@temp \tabu@extracolsep
-                  \fi\fi
-             \fi
-        \fi
-    \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}%
-    \tabu@temp
-}% \tabu@endrewrite
-\def\tabu@extracolsep{\@defaultunits    \expandafter\let
-    \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil
-    \ifx \tabu@temp\@sptoken
-        \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep
-    \else
-        \edef\tabu@temp{\noexpand\NC@find
-            \if |\noexpand\tabu@temp        @%
-            \else\if !\noexpand\tabu@temp   @%
-            \else                           !%
-            \fi\fi
-            {\noexpand\extracolsep\noexpand\@flushglue}}%
-    \fi
-    \tabu@temp
-}% \tabu@extrac@lsep
-%% Implementing the strategy ----------------------------------------
-\long\def\tabu@pream #1\@preamble {%
-    \let\tabu@ \tabu@@  \tabu@mkpreambuffer     \tabu@aftergroupcleanup
-    \NC@list\expandafter {\tabu@NC@list}%    in case of nesting...
-    \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi
-    \let\tabu@savedpreamble \@preamble
-    \global\let\tabu@elapsedtime \relax
-    \tabu@thebody ={#1\tabu@aftergroupcleanup}%
-    \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody
-                                                \@preamble}%
-    \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens )
-    \tabu@select
-}% \tabu@pream
-\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{%
-    \let\tabu@ \tabu@@  \tabu@mkpreambuffer     \tabu@aftergroupcleanup
-    \NC@list\expandafter {\tabu@NC@list}%    in case of nesting...
-    \let\tabu@savedpreamble \@preamble
-    \global\let\tabu@elapsedtime \relax
-    \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}%
-    \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens )
-    \tabu@select
-}% \tabu@longpream
-\def\tabu@select {%
-    \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi
-    \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi
-    \ifcase \count@
-        \global\let\tabu@elapsedtime \relax
-        \tabu@seteverycr
-        \expandafter \tabuthepreamble       % vertical adjustment (inherited from outer)
-    \or      % exit in vertical measure + struts per cell because no X and outer in mode 3
-        \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}%
-        \def\tabu@cellralign{\tabu@verticalspacing}%
-        \tabu@seteverycr
-        \expandafter \tabuthepreamble
-    \or                            % exit without measure because no X and outer in mode 4
-        \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty
-        \tabu@seteverycr
-        \expandafter \tabuthepreamble
-    \else                                   % needs trials
-        \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty
-        \tabu@savecounters
-        \expandafter \tabu@setstrategy
-    \fi
-}% \tabu@select
-\def\tabu@@ {\gdef\tabu@mkpreambuffer}
-%% Protections to set up before trials ------------------------------
-\def\tabu@setstrategy {\begingroup  % <trials group>
-    \tabu@trialh@@k    \tabu@cnt    \z@  % number of trials
-    \hbadness          \@M          \let\hbadness          \@tempcnta
-    \hfuzz             \maxdimen    \let\hfuzz             \@tempdima
-    \let\write         \tabu@nowrite\let\GenericError      \tabu@GenericError
-    \let\savetabu      \@gobble     \let\tabudefaulttarget \linewidth
-    \let\@footnotetext \@gobble     \let\@xfootnote        \tabu@xfootnote
-    \let\color         \tabu@nocolor\let\rowcolor          \tabu@norowcolor
-    \let\tabu@aftergroupcleanup \relax % only after the last trial
-    \tabu@mkpreambuffer
-    \ifnum \count@>\thr@@ \let\@halignto \@empty  \tabucolX@init
-                          \def\tabu@lasttry{\m@ne\p@}\fi
-    \begingroup \iffalse{\fi \ifnum0=`}\fi
-        \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi %
-                                  \tabu@collectbody \tabu@strategy %
-}% \tabu@setstrategy
-\def\tabu@savecounters{%
-    \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}%
-    \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax
-}% \tabu@savecounters
-\def\tabucolX@init {%  \tabucolX <= \tabu@target / (sum coefs > 0)
-    \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs
-    \ifdim \dimen@>\z@
-        \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax
-        \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi
-    \fi
-}% \tabucolX@init
-\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum
-    \ifdim #2\p@>\z@ #2\p@  \advance\dimen@ #2\p@
-    \else           -#2\p@  \tabu@negcoeftrue
-                            \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax
-                            \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi
-                            \tabu@wddef{#1}{0pt}%
-    \fi
-}% \tabu@Xinit
-%% Collecting the environment body ----------------------------------
-\long\def\tabu@collectbody #1#2\end #3{%
-    \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}%
-    \ifx \tabu@stack\@empty
-        \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}%
-                \def\tabu@end@envir{\end{#3}}%
-                \iftabuscantokens
-                    \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}%
-                    \else        \def\tabu@endenvir {\let\endarray \@empty
-                                                     \end{#3}\tabu@gobbleX}%
-                    \fi
-                \else           \def\tabu@endenvir  {\end{#3}}\fi}%
-        \let\tabu@collectbody \tabu@endofcollect
-    \else\def\tabu@temp{#3}%
-        \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }%
-        \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}%
-        \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}%
-        \else \toks@\expandafter{\the\toks@ #2\end{#3}}%
-        \fi\fi\fi
-    \fi
-    \tabu@collectbody{#1}%
-}% \tabu@collectbody
-\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}%
-\def\tabu@endofcollect #1{\ifnum0=`{}\fi
-                          \expandafter\endgroup \the\toks@  #1%
-}% \tabu@endofcollect
-%% The trials: switching between strategies -------------------------
-\def\tabu@strategy {\relax  % stops \count@ assignment !
-    \ifcase\count@          % case 0 = print with vertical adjustment (outer is finished)
-        \expandafter \tabu@endoftrials
-    \or                     % case 1 = exit in vertical measure (outer in mode 3)
-        \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}%
-        \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}%
-        \expandafter \tabu@endoftrials
-    \or                     % case 2 = exit with a rule replacing the table (outer in mode 4)
-        \expandafter \tabu@quickend
-    \or                     % case 3 = outer is in mode 3 because of no X
-        \begingroup
-            \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}%
-            \def\tabu@cellralign{\tabu@verticalspacing}%
-            \expandafter \tabu@measuring
-    \else                   % case 4 = horizontal measure
-        \begingroup
-            \global\let\tabu@elapsedtime \tabu@message@etime
-            \long\def\multicolumn##1##2##3{\multispan{##1}}%
-            \let\tabu@startpboxORI \@startpbox
-            \iftabu@spread
-                    \def\tabu@naturalXmax {\z@}%
-                    \let\tabu@naturalXmin \tabu@naturalXmax
-                    \tabu@evr{\global\tabu@naturalX \z@}%
-                    \let\@startpbox \tabu@startpboxmeasure
-            \else\iftabu@negcoef
-                    \let\@startpbox \tabu@startpboxmeasure
-            \else   \let\@startpbox \tabu@startpboxquick
-            \fi\fi
-            \expandafter \tabu@measuring
-    \fi
-}% \tabu@strategy
-\def\tabu@measuring{\expandafter \tabu@trial \expandafter
-                                                \count@ \the\count@ \tabu@endtrial
-}% \tabu@measuring
-\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi}
-\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr
-    \ifx \tabu@savecounters\relax \else
-                \let\tabu@savecounters \relax \tabu@clckpt \fi
-    $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi
-       \expandafter{\expandafter \tabuthepreamble
-                         \the\tabu@thebody
-                         \csname tabu@adl@endtrial\endcsname
-                         \endarray}$\egroup             % got \tabu@box
-}% \tabu@shorttrial
-\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr
-    \ifx \tabu@savecounters\relax \else
-                \let\tabu@savecounters \relax \tabu@clckpt \fi
-    \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi
-       \expandafter{\expandafter \tabuthepreamble
-                         \the\tabu@thebody
-                         \tabuendlongtrial}\egroup      % got \tabu@box
-}% \tabu@longtrial
-\def\tabuendlongtrial{% no @ allowed for \scantokens
-    \LT@echunk  \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne
-                \LT@get@widths
-}% \tabuendlongtrial
-\def\tabu@adl@endtrial{% <arydshln in nested trials - problem for global column counters!>
-    \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails !
-\def\tabu@seteverycr {\tabu@reset
-    \everycr \expandafter{\the\everycr  \tabu@everycr}%
-    \let\everycr \tabu@noeverycr                      % <for ialign>
-}% \tabu@seteverycr
-\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@}
-\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr}
-\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi}
-\def\tabu@endoftrials {%
-    \iftabuscantokens   \expandafter\@firstoftwo
-    \else               \expandafter\@secondoftwo
-    \fi
-        {\expandafter \tabu@closetrialsgroup \expandafter
-         \tabu@rescan \expandafter{%
-                    \expandafter\tabuthepreamble
-                        \the\expandafter\tabu@thebody
-                                    \iftabu@long \else \endarray \fi}}
-        {\expandafter\tabu@closetrialsgroup \expandafter
-                    \tabuthepreamble
-                        \the\tabu@thebody}%
-                                        \tabu@endenvir      % Finish !
-}% \tabu@endoftrials
-\def\tabu@closetrialsgroup {%
-    \toks@\expandafter{\tabu@endenvir}%
-    \edef\tabu@bufferX{\endgroup
-        \tabucolX       \the\tabucolX
-        \tabu@target    \the\tabu@target
-        \tabu@cnt       \the\tabu@cnt
-        \def\noexpand\tabu@endenvir{\the\toks@}%
-        %Quid de \@halignto = \tabu@halignto ??
-    }% \tabu@bufferX
-    \tabu@bufferX
-    \ifcase\tabu@nested % print out (outer in mode 0)
-        \global\tabu@cnt \tabu@cnt
-        \tabu@evr{\tabu@verticaldynamicadjustment}%
-        \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty
-        \let\@finalstrut \tabu@finalstrut
-    \else               % vertical measure of nested tabu
-        \tabu@evr{\tabu@verticalinit}%
-        \tabu@celllalign@def{\tabu@verticalmeasure}%
-        \def\tabu@cellralign{\tabu@verticalspacing}%
-    \fi
-    \tabu@clckpt \let\@halignto \tabu@halignto
-    \let\@halignto \@empty
-    \tabu@seteverycr
-    \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@
-        \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts)
-    \fi\fi
-}% \tabu@closetrialsgroup
-\def\tabu@quickend {\expandafter \endgroup \expandafter
-                        \tabu@target \the\tabu@target \tabu@quickrule
-                        \let\endarray \relax \tabu@endenvir
-}% \tabu@quickend
-\def\tabu@endtrial {\relax      % stops \count@ assignment !
-    \ifcase \count@ \tabu@err   % case 0 = impossible here
-    \or             \tabu@err   % case 1 = impossible here
-    \or             \tabu@err   % case 2 = impossible here
-    \or                         % case 3 = outer goes into mode 0
-        \def\tabu@bufferX{\endgroup}\count@ \z@
-    \else                       % case 4 = outer goes into mode 3
-        \iftabu@spread  \tabu@spreadarith % inner into mode 1 (outer in mode 3)
-        \else           \tabu@arith       %              or 2 (outer in mode 4)
-        \fi
-        \count@=%
-            \ifcase\tabu@nested     \thr@@  % outer goes into mode 3
-            \else\iftabu@measuring  \tw@    % outer is in mode 4
-            \else                   \@ne    % outer is in mode 3
-            \fi\fi
-        \edef\tabu@bufferX{\endgroup
-                           \tabucolX        \the\tabucolX
-                           \tabu@target     \the\tabu@target}%
-    \fi
-    \expandafter \tabu@bufferX \expandafter
-                                    \count@ \the\count@  \tabu@strategy
-}% \tabu@endtrial
-\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}}
-%% The algorithms: compute the widths / stop or go on ---------------
-\def\tabu@arithnegcoef {%
-    \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs
-}% \tabu@arithnegcoef
-\def\tabu@arith@negcoef #1#2{%
-    \ifdim #2\p@>\z@    \advance\dimen@     #2\p@       % saturated by definition
-                        \advance\@tempdima  #2\tabucolX
-    \else
-        \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated
-                        \advance\dimen@     -#2\p@
-                        \advance\@tempdima  -#2\tabucolX
-        \else
-                        \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised
-                        \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised
-                        \advance\dimen@     -#2\p@ % saturated (natural width = tabu@target)
-                        \fi
-        \fi
-    \fi
-}% \tabu@arith@negcoef
-\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@
-    \ifdim \@tempdima=\z@
-        \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}%
-    \else
-        \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2}
-                    *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}%
-    \fi
-}% \tabu@givespace
-\def\tabu@arith {\advance\tabu@cnt \@ne
-    \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi
-    \tabu@arithnegcoef
-    \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % <incompressible material>
-    \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax
-    \tabu@message{\tabu@message@arith}%
-    \ifdim \tabu@DELTA <\tabu@hfuzz
-        \ifdim \tabu@DELTA<\z@          % wd (tabu)<\tabu@target ?
-            \let\tabu@ \tabu@givespace \tabu@Xcoefs
-            \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message
-        \else   % already converged: nothing to do but nearly impossible...
-        \fi
-        \tabucolX \maxdimen
-        \tabu@measuringfalse
-    \else                               % need for narrower X columns
-        \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax
-        \tabu@measuringtrue
-        \@whilesw \iftabu@measuring\fi {%
-            \advance\tabu@cnt \@ne
-            \tabu@arithnegcoef
-            \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here
-            \tabu@message{\tabu@header
-                \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@
-                \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@
-                \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@
-                \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@
-                \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else
-                \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@
-                \fi}%
-            \ifdim -\tabu@DELTA<\tabu@hfuzz
-                \advance\@tempdima \@tempdimb % for message
-                \tabu@measuringfalse
-            \else
-                \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax
-            \fi
-        }%
-    \fi
-    \tabu@message{\tabu@message@reached}%
-    \edef\tabu@bufferX{\endgroup \tabu@cnt    \the\tabu@cnt
-                                 \tabucolX    \the\tabucolX
-                                 \tabu@target \the\tabu@target}%
-}% \tabu@arith
-\def\tabu@spreadarith {%
-    \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs
-    \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}%
-    \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax
-    \iftabu@measuring
-        \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax
-        \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}%
-    \else
-        \tabu@message{\tabu@message@spreadarith}%
-        \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target
-            \tabu@message{(tabu) spread
-                \ifdim \@tempdimc>\tabu@target useless here: default target used%
-                \else too large: reduced to fit default target\fi.}%
-        \else
-            \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax
-            \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}%
-        \fi
-        \begingroup \let\tabu@wddef \@gobbletwo
-            \@tempdimb \@tempdima
-            \tabucolX@init
-            \tabu@arithnegcoef
-            \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax
-        \expandafter\endgroup \expandafter\tabucolX \the\tabucolX
-        \tabu@arith
-    \fi
-}% \tabu@spreadarith
-\def\tabu@spread@arith #1#2{%
-    \ifdim #2\p@>\z@ \advance\dimen@ #2\p@
-    \else            \advance\@tempdima \tabu@wd{#1}\relax
-    \fi
-}% \tabu@spread@arith
-%% Reporting in the .log file ---------------------------------------
-\def\tabu@message@defaulttarget{%
-    \ifnum\tabu@nested=\z@^^J(tabu) Default target:
-    \ifx\tabudefaulttarget\linewidth    \string\linewidth
-        \ifdim \tabu@thetarget=\linewidth \else
-            -\the\dimexpr\linewidth-\tabu@thetarget\fi  =
-    \else\ifx\tabudefaulttarget\linegoal\string\linegoal=
-    \fi\fi
-    \else (tabu) Default target (nested): \fi
-    \the\tabu@target \on@line
-    \ifnum\tabu@nested=\z@ , page \the\c@page\fi}
-\def\tabu@message@target {^^J(tabu) Target specified:
-   \the\tabu@target \on@line, page \the\c@page}
-\def\tabu@message@arith {\tabu@header
-    \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@
-    \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@
-    \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@
-    \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@
-    \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else
-    \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@
-    \fi
-}% \tabu@message@arith
-\def\tabu@message@spreadarith {\tabu@spreadheader
-   \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@
-   \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@
-   \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@
-   \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@
-   \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target
-                  \else  \@tempdimc+\tabu@spreadtarget \fi
-                  {}{}{}{}{}\@@}
-\def\tabu@message@negcoef #1#2{
-    \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]:
-    \space width = \tabu@wd {#1}
-        \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname
-    \ifdim -\tabu@pt#2\tabucolX<\tabu@target
-    < \number-\rem@pt#2 X
-    = \the\dimexpr -\tabu@pt#2\tabucolX \relax
-    \else
-    <= \the\tabu@target\space < \number-\rem@pt#2 X\fi}
-\def\tabu@message@reached{\tabu@header
-     ******* Reached Target:
-            hfuzz = \tabu@hfuzz\on@line\space *******}
-\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}%
-    \tabu@message{(tabu)\tabu@spaces Time elapsed during measure:
-    \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec
-    \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime)
-    -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax
-    *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space
-                                        cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}}
-\def\tabu@message@verticalsp {%
-    \ifdim \@tempdima>\tabu@ht
-        \ifdim \@tempdimb>\tabu@dp
-        \expandafter\expandafter\expandafter\string\tabu@ht =
-            \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@
-        \expandafter\expandafter\expandafter\string\tabu@dp =
-            \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J%
-        \else
-        \expandafter\expandafter\expandafter\string\tabu@ht =
-            \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J%
-        \fi
-    \else\ifdim \@tempdimb>\tabu@dp
-        \tabu@spaces\tabu@spaces\tabu@spaces
-        \expandafter\expandafter\expandafter\string\tabu@dp =
-            \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi
-    \fi
-}% \tabu@message@verticalsp
-\edef\tabu@spaces{\@spaces}
-\def\tabu@strippt{\expandafter\tabu@pt\the}
-{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}}
-\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr}
-\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt}
-\def\do #1{%
-    \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{%
-    \ifnum##1<10 #1 #1\else
-    \ifnum##1<100 #1 \else
-    \ifnum##1<\@m #1\fi\fi\fi
-    ##1.##2##3##4##5##6##7##8#1}%
-    \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }%
-    \def\tabu@titles{\ifnum \tabu@nested=\z@
-      (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target
-                  #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}%
-    \def\tabu@spreadheader{%
-      (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min.
-                                                      #1 New Target^^J%
-      (tabu) sprd}
-    \def\tabu@message@save {\begingroup
-        \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@}
-        \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt
-                                                     \dimexpr####1\p@{ }{ }}}%
-        \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}%
-        \let\CT@arc@ \relax \let\@preamble \@gobble
-        \let\tabu@savedpream  \@firstofone
-        \let\tabu@savedparams \@firstofone
-        \def\tabu@target ####1\relax   {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}%
-        \def\tabucolX ####1\relax      {(tabu) X columns width#1 = \x{####1}^^J}%
-        \def\tabu@nbcols ####1\relax   {(tabu) Number of columns: \z{####1}^^J}%
-        \def\tabu@aligndefault    ####1{(tabu) Default alignment: #1 #1 ####1^^J}%
-        \def\col@sep ####1\relax       {(tabu) column sep #1 #1 #1 = \x{####1}^^J}%
-        \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}%
-        \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}%
-        \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}%
-        \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}%
-        \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}%
-        \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }%
-        \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}%
-        \def\arraystretch         ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}%
-        \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}%
-        \def\tabu@arc@L           ####1{(tabu) taburulecolor #1 #1 = ####1^^J}%
-        \def\tabu@drsc@L          ####1{(tabu) tabudoublerulecolor=  ####1^^J}%
-        \def\tabu@evr@L           ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}%
-        \def\tabu@ls@L            ####1{(tabu) line style = \detokenize{####1}^^J}%
-        \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}%
-        \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}%
-        \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo
-        \tabu@message{%
-         (tabu) \string\savetabu{\tabu@temp}: \on@line^^J%
-         \tabu@usetabu \@nil^^J}%
-        \endgroup}
-}\do{ }
-%% Measuring the natural width (varwidth) - store the results -------
-\def\tabu@startpboxmeasure #1{\bgroup   % entering \vtop
-    \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}%
-    \ifodd 1\ifx \tabu@temp\@empty 0 \else      % starts with \tabu@hsize ?
-            \iftabu@spread           \else      % if spread -> measure
-            \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure
-        \let\@startpbox \tabu@startpboxORI      % restore immediately (nesting)
-        \tabu@measuringtrue                     % for the quick option...
-        \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi
-        \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target
-                                        \tabu@target=\tabu@temp\tabucolX \fi\fi
-        \setbox\tabu@box  \hbox \bgroup
-            \begin{varwidth}\tabu@target
-                \let\FV@ListProcessLine \tabu@FV@ListProcessLine  % \hbox to natural width...
-                \narrowragged \arraybackslash \parfillskip \@flushglue
-                \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi
-                \bgroup \aftergroup\tabu@endpboxmeasure
-                \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi
-    \else \expandafter\@gobble
-                            \tabu@startpboxquick{#1}% \@gobble \bgroup
-    \fi
-}% \tabu@startpboxmeasure
-\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty
-                                          \bgroup\color@begingroup}
-\def\tabu@endpboxmeasure {%
-    \@finalstrut \@arstrutbox
-                    \end{varwidth}\egroup    % <got my \tabu@box>
-    \ifdim \tabu@temp\p@ <\z@   % neg coef
-        \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box
-            \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}%
-            \tabu@debug{\tabu@message@endpboxmeasure}%
-        \fi
-    \else                       % spread coef>0
-        \global\advance \tabu@naturalX \wd\tabu@box
-        \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax
-        \ifdim \tabu@naturalXmax <\tabu@naturalX
-            \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi
-        \ifdim \tabu@naturalXmin <\@tempdima
-            \xdef\tabu@naturalXmin {\the\@tempdima}\fi
-    \fi
-   \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target
-}% \tabu@endpboxmeasure
-\def\tabu@wddef #1{\expandafter\xdef
-                   \csname tabu@\the\tabu@nested.W\number#1\endcsname}
-\def\tabu@wd    #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname}
-\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd
-    \the\tabu@Xcol. X[\tabu@temp]:
-    target = \the\tabucolX \space
-    \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol
-    =\tabu@wd\tabu@Xcol
-}% \tabu@message@endpboxmeasure
-\def\tabu@startpboxquick {\bgroup
-    \let\@startpbox \tabu@startpboxORI  % restore immediately
-    \let\tabu \tabu@quick               % \begin is expanded before...
-    \expandafter\@gobble \@startpbox    % gobbles \bgroup
-}% \tabu@startpboxquick
-\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi
-    \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick
-}% \tabu@quick
-\def\tabu@endquick {%
-    \ifodd 1\ifx\tabu@end@envir\tabu@endtabu  \else
-            \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax
-            \endgroup
-    \else   \let\endtabu \relax
-            \tabu@end@envir
-    \fi
-}% \tabu@quick
-\def\tabu@endtabu   {\end{tabu}}
-\def\tabu@endtabus  {\end{tabu*}}
-%% Measuring the heights and depths - store the results -------------
-\def\tabu@verticalmeasure{\everypar{}%
-    \ifnum \currentgrouptype>12         % 14=semi-simple, 15=math shift group
-        \setbox\tabu@box =\hbox\bgroup
-            \let\tabu@verticalspacing \tabu@verticalsp@lcr
-            \d@llarbegin                % after \hbox ...
-    \else
-        \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop
-                        \else\ifnum\currentgrouptype=12\vcenter
-                        \else\vbox\fi\fi}%
-        \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup
-            \let\tabu@verticalspacing \tabu@verticalsp@pmb
-    \fi
-}% \tabu@verticalmeasure
-\def\tabu@verticalsp@lcr{%
-    \d@llarend \egroup       % <got my \tabu@box>
-    \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep
-    \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax
-        \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi
-    \ifdim \tabu@ht<\@tempdima    \tabu@htdef{\the\@tempdima}\fi
-    \ifdim \tabu@dp<\@tempdimb    \tabu@dpdef{\the\@tempdimb}\fi
-    \noindent\vrule height\@tempdima depth\@tempdimb
-}% \tabu@verticalsp@lcr
-\def\tabu@verticalsp@pmb{% inserts struts as needed
-    \par \expandafter\egroup
-            \expandafter$\expandafter
-                    \egroup \expandafter
-                            \@tempdimc \the\prevdepth
-    \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep
-    \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax
-        \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi
-    \ifdim \tabu@ht<\@tempdima    \tabu@htdef{\the\@tempdima}\fi
-    \ifdim \tabu@dp<\@tempdimb    \tabu@dpdef{\the\@tempdimb}\fi
-    \let\@finalstrut \@gobble
-    \hrule height\@tempdima depth\@tempdimb width\hsize
-%%    \box\tabu@box
-}% \tabu@verticalsp@pmb
-
-\def\tabu@verticalinit{%
-    \ifnum \c@taburow=\z@ \tabu@rearstrut \fi       % after \tabu@reset !
-    \advance\c@taburow \@ne
-    \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}%
-    \advance\c@taburow \m@ne
-}% \tabu@verticalinit
-\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname}
-\def\tabu@ht                      {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname}
-\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname}
-\def\tabu@dp                      {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname}
-\def\tabu@verticaldynamicadjustment {%
-    \advance\c@taburow \@ne
-        \extrarowheight \dimexpr\tabu@ht - \ht\strutbox
-        \extrarowdepth  \dimexpr\tabu@dp - \dp\strutbox
-        \let\arraystretch \@empty
-    \advance\c@taburow \m@ne
-}% \tabu@verticaldynamicadjustment
-\def\tabuphantomline{\crcr \noalign{%
-    {\globaldefs \@ne
-        \setbox\@arstrutbox     \box\voidb@x
-        \let\tabu@@celllalign   \tabu@celllalign
-        \let\tabu@@cellralign   \tabu@cellralign
-        \let\tabu@@cellleft     \tabu@cellleft
-        \let\tabu@@cellright    \tabu@cellright
-        \let\tabu@@thevline     \tabu@thevline
-        \let\tabu@celllalign    \@empty
-        \let\tabu@cellralign    \@empty
-        \let\tabu@cellright     \@empty
-        \let\tabu@cellleft      \@empty
-        \let\tabu@thevline      \relax}%
-    \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}%
-    \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr
-        \noalign{\tabu@rearstrut
-            {\globaldefs\@ne
-                \let\tabu@celllalign \tabu@@celllalign
-                \let\tabu@cellralign \tabu@@cellralign
-                \let\tabu@cellleft   \tabu@@cellleft
-                \let\tabu@cellright  \tabu@@cellright
-                \let\tabu@thevline   \tabu@@thevline}}}%
-    \expandafter}\the\toks@
-}% \tabuphantomline
-%% \firsthline and \lasthline corrections ---------------------------
-\def\tabu@firstline {\tabu@hlineAZ  \tabu@firsthlinecorrection     {}}
-\def\tabu@firsthline{\tabu@hlineAZ  \tabu@firsthlinecorrection \hline}
-\def\tabu@lastline  {\tabu@hlineAZ  \tabu@lasthlinecorrection      {}}
-\def\tabu@lasthline {\tabu@hlineAZ  \tabu@lasthlinecorrection  \hline}
-\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument)
-    \noalign{\ifnum0=`}\fi
-    {\CT@arc@\hrule height\arrayrulewidth}%
-    \futurelet \tabu@temp \tabu@xhline
-}% \tabu@hline
-\def\tabu@xhline{%
-    \ifx \tabu@temp \hline
-        {\ifx \CT@drsc@\relax \vskip
-         \else\ifx \CT@drsc@\@empty \vskip
-         \else \CT@drsc@\hrule height
-         \fi\fi
-         \doublerulesep}%
-    \fi
-    \ifnum0=`{\fi}%
-}% \tabu@xhline
-\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@
-    \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}%
-    \tabu@hlineAZsurround
-}% \tabu@hlineAZ
-\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{%
-    \extratabsurround #1\let\tabucline \tabucline@scan
-    \let\hline     \tabu@hlinescan \let\firsthline \hline
-    \let\cline     \tabu@clinescan \let\lasthline  \hline
-    \expandafter \futurelet \expandafter \tabu@temp
-                \expandafter \tabu@nexthlineAZ \tabu@temp
-}% \tabu@hlineAZsurround
-\def\tabu@hlinescan   {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline}
-\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}}
-\def\tabucline@scan{\@testopt \tabucline@sc@n {}}
-\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}}
-\def\tabu@nexthlineAZ{%
-    \ifx \tabu@temp\hline \else
-    \ifx \tabu@temp\cline \else
-    \ifx \tabu@temp\tabucline \else
-         \tabu@hlinecorrection
-    \fi\fi\fi
-}% \tabu@nexthlineAZ
-\def\tabu@xhlineAZ #1{%
-    \toks@\expandafter{\the\toks@ #1}%
-    \@tempdimc \tabu@thick                  % The last line width
-    \ifcase\count@ \@tempdimb \tabu@thick   % The first line width
-    \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax
-    \fi
-    \advance\count@ \@ne    \futurelet \tabu@temp \tabu@nexthlineAZ
-}% \tabu@xhlineAZ
-\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1
-    \@tempdima \dimexpr \ht\@arstrutbox+\dimen@
-    \edef\firsthline{%      <local in \noalign>
-        \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule
-                    height \the\dimexpr\@tempdima+\extratabsurround
-                    depth  \dp\@arstrutbox
-                    width  \tabustrutrule}\hss}\cr
-        \noalign{\vskip -\the\dimexpr   \@tempdima+\@tempdimb
-                                        +\dp\@arstrutbox \relax}%
-        \the\toks@
-   }\ifnum0=`{\fi
-            \expandafter}\firsthline % we are then !
-}% \tabu@firsthlinecorrection
-\def\tabu@lasthlinecorrection{%
-    \@tempdima \dimexpr  \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc
-    \edef\lasthline{%   <local in \noalign>
-        \the\toks@
-        \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}%
-        \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule
-                    depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@
-                                       +\extratabsurround-\@tempdimc
-                    height \z@
-                    width \tabustrutrule}\hss}\cr
-    }\ifnum0=`{\fi
-            \expandafter}\lasthline % we are then !
-}% \tabu@lasthlinecorrection
-\def\tabu@LT@@hline{%
-    \ifx\LT@next\hline
-        \global\let\LT@next \@gobble
-        \ifx \CT@drsc@\relax
-            \gdef\CT@LT@sep{%
-                \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}%
-        \else
-            \gdef\CT@LT@sep{%
-                \multispan\LT@cols{%
-                \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}%
-        \fi
-    \else
-        \global\let\LT@next\empty
-        \gdef\CT@LT@sep{%
-            \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}%
-    \fi
-    \ifnum0=`{\fi}%
-    \multispan\LT@cols
-        {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
-    \CT@LT@sep
-    \multispan\LT@cols
-        {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
-    \noalign{\penalty\@M}%
-    \LT@next
-}% \tabu@LT@@hline
-%% Horizontal lines : \tabucline ------------------------------------
-\let\tabu@start \@tempcnta
-\let\tabu@stop  \@tempcntb
-\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline}
-\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}%
-   \ifnum \tabu@stop<\z@   \toks@{}%
-   \else \tabu@clinearg{#1}\tabu@thestyle
-        \edef\tabucline{\toks@{%
-            \ifnum \tabu@start>\z@ \omit
-                  \tabu@multispan\tabu@start {\span\omit}&\fi
-            \omit \tabu@multispan\tabu@stop {\span\omit}%
-                                        \tabu@thehline\cr
-        }}\tabucline
-        \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}%
-    \fi
-    \futurelet \tabu@temp \tabu@xcline
-}% \tabu@cline
-\def\tabu@clinearg #1{%
-    \ifx\\#1\\\let\tabu@thestyle \tabu@ls@
-    \else \@defaultunits \expandafter\let\expandafter\@tempa
-                                    \romannumeral-`\0#1\relax \@nnil
-        \ifx \hbox\@tempa           \tabu@clinebox{#1}%
-        \else\ifx \box\@tempa       \tabu@clinebox{#1}%
-        \else\ifx \vbox\@tempa      \tabu@clinebox{#1}%
-        \else\ifx \vtop\@tempa      \tabu@clinebox{#1}%
-        \else\ifx \copy\@tempa      \tabu@clinebox{#1}%
-        \else\ifx \leaders\@tempa   \tabu@clineleads{#1}%
-        \else\ifx \cleaders\@tempa  \tabu@clineleads{#1}%
-        \else\ifx \xleaders\@tempa  \tabu@clineleads{#1}%
-        \else\tabu@getline {#1}%
-        \fi\fi\fi\fi\fi\fi\fi\fi
-    \fi
-}% \tabu@clinearg
-\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}}
-\def\tabu@clineleads #1{%
-    \let\tabu@thestyle \relax \let\tabu@leaders \@undefined
-    \gdef\tabu@thehrule{#1}}
-\def\tabu@thehline{\begingroup
-    \ifdefined\tabu@leaders
-            \noexpand\tabu@thehleaders
-    \else   \noexpand\tabu@thehrule
-    \fi            \endgroup
-}% \tabu@thehline
-\def\tabu@xcline{%
-    \ifx \tabu@temp\tabucline
-        \toks@\expandafter{\the\toks@ \noalign
-        {\ifx\CT@drsc@\relax \vskip
-         \else \CT@drsc@\hrule height
-         \fi
-         \doublerulesep}}%
-    \fi
-    \tabu@docline
-}% \tabu@xcline
-\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@}
-\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}%
-              \ifnum0=`{\fi}\aftergroup\tabu@doclineafter}
-\def\tabu@multispan #1#2{%
-    \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan
-    \else                   \expandafter\@gobbletwo
-    \fi  {#1-1}{#2}%
-}% \tabu@multispan
-\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil}
-\def\tabu@start@stop #1-#2\@nnil{%
-   \@defaultunits   \tabu@start\number 0#1\relax    \@nnil
-   \@defaultunits   \tabu@stop \number 0#2\relax    \@nnil
-   \tabu@stop   \ifnum \tabu@start>\tabu@nbcols     \m@ne
-                \else\ifnum \tabu@stop=\z@          \tabu@nbcols
-                \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols
-                \else                               \tabu@stop
-                \fi\fi\fi
-   \advance\tabu@start \m@ne
-   \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi
-}% \tabu@start@stop
-%% Numbers: siunitx S columns  (and \tabudecimal) -------------------
-\def\tabu@tabudecimal #1{%
-    \def\tabu@decimal{#1}\@temptokena{}%
-    \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces
-    \tabu@scandecimal
-}% \tabu@tabudecimal
-\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@}
-\def\tabu@skipdecimal#1{#1\tabu@scandecimal}
-\def\tabu@getdecimal@ignorespaces{%
-    \ifcase 0\ifx\tabu@temp\ignorespaces\else
-             \ifx\tabu@temp\@sptoken1\else
-             2\fi\fi\relax
-            \let\tabu@getdecimal@ \tabu@getdecimal
-            \expandafter\tabu@skipdecimal
-    \or     \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal
-    \else   \expandafter\tabu@skipdecimal
-    \fi
-}% \tabu@getdecimal@ignorespaces
-\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}%
-                        \tabu@scandecimal}
-\def\do#1{%
-    \def\tabu@get@decimalspace#1{%
-        \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}%
-}\do{ }
-\let\tabu@@tabudecimal \tabu@tabudecimal
-\def\tabu@getdecimal{%
-   \ifcase    0\ifx 0\tabu@temp\else
-               \ifx 1\tabu@temp\else
-               \ifx 2\tabu@temp\else
-               \ifx 3\tabu@temp\else
-               \ifx 4\tabu@temp\else
-               \ifx 5\tabu@temp\else
-               \ifx 6\tabu@temp\else
-               \ifx 7\tabu@temp\else
-               \ifx 8\tabu@temp\else
-               \ifx 9\tabu@temp\else
-               \ifx .\tabu@temp\else
-               \ifx ,\tabu@temp\else
-               \ifx -\tabu@temp\else
-               \ifx +\tabu@temp\else
-               \ifx e\tabu@temp\else
-               \ifx E\tabu@temp\else
-               \ifx\tabu@cellleft\tabu@temp1\else
-               \ifx\ignorespaces\tabu@temp1\else
-               \ifx\@sptoken\tabu@temp2\else
-            3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax
-       \expandafter\tabu@get@decimal
-   \or \expandafter\tabu@skipdecimal
-   \or \expandafter\tabu@get@decimalspace
-   \else\expandafter\tabu@printdecimal
-   \fi
-}% \tabu@getdecimal
-\def\tabu@printdecimal{%
-    \edef\tabu@temp{\the\@temptokena}%
-    \ifx\tabu@temp\@empty\else
-    \ifx\tabu@temp\space\else
-        \expandafter\tabu@decimal\expandafter{\the\@temptokena}%
-    \fi\fi
-}% \tabu@printdecimal
-%% Verbatim inside X columns ----------------------------------------
-\def\tabu@verbatim{%
-    \let\verb \tabu@verb
-    \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd
-}% \tabu@verbatim
-\let\tabu@ltx@verb \verb
-\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb}
-\def\tabu@fancyvrb {%
-    \def\tabu@FV@DefineCheckEnd ##1{%
-        \def\tabu@FV@DefineCheckEnd{%
-            ##1% <original definition (if fancyvrb is loaded)>
-            \let\FV@CheckEnd     \tabu@FV@CheckEnd
-            \let\FV@@CheckEnd    \tabu@FV@@CheckEnd
-            \let\FV@@@CheckEnd   \tabu@FV@@@CheckEnd
-            \edef\FV@EndScanning{%
-            \def\noexpand\next{\noexpand\end{\FV@EnvironName}}%
-                \global\let\noexpand\FV@EnvironName\relax
-                \noexpand\next}%
-            \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}%
-    }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd}
-}% \tabu@fancyvrb
-\def\tabu@FV@CheckEnd  #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil}
-\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}}
-\begingroup
-\catcode`\[1      \catcode`\]2
-\@makeother\{     \@makeother\}
-   \edef\x[\endgroup
-      \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3%
-   ]\x               \@nil{\def\@tempa{#2}\def\@tempb{#3}}
-\def\tabu@FV@ListProcessLine #1{%
-  \hbox {%to \hsize{%
-    \kern\leftmargin
-    \hbox {%to \linewidth{%
-      \FV@LeftListNumber
-      \FV@LeftListFrame
-      \FancyVerbFormatLine{#1}\hss
-%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on)
-%%      \FV@RightListFrame}%
-      \FV@RightListFrame
-      \FV@RightListNumber}%
-%% DG/SR modification end
-    \hss}}
-%% \savetabu --------------------------------------------------------
-\newcommand*\savetabu[1]{\noalign{%
-    \tabu@sanitizearg{#1}\tabu@temp
-    \ifx \tabu@temp\@empty  \tabu@savewarn{}{The tabu will not be saved}\else
-        \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}%
-        \ifdefined\tabu@restored \expandafter\let
-            \csname tabu@saved@\tabu@temp \endcsname \tabu@restored
-        \else {\tabu@save}%
-        \fi
-    \fi}%
-}% \savetabu
-\def\tabu@save {%
-    \toks0\expandafter{\tabu@saved@}%
-    \iftabu@negcoef
-        \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}%
-        \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi
-    \toks1\expandafter{\tabu@savedpream}%
-    \toks2\expandafter{\tabu@savedpreamble}%
-    \let\@preamble \relax
-    \let\tabu@savedpream \relax \let\tabu@savedparams \relax
-    \edef\tabu@preamble{%
-        \def\noexpand\tabu@aligndefault{\tabu@align}%
-        \def\tabu@savedparams {\noexpand\the\toks0}%
-        \def\tabu@savedpream  {\noexpand\the\toks1}}%
-    \edef\tabu@usetabu{%
-        \def\@preamble {\noexpand\the\toks2}%
-        \tabu@target \the\tabu@target \relax
-        \tabucolX    \the\tabucolX    \relax
-        \tabu@nbcols \the\tabu@nbcols \relax
-        \def\noexpand\tabu@aligndefault{\tabu@align}%
-        \def\tabu@savedparams {\noexpand\the\toks0}%
-        \def\tabu@savedpream  {\noexpand\the\toks1}}%
-    \let\tabu@aligndefault \relax \let\@sharp \relax
-    \edef\@tempa{\noexpand\tabu@s@ved
-                          {\tabu@usetabu}
-                         {\tabu@preamble}
-                            {\the\toks1}}\@tempa
-    \tabu@message@save
-}% \tabu@save
-\long\def\tabu@s@ved #1#2#3{%
-    \def\tabu@usetabu{#1}% <for \tabu@message@save>
-    \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{%
-        \ifodd ##1%     \usetabu
-            \tabu@measuringfalse \tabu@spreadfalse  % Just in case...
-            \gdef\tabu@usetabu {%
-                \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi
-                \global\let\tabu@usetabu \@undefined
-                \def\@halignto {to\tabu@target}%
-                #1%
-                \ifx \tabu@align\tabu@aligndefault@text
-                \ifnum \tabu@nested=\z@
-                       \let\tabu@align \tabu@aligndefault \fi\fi}%
-        \else     %     \preamble
-            \gdef\tabu@preamble {%
-                \global\let\tabu@preamble \@undefined
-                #2%
-                \ifx \tabu@align\tabu@aligndefault@text
-                \ifnum \tabu@nested=\z@
-                       \let\tabu@align \tabu@aligndefault \fi\fi}%
-        \fi
-        #3}%
-}% \tabu@s@ved
-\def\tabu@aligndefault@text {\tabu@aligndefault}%
-\def\tabu@warn@usetabu {\PackageWarning{tabu}
-    {Specifying a target with \string\usetabu\space is useless
-    \MessageBreak The target cannot be changed!}}
-\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi}
-\def\tabu@savewarn#1#2{\PackageInfo{tabu}
-    {User-name `#1' already used for \string\savetabu
-    \MessageBreak #2}}%
-\def\tabu@saveerr#1{\PackageError{tabu}
-    {User-name `#1' is unknown for \string\usetabu
-    \MessageBreak I cannot restore an unknown preamble!}\@ehd}
-%% \rowfont ---------------------------------------------------------
-\newskip \tabu@cellskip
-\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi
-                    {\ifnum0=`}\fi    \tabu@row@font}
-\newcommand*\tabu@row@font[2][]{%
-    \ifnum7=\currentgrouptype
-        \global\let\tabu@@cellleft    \tabu@cellleft
-        \global\let\tabu@@cellright   \tabu@cellright
-        \global\let\tabu@@celllalign  \tabu@celllalign
-        \global\let\tabu@@cellralign  \tabu@cellralign
-        \global\let\tabu@@rowfontreset\tabu@rowfontreset
-    \fi
-    \global\let\tabu@rowfontreset \tabu@rowfont@reset
-    \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}%
-    \ifcsname tabu@cell@#1\endcsname       % row alignment
-            \csname tabu@cell@#1\endcsname \fi
-    \ifnum0=`{\fi}% end of group / noalign group
-}% \rowfont
-\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}%
-\def\tabu@rowfont@reset{%
-    \global\let\tabu@rowfontreset \tabu@@rowfontreset
-    \global\let\tabu@cellleft     \tabu@@cellleft
-    \global\let\tabu@cellright    \tabu@@cellright
-    \global\let\tabu@cellfont     \@empty
-    \global\let\tabu@celllalign   \tabu@@celllalign
-    \global\let\tabu@cellralign   \tabu@@cellralign
-}% \tabu@@rowfontreset
-\let\tabu@rowfontreset \@empty     % overwritten \AtBeginDocument if colortbl
-%% \tabu@prepnext@tok -----------------------------------------------
-\newif \iftabu@cellright
-\def\tabu@prepnext@tok{%
-    \ifnum \count@<\z@   % <first initialisation>
-            \@tempcnta  \@M   % <not initialized by array.sty>
-            \tabu@nbcols\z@
-            \let\tabu@fornoopORI \@fornoop
-            \tabu@cellrightfalse
-    \else
-        \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left
-                \advance \tabu@nbcols \@ne
-                \iftabu@cellright % before-previous token is right and is finished
-                    \tabu@cellrightfalse % <only once>
-                    \tabu@righttok
-                \fi
-                \tabu@lefttok
-        \or                     % (case 1) previous token is right
-                \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop
-        \else % special column: do not change the token
-                \iftabu@cellright    % before-previous token is right
-                    \tabu@cellrightfalse
-                    \tabu@righttok
-                \fi
-        \fi % \ifcase
-    \fi
-    \tabu@prepnext@tokORI
-}% \tabu@prepnext@tok
-\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@}
-\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{%
-    \ifx \in@#2\else
-        \let\@fornoop \tabu@fornoopORI
-        \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}%
-        \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}%
-        \expandafter\prepnext@tok
-    \fi
-}% \tabu@lastnoop
-\def\tabu@righttok{%
-    \advance \count@ \m@ne
-    \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}%
-    \advance \count@ \@ne
-}% \tabu@righttok
-\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign
-                                    \the\toks\count@ \tabu@cellleft}% after because of $
-}% \tabu@lefttok
-%% Neutralisation of glues ------------------------------------------
-\let\tabu@cellleft   \@empty
-\let\tabu@cellright  \@empty
-\tabu@celllalign@def{\tabu@cellleft}%
-\let\tabu@cellralign \@empty
-\def\tabu@cell@align #1#2#3{%
-    \let\tabu@maybesiunitx \toks@ \tabu@celllalign
-    \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}%
-    \toks@\expandafter{\tabu@cellralign #2}%
-    \xdef\tabu@cellralign{\the\toks@}%
-    \toks@\expandafter{\tabu@cellleft #3}%
-    \xdef\tabu@cellleft{\the\toks@}%
-}% \tabu@cell@align
-\def\tabu@cell@l{% force alignment to left
-   \tabu@cell@align
-      {\tabu@removehfil \raggedright \tabu@cellleft}% left
-      {\tabu@flush1\tabu@ignorehfil}%                 right
-      \raggedright
-}% \tabu@cell@l
-\def\tabu@cell@c{% force alignment to center
-   \tabu@cell@align
-      {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft}
-      {\tabu@flush{.5}\tabu@ignorehfil}
-      \centering
-}% \tabu@cell@c
-\def\tabu@cell@r{% force alignment to right
-   \tabu@cell@align
-      {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft}
-      \tabu@ignorehfil
-      \raggedleft
-}% \tabu@cell@r
-\def\tabu@cell@j{% force justification (for p, m, b columns)
-      \tabu@cell@align
-         {\tabu@justify\tabu@cellleft}
-         {}
-         \tabu@justify
-}% \tabu@cell@j
-\def\tabu@justify{%
-   \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip
-   \parfillskip\@flushglue
-}% \tabu@justify
-%% ragged2e settings
-\def\tabu@cell@L{% force alignment to left (ragged2e)
-   \tabu@cell@align
-      {\tabu@removehfil \RaggedRight \tabu@cellleft}
-      {\tabu@flush 1\tabu@ignorehfil}
-      \RaggedRight
-}% \tabu@cell@L
-\def\tabu@cell@C{% force alignment to center (ragged2e)
-   \tabu@cell@align
-      {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft}
-      {\tabu@flush{.5}\tabu@ignorehfil}
-      \Centering
-}% \tabu@cell@C
-\def\tabu@cell@R{% force alignment to right (ragged2e)
-   \tabu@cell@align
-      {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft}
-      \tabu@ignorehfil
-      \RaggedLeft
-}% \tabu@cell@R
-\def\tabu@cell@J{% force justification (ragged2e)
-   \tabu@cell@align
-      {\justifying \tabu@cellleft}
-      {}
-      \justifying
-}% \tabu@cell@J
-\def\tabu@flush#1{%
-    \iftabu@colortbl      % colortbl uses \hfill rather than \hfil
-        \hskip \ifnum13<\currentgrouptype \stretch{#1}%
-        \else  \ifdim#1pt<\p@ \tabu@cellskip
-        \else  \stretch{#1}
-        \fi\fi \relax
-    \else                % array.sty
-        \ifnum 13<\currentgrouptype
-                \hfil \hskip1sp \relax  \fi
-    \fi
-}% \tabu@flush
-\let\tabu@hfil  \hfil
-\let\tabu@hfill \hfill
-\let\tabu@hskip \hskip
-\def\tabu@removehfil{%
-    \iftabu@colortbl
-        \unkern \tabu@cellskip =\lastskip
-        \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip
-        \else \tabu@cellskip \z@skip
-        \fi
-    \else
-        \ifdim\lastskip=1sp\unskip\fi
-        \ifnum\gluestretchorder\lastskip =\@ne
-            \hfilneg % \hfilneg for array.sty but not for colortbl...
-        \fi
-    \fi
-}% \tabu@removehfil
-\def\tabu@ignorehfil{\aftergroup \tabu@nohfil}
-\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil
-   \def\hfil{\let\hfil \tabu@hfil}%   local to (alignment template) group
-}% \tabu@nohfil
-\def\tabu@colortblalignments {% if colortbl
-    \def\tabu@nohfil{%
-        \def\hfil  {\let\hfil \tabu@hfil}% local to (alignment template) group
-        \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff...
-        \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local
-}% \tabu@colortblalignments
-%% Taking care of footnotes and hyperfootnotes ----------------------
-\long\def\tabu@footnotetext #1{%
-   \edef\@tempa{\the\tabu@footnotes
-      \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}%
-   \global\tabu@footnotes\expandafter{\@tempa {#1}}}%
-\long\def\tabu@xfootnotetext [#1]#2{%
-   \global\tabu@footnotes\expandafter{\the\tabu@footnotes
-                               \footnotetext [{#1}]{#2}}}
-\let\tabu@xfootnote \@xfootnote
-\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }}
-\long\def\tabu@Hy@xfootnote [#1]{%
-   \begingroup
-      \value\@mpfn #1\relax
-      \protected@xdef \@thefnmark  {\thempfn}%
-   \endgroup
-   \@footnotemark \tabu@Hy@ftntxt {#1}%
-}% \tabu@Hy@xfootnote
-\long\def\tabu@Hy@ftntxt #1#2{%
-    \edef\@tempa{%
-        \the\tabu@footnotes
-        \begingroup
-            \value\@mpfn #1\relax
-            \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}%
-            \expandafter \noexpand \expandafter
-                \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}%
-    }%
-    \global\tabu@footnotes\expandafter{\@tempa {#2}%
-                                         \endgroup}%
-}% \tabu@Hy@ftntxt
-\long\def\tabu@Hy@footnotetext #1#2{%
-    \H@@footnotetext{%
-        \ifHy@nesting
-            \hyper@@anchor {#1}{#2}%
-        \else
-            \Hy@raisedlink{%
-                \hyper@@anchor {#1}{\relax}%
-            }%
-            \def\@currentHref {#1}%
-            \let\@currentlabelname \@empty
-            #2%
-        \fi
-    }%
-}% \tabu@Hy@footnotetext
-%% No need for \arraybackslash ! ------------------------------------
-\def\tabu@latextwoe {%
-\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}}
-\tabu@temp \tabu@centering   \centering   \arraybackslash
-\tabu@temp \tabu@raggedleft  \raggedleft  \arraybackslash
-\tabu@temp \tabu@raggedright \raggedright \arraybackslash
-}% \tabu@latextwoe
-\def\tabu@raggedtwoe {%
-\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}}
-\tabu@temp \tabu@Centering   \Centering   \arraybackslash
-\tabu@temp \tabu@RaggedLeft  \RaggedLeft  \arraybackslash
-\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash
-\tabu@temp \tabu@justifying  \justifying  \arraybackslash
-}% \tabu@raggedtwoe
-\def\tabu@normalcrbackslash{\let\\\@normalcr}
-\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{%
-                       \expandafter\tabu@normalcrbackslash \@trivlist}}
-%% Utilities: \fbox  \fcolorbox  and \tabudecimal -------------------
-\def\tabu@fbox      {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox}
-\def\tabu@beginfbox {\bgroup \kern\fboxsep
-                     \bgroup\aftergroup\tabu@endfbox}
-\def\tabu@endfbox   {\kern\fboxsep\egroup\egroup
-                     \@frameb@x\relax}
-\def\tabu@color@b@x #1#2{\leavevmode \bgroup
-    \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}%
-    \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox
-}% \tabu@color@b@x
-\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup
-       \aftergroup\tabu@endcolor@b@x \set@color}
-\def\tabu@endcolor@b@x {\kern\fboxsep \egroup
-    \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@
-    \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@
-    \tabu@docolor@b@x \egroup
-}% \tabu@endcolor@b@x
-%% Corrections (arydshln, delarray, colortbl) -----------------------
-\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray
-    \iftabu@colortbl
-        \ifdefined\adl@array  % <colortbl + arydshln>
-        \def\tabu@endarray{%
-            \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup %<original>
-            \@arrayright      % <FC>
-            \gdef\@preamble{}}% <FC>
-        \else                 % <colortbl / no arydshln>
-        \def\tabu@endarray{%
-            \crcr \egroup \egroup    %<original>
-            \@arrayright             % <FC>
-            \gdef\@preamble{}\CT@end}%
-        \fi
-    \else
-        \ifdefined\adl@array  % <arydshln / no colortbl>
-        \def\tabu@endarray{%
-            \adl@endarray \egroup \adl@arrayrestore \egroup %<original>
-            \@arrayright      % <FC>
-            \gdef\@preamble{}}% <FC>
-    \else                   % <no arydshln / no colotbl + \@arrayright missing>
-        \PackageWarning{tabu}
-        {\string\@arrayright\space is missing from the
-        \MessageBreak definition of \string\endarray.
-        \MessageBreak Compatibility with delarray.sty is broken.}%
-    \fi\fi
-}% \tabu@fix@arrayright
-\def\tabu@adl@xarraydashrule #1#2#3{%
-     \ifnum\@lastchclass=\adl@class@start\else
-     \ifnum\@lastchclass=\@ne\else
-     \ifnum\@lastchclass=5 \else % <FC> @-arg (class 5) and !-arg (class 1)
-             \adl@leftrulefalse \fi\fi           % must be treated the same
-     \fi
-     \ifadl@zwvrule\else \ifadl@inactive\else
-             \@addtopreamble{\vrule\@width\arrayrulewidth
-                     \@height\z@ \@depth\z@}\fi \fi
-     \ifadl@leftrule
-             \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}%
-                     {\number#1}#3}%
-     \else   \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}%
-                     {\number#2}#3}
-     \fi
-}% \tabu@adl@xarraydashrule
-\def\tabu@adl@act@endpbox {%
-    \unskip \ifhmode \nobreak \fi    \@finalstrut \@arstrutbox
-    \egroup \egroup
-    \adl@colhtdp \box\adl@box \hfil
-}% \tabu@adl@act@endpbox
-\def\tabu@adl@fix {%
-    \let\adl@xarraydashrule \tabu@adl@xarraydashrule % <fix> arydshln
-    \let\adl@act@endpbox    \tabu@adl@act@endpbox    % <fix> arydshln
-    \let\adl@act@@endpbox   \tabu@adl@act@endpbox    % <fix> arydshln
-    \let\@preamerror        \@preamerr               % <fix> arydshln
-}% \tabu@adl@fix
-%% Correction for longtable' \@startbox definition ------------------
-%%    => \everypar is ``missing'' : TeX should be in vertical mode
-\def\tabu@LT@startpbox #1{%
-    \bgroup
-        \let\@footnotetext\LT@p@ftntext
-        \setlength\hsize{#1}%
-        \@arrayparboxrestore
-        \everypar{%
-            \vrule \@height \ht\@arstrutbox \@width \z@
-            \everypar{}}%
-}% \tabu@LT@startpbox
-%% \tracingtabu  and  the package options ------------------
-\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}}
-\DeclareOption{linegoal}{%
-   \AtEndOfPackage{%
-      \RequirePackage{linegoal}[2010/12/07]%
-      \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX
-}}
-\DeclareOption{scantokens}{\tabuscantokenstrue}
-\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}}
-\def\tracingtabu {\begingroup\@ifnextchar=%
-    {\afterassignment\tabu@tracing\count@}
-    {\afterassignment\tabu@tracing\count@1\relax}}
-\def\tabu@tracing{\expandafter\endgroup
-    \expandafter\tabu@tr@cing \the\count@ \relax
-}% \tabu@tracing
-\def\tabu@tr@cing #1\relax {%
-    \ifnum#1>\thr@@ \let\tabu@tracinglines\message
-    \else           \let\tabu@tracinglines\@gobble
-    \fi
-    \ifnum#1>\tw@   \let\tabu@DBG        \tabu@@DBG
-                    \def\tabu@mkarstrut {\tabu@DBG@arstrut}%
-                    \tabustrutrule      1.5\p@
-    \else           \let\tabu@DBG        \@gobble
-                    \def\tabu@mkarstrut {\tabu@arstrut}%
-                    \tabustrutrule      \z@
-    \fi
-    \ifnum#1>\@ne   \let\tabu@debug      \message
-    \else           \let\tabu@debug      \@gobble
-    \fi
-    \ifnum#1>\z@
-        \let\tabu@message             \message
-        \let\tabu@tracing@save        \tabu@message@save
-        \let\tabu@starttimer          \tabu@pdftimer
-    \else
-        \let\tabu@message             \@gobble
-        \let\tabu@tracing@save        \@gobble
-        \let\tabu@starttimer          \relax
-    \fi
-}% \tabu@tr@cing
-%% Setup \AtBeginDocument
-\AtBeginDocument{\tabu@AtBeginDocument}
-\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined
-    \ifdefined\arrayrulecolor   \tabu@colortbltrue       % <colortbl>
-                                \tabu@colortblalignments % different glues are used
-    \else                       \tabu@colortblfalse \fi
-    \ifdefined\CT@arc@ \else \let\CT@arc@  \relax \fi
-    \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi
-    \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@
-    \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname   % <siunitx: ok>
-            \expandafter\ifx
-                \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax
-            \tabu@siunitxtrue
-    \else   \let\tabu@maybesiunitx   \@firstofone                % <not siunitx: setup>
-            \let\tabu@siunitx        \tabu@nosiunitx
-            \tabu@siunitxfalse
-    \fi
-    \ifdefined\adl@array        % <arydshln>
-    \else     \let\tabu@adl@fix \relax
-              \let\tabu@adl@endtrial \@empty \fi
-    \ifdefined\longtable        % <longtable>
-    \else     \let\longtabu \tabu@nolongtabu \fi
-    \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi
-    \csname\ifcsname ifHy@hyperfootnotes\endcsname % <hyperfootnotes>
-            ifHy@hyperfootnotes\else iffalse\fi\endcsname
-        \let\tabu@footnotetext \tabu@Hy@ftntext
-        \let\tabu@xfootnote    \tabu@Hy@xfootnote \fi
-    \ifdefined\FV@DefineCheckEnd% <fancyvrb>
-            \tabu@fancyvrb  \fi
-    \ifdefined\color            % <color / xcolor>
-        \let\tabu@color \color
-        \def\tabu@leavevmodecolor ##1{%
-            \def\tabu@leavevmodecolor {\leavevmode ##1}%
-        }\expandafter\tabu@leavevmodecolor\expandafter{\color}%
-    \else
-        \let\tabu@color           \tabu@nocolor
-        \let\tabu@leavevmodecolor \@firstofone \fi
-    \tabu@latextwoe
-    \ifdefined\@raggedtwoe@everyselectfont    % <ragged2e>
-        \tabu@raggedtwoe
-    \else
-        \let\tabu@cell@L \tabu@cell@l
-        \let\tabu@cell@R \tabu@cell@r
-        \let\tabu@cell@C \tabu@cell@c
-        \let\tabu@cell@J \tabu@cell@j   \fi
-    \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}%
-    \ifin@ \let\tabu@endarray \endarray
-    \else  \tabu@fix@arrayright \fi% <fix for colortbl & arydshln (delarray)>
-    \everyrow{}%
-}% \tabu@AtBeginDocument
-\def\tabu@warn@cellspace{%
-    \PackageWarning{tabu}{%
-                  Package cellspace has some limitations
-    \MessageBreak And redefines some macros of array.sty.
-    \MessageBreak Please use \string\tabulinesep\space to control
-    \MessageBreak vertical spacing of lines inside tabu environment}%
-}% \tabu@warn@cellspace
-%% tabu Package initialisation
-\tabuscantokensfalse
-\let\tabu@arc@G         \relax
-\let\tabu@drsc@G        \relax
-\let\tabu@evr@G         \@empty
-\let\tabu@rc@G          \@empty
-\def\tabu@ls@G          {\tabu@linestyle@}%
-\let\tabu@@rowfontreset \@empty % <init>
-\let\tabu@@celllalign   \@empty
-\let\tabu@@cellralign   \@empty
-\let\tabu@@cellleft     \@empty
-\let\tabu@@cellright    \@empty
-\def\tabu@naturalXmin   {\z@}
-\def\tabu@naturalXmax   {\z@}
-\let\tabu@rowfontreset  \@empty
-\def\tabulineon {4pt}\let\tabulineoff \tabulineon
-\tabu@everyrowtrue
-\ifdefined\pdfelapsedtime                   % <pdfTeX>
-        \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}%
-\else   \let\tabu@pdftimer \relax \let\tabu@message@etime \relax
-\fi
-\tracingtabu=\z@
-\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@
-\tabulinestyle{}
-\taburowcolors{}
-\let\tabudefaulttarget  \linewidth
-\ProcessOptions*                % \ProcessOptions* is quicker !
-\endinput
-%%
-%% End of file `tabu.sty'.

+ 0 - 61
docs/latex/template_8h_source.tex

@@ -1,61 +0,0 @@
-\hypertarget{template_8h_source}{}\doxysection{template.\+h}
-\label{template_8h_source}\index{include/toolbox/template.h@{include/toolbox/template.h}}
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef TOOLBOX\_TEMPLATE\_H}}
-\DoxyCodeLine{2 \textcolor{preprocessor}{\#define TOOLBOX\_TEMPLATE\_H}}
-\DoxyCodeLine{3 }
-\DoxyCodeLine{4 \textcolor{preprocessor}{\#define CASE\_1\_BYTE case CHAR:  case UCHAR: case UINT8}}
-\DoxyCodeLine{5 }
-\DoxyCodeLine{6 \textcolor{preprocessor}{\#define CASE\_2\_BYTE                                                     \(\backslash\)}}
-\DoxyCodeLine{7 \textcolor{preprocessor}{    case SHORT:                                                         \(\backslash\)}}
-\DoxyCodeLine{8 \textcolor{preprocessor}{    case USHORT:                                                        \(\backslash\)}}
-\DoxyCodeLine{9 \textcolor{preprocessor}{    case INT:                                                           \(\backslash\)}}
-\DoxyCodeLine{10 \textcolor{preprocessor}{    case UINT:                                                          \(\backslash\)}}
-\DoxyCodeLine{11 \textcolor{preprocessor}{    case UINT16}}
-\DoxyCodeLine{12 }
-\DoxyCodeLine{13 \textcolor{preprocessor}{\#define CASE\_4\_BYTE                                                     \(\backslash\)}}
-\DoxyCodeLine{14 \textcolor{preprocessor}{    case LONG:                                                          \(\backslash\)}}
-\DoxyCodeLine{15 \textcolor{preprocessor}{    case LONGINT:                                                       \(\backslash\)}}
-\DoxyCodeLine{16 \textcolor{preprocessor}{    case ULONG:                                                         \(\backslash\)}}
-\DoxyCodeLine{17 \textcolor{preprocessor}{    case ULONGINT:                                                      \(\backslash\)}}
-\DoxyCodeLine{18 \textcolor{preprocessor}{    case FLOAT:                                                         \(\backslash\)}}
-\DoxyCodeLine{19 \textcolor{preprocessor}{    case UINT32}}
-\DoxyCodeLine{20 }
-\DoxyCodeLine{21 \textcolor{preprocessor}{\#define CASE\_8\_BYTE                                                     \(\backslash\)}}
-\DoxyCodeLine{22 \textcolor{preprocessor}{    case LONGLONG:                                                      \(\backslash\)}}
-\DoxyCodeLine{23 \textcolor{preprocessor}{    case LONGLONGINT:                                                   \(\backslash\)}}
-\DoxyCodeLine{24 \textcolor{preprocessor}{    case ULONGLONG:                                                     \(\backslash\)}}
-\DoxyCodeLine{25 \textcolor{preprocessor}{    case ULONGLONGINT:                                                  \(\backslash\)}}
-\DoxyCodeLine{26 \textcolor{preprocessor}{    case DOUBLE:                                                        \(\backslash\)}}
-\DoxyCodeLine{27 \textcolor{preprocessor}{    case UINT64}}
-\DoxyCodeLine{28 }
-\DoxyCodeLine{29 \textcolor{keyword}{enum} generic\_type \{}
-\DoxyCodeLine{30     CHAR,}
-\DoxyCodeLine{31     UCHAR,}
-\DoxyCodeLine{32     UINT8,}
-\DoxyCodeLine{33 }
-\DoxyCodeLine{34     SHORT,}
-\DoxyCodeLine{35     USHORT,}
-\DoxyCodeLine{36     INT,}
-\DoxyCodeLine{37     UINT,}
-\DoxyCodeLine{38     UINT16,}
-\DoxyCodeLine{39 }
-\DoxyCodeLine{40     LONG,}
-\DoxyCodeLine{41     LONGINT,}
-\DoxyCodeLine{42     ULONG,}
-\DoxyCodeLine{43     ULONGINT,}
-\DoxyCodeLine{44     FLOAT,}
-\DoxyCodeLine{45     UINT32,}
-\DoxyCodeLine{46 }
-\DoxyCodeLine{47     LONGLONG,}
-\DoxyCodeLine{48     LONGLONGINT,}
-\DoxyCodeLine{49     ULONGLONG,}
-\DoxyCodeLine{50     ULONGLONGINT,}
-\DoxyCodeLine{51     DOUBLE,}
-\DoxyCodeLine{52     UINT64,}
-\DoxyCodeLine{53 \};}
-\DoxyCodeLine{54 }
-\DoxyCodeLine{55 \textcolor{preprocessor}{\#endif}}
-
-\end{DoxyCode}

+ 0 - 40
docs/latex/tui_8h_source.tex

@@ -1,40 +0,0 @@
-\hypertarget{tui_8h_source}{}\doxysection{tui.\+h}
-\label{tui_8h_source}\index{include/toolbox/tui.h@{include/toolbox/tui.h}}
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef TOOLBOX\_TUI\_H}}
-\DoxyCodeLine{2 \textcolor{preprocessor}{\#define TOOLBOX\_TUI\_H}}
-\DoxyCodeLine{3 }
-\DoxyCodeLine{4 \textcolor{preprocessor}{\#include "{}toolbox/vec2/vec2\_uint16.h"{}}}
-\DoxyCodeLine{5 }
-\DoxyCodeLine{6 \textcolor{preprocessor}{\#include <stdint.h>}}
-\DoxyCodeLine{7 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
-\DoxyCodeLine{8 \textcolor{preprocessor}{\#include <sys/types.h>}}
-\DoxyCodeLine{9 }
-\DoxyCodeLine{10 \textcolor{preprocessor}{\#ifdef TOOLBOX\_TYPEDEF}}
-\DoxyCodeLine{11 \textcolor{keyword}{typedef} \textcolor{keyword}{struct }\mbox{\hyperlink{structwindow}{window}} window\_st;}
-\DoxyCodeLine{12 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{13 }
-\DoxyCodeLine{14 \textcolor{keyword}{struct }\mbox{\hyperlink{structwindow}{window}};}
-\DoxyCodeLine{15 }
-\DoxyCodeLine{16 \_\_attribute\_\_((\_\_deprecated\_\_(\textcolor{stringliteral}{"{}This is trash"{}})))}
-\DoxyCodeLine{17 struct \mbox{\hyperlink{structwindow}{window}}* win\_create(\textcolor{keywordtype}{void});}
-\DoxyCodeLine{18 \_\_attribute\_\_((\_\_deprecated\_\_("{}This is trash"{})))}
-\DoxyCodeLine{19 \textcolor{keywordtype}{void} win\_destroy(struct \mbox{\hyperlink{structwindow}{window}} **self);}
-\DoxyCodeLine{20 }
-\DoxyCodeLine{21 \_\_attribute\_\_((\_\_deprecated\_\_("{}This is trash"{})))}
-\DoxyCodeLine{22 \textcolor{keywordtype}{void} tui\_open(const struct \mbox{\hyperlink{structwindow}{window}} *self);}
-\DoxyCodeLine{23 \_\_attribute\_\_((\_\_deprecated\_\_("{}This is trash"{})))}
-\DoxyCodeLine{24 \textcolor{keywordtype}{void} tui\_close(const struct \mbox{\hyperlink{structwindow}{window}} *self);}
-\DoxyCodeLine{25 \_\_attribute\_\_((\_\_deprecated\_\_("{}This is trash"{})))}
-\DoxyCodeLine{26 \textcolor{keywordtype}{void} tui\_clear(const struct \mbox{\hyperlink{structwindow}{window}} *self);}
-\DoxyCodeLine{27 \_\_attribute\_\_((\_\_deprecated\_\_("{}This is trash"{})))}
-\DoxyCodeLine{28 \textcolor{keywordtype}{void} tui\_print\_rect(const struct \mbox{\hyperlink{structwindow}{window}} *self}
-\DoxyCodeLine{29                     , const struct \mbox{\hyperlink{structvec2__uint16}{vec2\_uint16}} p\_cord}
-\DoxyCodeLine{30                     , const struct \mbox{\hyperlink{structvec2__uint16}{vec2\_uint16}} p\_size);}
-\DoxyCodeLine{31 \_\_attribute\_\_((\_\_deprecated\_\_("{}This is trash"{})))}
-\DoxyCodeLine{32 \textcolor{keywordtype}{void} tui\_mov\_cursor(const struct \mbox{\hyperlink{structwindow}{window}} *self, const struct \mbox{\hyperlink{structvec2__uint16}{vec2\_uint16}} p\_cord);}
-\DoxyCodeLine{33 }
-\DoxyCodeLine{34 \textcolor{preprocessor}{\#endif}}
-
-\end{DoxyCode}

+ 0 - 18
docs/latex/void__pointer_8h_source.tex

@@ -1,18 +0,0 @@
-\hypertarget{void__pointer_8h_source}{}\doxysection{void\+\_\+pointer.\+h}
-\label{void__pointer_8h_source}\index{include/toolbox/void\_pointer.h@{include/toolbox/void\_pointer.h}}
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef TOOLBOX\_VOID\_POINTER\_H}}
-\DoxyCodeLine{2 \textcolor{preprocessor}{\#define TOOLBOX\_VOID\_POINTER\_H}}
-\DoxyCodeLine{3 }
-\DoxyCodeLine{4 \textcolor{preprocessor}{\#include <stdbool.h>}}
-\DoxyCodeLine{5 \textcolor{preprocessor}{\#include <stddef.h>}}
-\DoxyCodeLine{6 }
-\DoxyCodeLine{7 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{8 \textcolor{keywordtype}{bool}}
-\DoxyCodeLine{9 void\_pointer\_equal(\textcolor{keyword}{const} \textcolor{keywordtype}{void} *restrict r\_p\_vptr1, \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} p\_vptr1\_size}
-\DoxyCodeLine{10                    , \textcolor{keyword}{const} \textcolor{keywordtype}{void} *restrict r\_p\_vptr2, \textcolor{keyword}{const} \textcolor{keywordtype}{size\_t} p\_vptr2\_size);}
-\DoxyCodeLine{11 }
-\DoxyCodeLine{12 \textcolor{preprocessor}{\#endif}}
-
-\end{DoxyCode}

+ 0 - 27
docs/latex/vptr_8h_source.tex

@@ -1,27 +0,0 @@
-\hypertarget{vptr_8h_source}{}\doxysection{vptr.\+h}
-\label{vptr_8h_source}\index{include/toolbox/vptr.h@{include/toolbox/vptr.h}}
-
-\begin{DoxyCode}{0}
-\DoxyCodeLine{1 \textcolor{preprocessor}{\#ifndef TOOLBOX\_VPTR\_H}}
-\DoxyCodeLine{2 \textcolor{preprocessor}{\#define TOOLBOX\_VPTR\_H}}
-\DoxyCodeLine{3 }
-\DoxyCodeLine{4 \textcolor{preprocessor}{\#include <stdbool.h>}}
-\DoxyCodeLine{5 \textcolor{preprocessor}{\#include <stddef.h>}}
-\DoxyCodeLine{6 }
-\DoxyCodeLine{7 \textcolor{preprocessor}{\#ifdef TOOLBOX\_TYPEDEF}}
-\DoxyCodeLine{8 \textcolor{keyword}{typedef} \textcolor{keyword}{struct }\mbox{\hyperlink{structvptr}{vptr}} vptr\_st;}
-\DoxyCodeLine{9 \textcolor{preprocessor}{\#endif}}
-\DoxyCodeLine{10 }
-\DoxyCodeLine{11 \textcolor{keyword}{struct }\mbox{\hyperlink{structvptr}{vptr}} \{}
-\DoxyCodeLine{12     \textcolor{keywordtype}{size\_t} size;}
-\DoxyCodeLine{13     \textcolor{keywordtype}{void} *data;}
-\DoxyCodeLine{14 \};}
-\DoxyCodeLine{15 }
-\DoxyCodeLine{16 \_\_attribute\_\_((\_\_pure\_\_))}
-\DoxyCodeLine{17 \textcolor{keywordtype}{bool}}
-\DoxyCodeLine{18 vptr\_equal(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structvptr}{vptr}} *restrict r\_p\_vptr1}
-\DoxyCodeLine{19            , \textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structvptr}{vptr}} *restrict r\_p\_vptr2);}
-\DoxyCodeLine{20 }
-\DoxyCodeLine{21 \textcolor{preprocessor}{\#endif}}
-
-\end{DoxyCode}

部分文件因为文件数量过多而无法显示