Fixed some typos + moved "main" page to a separate .dox file.
This commit is contained in:
parent
53830e0b96
commit
ad051347b8
@ -60,7 +60,7 @@ document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'" clas'+'s="em' + 'ail">'+e+'<\
|
|||||||
<li><code>etc/</code> – miscellaneous files, everything that doesn't fit in anywhere else</li>
|
<li><code>etc/</code> – miscellaneous files, everything that doesn't fit in anywhere else</li>
|
||||||
<li><code>include/</code> – public header files, include this directory in projects that use the MUtilities library</li>
|
<li><code>include/</code> – public header files, include this directory in projects that use the MUtilities library</li>
|
||||||
<li><code>obj/</code> – object code files, intermediate files generated during the build process</li>
|
<li><code>obj/</code> – object code files, intermediate files generated during the build process</li>
|
||||||
<li><code>res/</code> – resouce files, required for building the MUtilities library</li>
|
<li><code>res/</code> – resource files, required for building the MUtilities library</li>
|
||||||
<li><code>src/</code> – source code files, required for building the MUtilities library (third-party code in <code>src/3rd_party/</code>)</li>
|
<li><code>src/</code> – source code files, required for building the MUtilities library (third-party code in <code>src/3rd_party/</code>)</li>
|
||||||
<li><code>test/</code> – unit tests, based on Google Test framework</li>
|
<li><code>test/</code> – unit tests, based on Google Test framework</li>
|
||||||
<li><code>tmp/</code> – temporary files, automatically generated during the build process</li>
|
<li><code>tmp/</code> – temporary files, automatically generated during the build process</li>
|
||||||
@ -78,7 +78,7 @@ int main(int argc, char **argv)
|
|||||||
<ul>
|
<ul>
|
||||||
<li>In order to use the <em>MUtilities</em> library in your project, your build environment must have already been set up for building Qt-based projects. Setting up Qt is <em>not</em> covered by this document.</li>
|
<li>In order to use the <em>MUtilities</em> library in your project, your build environment must have already been set up for building Qt-based projects. Setting up Qt is <em>not</em> covered by this document.</li>
|
||||||
<li>Additionally, make sure that <em>MUtilities'</em> <code>include/</code> directory is contained in your "Additional Include Directories" and that the <em>MUtilities'</em> <code>bin/</code> directory is contained in your "Additional Library Directories".</li>
|
<li>Additionally, make sure that <em>MUtilities'</em> <code>include/</code> directory is contained in your "Additional Include Directories" and that the <em>MUtilities'</em> <code>bin/</code> directory is contained in your "Additional Library Directories".</li>
|
||||||
<li>Finally, make sure that your project links against the <code>MUtils32-1.lib</code> library file. For each build configuration you have to pick the proper <strong>.lib</strong> file from the correspnding <code>bin/<platform>/<config>/</code> directory!</li>
|
<li>Finally, make sure that your project links against the <code>MUtils32-1.lib</code> library file. For each build configuration, pick the proper <strong>.lib</strong> file from the corresponding <code>bin/<platform>/<config>/</code> directory!</li>
|
||||||
<li>If your projects intends to use the <em>MUtilities</em> library as a <strong>static</strong> library, then the macro <code>MUTILS_STATIC_LIB</code> <em>must</em> be added to your project's "Preprocessor Definitions".</li>
|
<li>If your projects intends to use the <em>MUtilities</em> library as a <strong>static</strong> library, then the macro <code>MUTILS_STATIC_LIB</code> <em>must</em> be added to your project's "Preprocessor Definitions".</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h1 id="api-documentation"><span class="header-section-number">4</span> API Documentation</h1>
|
<h1 id="api-documentation"><span class="header-section-number">4</span> API Documentation</h1>
|
||||||
|
@ -15,7 +15,7 @@ The *MUtilities* project directory is organized as follows:
|
|||||||
* `etc/` – miscellaneous files, everything that doesn't fit in anywhere else
|
* `etc/` – miscellaneous files, everything that doesn't fit in anywhere else
|
||||||
* `include/` – public header files, include this directory in projects that use the MUtilities library
|
* `include/` – public header files, include this directory in projects that use the MUtilities library
|
||||||
* `obj/` – object code files, intermediate files generated during the build process
|
* `obj/` – object code files, intermediate files generated during the build process
|
||||||
* `res/` – resouce files, required for building the MUtilities library
|
* `res/` – resource files, required for building the MUtilities library
|
||||||
* `src/` – source code files, required for building the MUtilities library (third-party code in `src/3rd_party/`)
|
* `src/` – source code files, required for building the MUtilities library (third-party code in `src/3rd_party/`)
|
||||||
* `test/` – unit tests, based on Google Test framework
|
* `test/` – unit tests, based on Google Test framework
|
||||||
* `tmp/` – temporary files, automatically generated during the build process
|
* `tmp/` – temporary files, automatically generated during the build process
|
||||||
@ -37,7 +37,7 @@ Here is a minimal example on how to use the *MUtilities* library in your project
|
|||||||
|
|
||||||
* In order to use the *MUtilities* library in your project, your build environment must have already been set up for building Qt-based projects. Setting up Qt is *not* covered by this document.
|
* In order to use the *MUtilities* library in your project, your build environment must have already been set up for building Qt-based projects. Setting up Qt is *not* covered by this document.
|
||||||
* Additionally, make sure that *MUtilities'* `include/` directory is contained in your "Additional Include Directories" and that the *MUtilities'* `bin/` directory is contained in your "Additional Library Directories".
|
* Additionally, make sure that *MUtilities'* `include/` directory is contained in your "Additional Include Directories" and that the *MUtilities'* `bin/` directory is contained in your "Additional Library Directories".
|
||||||
* Finally, make sure that your project links against the `MUtils32-1.lib` library file. For each build configuration you have to pick the proper **.lib** file from the correspnding `bin/<platform>/<config>/` directory!
|
* Finally, make sure that your project links against the `MUtils32-1.lib` library file. For each build configuration, pick the proper **.lib** file from the corresponding `bin/<platform>/<config>/` directory!
|
||||||
* If your projects intends to use the *MUtilities* library as a **static** library, then the macro `MUTILS_STATIC_LIB` *must* be added to your project's "Preprocessor Definitions".
|
* If your projects intends to use the *MUtilities* library as a **static** library, then the macro `MUTILS_STATIC_LIB` *must* be added to your project's "Preprocessor Definitions".
|
||||||
|
|
||||||
|
|
||||||
|
@ -299,8 +299,8 @@ QString </td><td class="memItemRight" valign="bottom"><b>MUtils::clean_file
|
|||||||
<dl class="params"><dt>Parameters</dt><dd>
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
<table class="params">
|
<table class="params">
|
||||||
<tr><td class="paramname">basePath</td><td>Specifies the "base" directory where the unique file is supposed to be created. This must be a valid <em>existing</em> directory.</td></tr>
|
<tr><td class="paramname">basePath</td><td>Specifies the "base" directory where the unique file is supposed to be created. This must be a valid <em>existing</em> directory.</td></tr>
|
||||||
<tr><td class="paramname">baseName</td><td>Specifies the desired "base" file name of the unqiue file. Do <b>not</b> include a file extension.</td></tr>
|
<tr><td class="paramname">baseName</td><td>Specifies the desired "base" file name of the unique file. Do <b>not</b> include a file extension.</td></tr>
|
||||||
<tr><td class="paramname">extension</td><td>Specifies the desired file extensions of the unqiue file. Do <b>not</b> include a leading dot (<code>.</code>) character.</td></tr>
|
<tr><td class="paramname">extension</td><td>Specifies the desired file extensions of the unique file. Do <b>not</b> include a leading dot (<code>.</code>) character.</td></tr>
|
||||||
<tr><td class="paramname">fancy</td><td>If set to <code>true</code>, the file name is generated according to the <code>"<basedir>/<basename> (N).<ext>"</code> pattern; if set to <code>false</code>, the file name is generated according to the <code>"<basedir>/<basename>.XXXX.<ext>"</code> pattern.</td></tr>
|
<tr><td class="paramname">fancy</td><td>If set to <code>true</code>, the file name is generated according to the <code>"<basedir>/<basename> (N).<ext>"</code> pattern; if set to <code>false</code>, the file name is generated according to the <code>"<basedir>/<basename>.XXXX.<ext>"</code> pattern.</td></tr>
|
||||||
</table>
|
</table>
|
||||||
</dd>
|
</dd>
|
||||||
@ -340,6 +340,7 @@ QString </td><td class="memItemRight" valign="bottom"><b>MUtils::clean_file
|
|||||||
<dl class="params"><dt>Parameters</dt><dd>
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
<table class="params">
|
<table class="params">
|
||||||
<tr><td class="paramname">list</td><td>A reference to the QStringList object to be sorted. The list will be sorted "in place".</td></tr>
|
<tr><td class="paramname">list</td><td>A reference to the QStringList object to be sorted. The list will be sorted "in place".</td></tr>
|
||||||
|
<tr><td class="paramname">bIgnoreCase</td><td>If set to <code>true</code>, the list will be sorted disregarding the character case, i.e. upper-case and lower-case characters (of the same letter) are treated the same; if set to <code>false</code>, the character case <em>is</em> taken into account. </td></tr>
|
||||||
</table>
|
</table>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
@ -370,7 +371,7 @@ QString </td><td class="memItemRight" valign="bottom"><b>MUtils::clean_file
|
|||||||
</table>
|
</table>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl class="section return"><dt>Returns</dt><dd>The function retruns a QString holding a <em>random</em> hexadecimal string </dd></dl>
|
<dl class="section return"><dt>Returns</dt><dd>The function returns a QString holding a <em>random</em> hexadecimal string </dd></dl>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -392,7 +393,7 @@ QString </td><td class="memItemRight" valign="bottom"><b>MUtils::clean_file
|
|||||||
|
|
||||||
<p>Generates a <em>random</em> unsigned 32-Bit value. </p>
|
<p>Generates a <em>random</em> unsigned 32-Bit value. </p>
|
||||||
<p>The <em>random</em> value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is <b>not</b> required or useful to call <code>srand()</code> or <code>qsrand()</code> prior to using this function. If necessary, the seeding of the PRNG happen <em>automatically</em> on the first call.</p>
|
<p>The <em>random</em> value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is <b>not</b> required or useful to call <code>srand()</code> or <code>qsrand()</code> prior to using this function. If necessary, the seeding of the PRNG happen <em>automatically</em> on the first call.</p>
|
||||||
<dl class="section return"><dt>Returns</dt><dd>The function retruns a <em>random</em> unsigned 32-Bit value. </dd></dl>
|
<dl class="section return"><dt>Returns</dt><dd>The function returns a <em>random</em> unsigned 32-Bit value. </dd></dl>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -414,7 +415,7 @@ QString </td><td class="memItemRight" valign="bottom"><b>MUtils::clean_file
|
|||||||
|
|
||||||
<p>Generates a <em>random</em> unsigned 64-Bit value. </p>
|
<p>Generates a <em>random</em> unsigned 64-Bit value. </p>
|
||||||
<p>The <em>random</em> value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is <b>not</b> required or useful to call <code>srand()</code> or <code>qsrand()</code> prior to using this function. If necessary, the seeding of the PRNG happen <em>automatically</em> on the first call.</p>
|
<p>The <em>random</em> value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is <b>not</b> required or useful to call <code>srand()</code> or <code>qsrand()</code> prior to using this function. If necessary, the seeding of the PRNG happen <em>automatically</em> on the first call.</p>
|
||||||
<dl class="section return"><dt>Returns</dt><dd>The function retruns a <em>random</em> unsigned 64-Bit value. </dd></dl>
|
<dl class="section return"><dt>Returns</dt><dd>The function returns a <em>random</em> unsigned 64-Bit value. </dd></dl>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -557,7 +558,7 @@ QString </td><td class="memItemRight" valign="bottom"><b>MUtils::clean_file
|
|||||||
</div><div class="memdoc">
|
</div><div class="memdoc">
|
||||||
|
|
||||||
<p>Recursively deletes the specified directory. </p>
|
<p>Recursively deletes the specified directory. </p>
|
||||||
<p>The function deletes the specified directory. In <em>recusive</em> mode, the directory will be removed including all of its files and sub-directories. Files are deleted using the <code><a class="el" href="../../d5/d3b/_global_8h.html#a12259acdd6aff74ee83819d3aebd8ba9" title="Deletes the specified file. ">remove_file()</a></code> function.</p>
|
<p>The function deletes the specified directory. In <em>recursive</em> mode, the directory will be removed including all of its files and sub-directories. Files are deleted using the <code><a class="el" href="../../d5/d3b/_global_8h.html#a12259acdd6aff74ee83819d3aebd8ba9" title="Deletes the specified file. ">remove_file()</a></code> function.</p>
|
||||||
<dl class="params"><dt>Parameters</dt><dd>
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
<table class="params">
|
<table class="params">
|
||||||
<tr><td class="paramname">folderPath</td><td>The path to the directory to be deleted. This should be a full path.</td></tr>
|
<tr><td class="paramname">folderPath</td><td>The path to the directory to be deleted. This should be a full path.</td></tr>
|
||||||
@ -614,7 +615,7 @@ QString </td><td class="memItemRight" valign="bottom"><b>MUtils::clean_file
|
|||||||
</div><div class="memdoc">
|
</div><div class="memdoc">
|
||||||
|
|
||||||
<p>Rerieves the full path of the application's <em>Temp</em> folder. </p>
|
<p>Rerieves the full path of the application's <em>Temp</em> folder. </p>
|
||||||
<p>The application's <em>Temp</em> folder is a unique application-specific folder, intended to store any temporary files that the application may need. It will be created when this function is called for the first time (lazy initialization); subsequent calls are guaranteed to return the same path. Usually the application's <em>Temp</em> folder will be created as a sub-folder of the system's global <em>Temp</em> folder, as indicated by the <code>TMP</code> or <code>TEMP</code> environment variables. However, it may be created at a different place (e.g. in the users <em>Profile</em> directory), if those environment variables don't point to a usable directory. In any case, this function makes sure that the application's <em>Temp</em> folder exists for the whole lifetime of the application and that it is writable. When the application is about to terminate, the application's <em>Temp</em> folder and all files or sub-directories thereof will be <em>removed</em> automatically!</p>
|
<p>The application's <em>Temp</em> folder is a unique application-specific folder, intended to store any temporary files that the application may need. It will be created when this function is called for the first time (lazy initialization); subsequent calls are guaranteed to return the same path. Usually the application's <em>Temp</em> folder will be created as a sub-folder of the system's global <em>Temp</em> folder, as indicated by the <code>TMP</code> or <code>TEMP</code> environment variables. However, it may be created at a different place (e.g. in the users <em>Profile</em> directory), if those environment variables don't point to a usable directory. In any case, this function makes sure that the application's <em>Temp</em> folder exists for the whole lifetime of the application and that it is writable. When the application terminates normally, the application's <em>Temp</em> folder and all files or sub-directories thereof will be <em>removed</em> automatically!</p>
|
||||||
<dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a read-only reference to a QString holding the full path of the application's <em>Temp</em> folder; otherwise a read-only reference to a default-constructed QString is returned. </dd></dl>
|
<dl class="section return"><dt>Returns</dt><dd>If the function succeeds, it returns a read-only reference to a QString holding the full path of the application's <em>Temp</em> folder; otherwise a read-only reference to a default-constructed QString is returned. </dd></dl>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
File diff suppressed because one or more lines are too long
@ -5,7 +5,7 @@
|
|||||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
<meta name="generator" content="Doxygen 1.8.12"/>
|
<meta name="generator" content="Doxygen 1.8.12"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
<title>MuldeR's Utilities for Qt: MuldeR's Utilities for Qt</title>
|
<title>MuldeR's Utilities for Qt: Main Page</title>
|
||||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
<script type="text/javascript" src="jquery.js"></script>
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
<script type="text/javascript" src="dynsections.js"></script>
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
@ -60,17 +60,68 @@ $(function() {
|
|||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="headertitle">
|
<div class="headertitle">
|
||||||
<div class="title">MuldeR's Utilities for Qt </div> </div>
|
<div class="title">MuldeR's Utilities for Qt Documentation</div> </div>
|
||||||
</div><!--header-->
|
</div><!--header-->
|
||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="textblock"><p>The <b>MUtilities</b> library is a collection of routines and classes to extend the <a href="http://qt-project.org/"><em>Qt cross-platform framework</em></a>. It contains various convenience and utility functions as well as wrappers for OS-specific functionalities. The library was originally created as a "side product" of the <a href="http://lamexp.sourceforge.net/"><b>LameXP</b></a> application: Over the years, a lot of code, <b>not</b> really specific to <em>LameXP</em>, had accumulated in the <em>LameXP</em> code base. Some of that code even had been used in other projects too, in a "copy & paste" fashion – which had lead to redundancy and much complicated maintenance. In order to clean-up the LameXP code base, to eliminate the ugly redundancy and to simplify maintenance, the code in question has finally been refactored into the <b>MUtilities</b> (aka "MuldeR's Utilities for Qt") library. This library now forms the foundation of <em>LameXP</em> and <a href="https://github.com/lordmulder"><em>other OpenSource projects</em></a>.</p>
|
<div class="textblock"><h1>Introduction</h1>
|
||||||
<h3>API-Documentation</h3>
|
<p>The <b>MUtilities</b> library is a collection of routines and classes to extend the <a href="http://qt-project.org/"><em>Qt cross-platform framework</em></a>. It contains various convenience and utility functions as well as wrappers for OS-specific functionalities. The library was originally created as a "side product" of the <a href="http://lamexp.sourceforge.net/"><b>LameXP</b></a> application: Over the years, a lot of code, <b>not</b> really specific to <em>LameXP</em>, had accumulated in the <em>LameXP</em> code base. Some of that code even had been used in other projects too, in a "copy & paste" fashion – which had lead to redundancy and much complicated maintenance. In order to clean-up the LameXP code base, to eliminate the ugly redundancy and to simplify maintenance, the code in question has finally been refactored into the <b>MUtilities</b> (aka "MuldeR's Utilities for Qt") library. This library now forms the foundation of <em>LameXP</em> and <a href="https://github.com/lordmulder"><em>other OpenSource projects</em></a>.</p>
|
||||||
<p>The public API of the <em>MUtilities</em> library is defined in the following header files:</p><ul>
|
<h1>Project Structure</h1>
|
||||||
|
<p>The <em>MUtilities</em> project directory is organized as follows:</p>
|
||||||
|
<ul>
|
||||||
|
<li><code>bin/</code> – compiled library files (static or shared), link those files in projects that use the MUtilities library</li>
|
||||||
|
<li><code>docs/</code> – programming interface documentation, generated with Doxygen tool</li>
|
||||||
|
<li><code>etc/</code> – miscellaneous files, everything that doesn't fit in anywhere else</li>
|
||||||
|
<li><code>include/</code> – public header files, include this directory in projects that use the MUtilities library</li>
|
||||||
|
<li><code>obj/</code> – object code files, intermediate files generated during the build process</li>
|
||||||
|
<li><code>res/</code> – resource files, required for building the MUtilities library</li>
|
||||||
|
<li><code>src/</code> – source code files, required for building the MUtilities library (third-party code in <code>src/3rd_party/</code>)</li>
|
||||||
|
<li><code>test/</code> – unit tests, based on Google Test framework</li>
|
||||||
|
<li><code>tmp/</code> – temporary files, automatically generated during the build process</li>
|
||||||
|
</ul>
|
||||||
|
<h1>API Documentation</h1>
|
||||||
|
<p>The public API of the <em>MUtilities</em> library is defined in the following header files (select file for details):</p><ul>
|
||||||
<li><b><a class="el" href="d5/d3b/_global_8h.html" title="This file contains miscellaneous functions that are generally useful for Qt-based applications...">Global.h</a></b> – miscellaneous useful functions</li>
|
<li><b><a class="el" href="d5/d3b/_global_8h.html" title="This file contains miscellaneous functions that are generally useful for Qt-based applications...">Global.h</a></b> – miscellaneous useful functions</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h3>License</h3>
|
<h1>Example</h1>
|
||||||
<p>This library is free software. It is released under the terms of the <a href="https://www.gnu.org/licenses/lgpl-2.1.html">GNU Lesser General Public License (LGPL), Version 2.1</a>.</p>
|
<p>Here is a minimal example on how to use the <em>MUtilities</em> library in your project: </p><pre class="fragment">//MUtils
|
||||||
<div class="fragment"><div class="line">MUtilities - MuldeR<span class="stringliteral">'s Utilities for Qt</span></div><div class="line"><span class="stringliteral">Copyright (C) 2004-2016 LoRd_MuldeR <MuldeR2@GMX.de>. Some rights reserved.</span></div><div class="line"><span class="stringliteral"></span></div><div class="line"><span class="stringliteral">This library is free software; you can redistribute it and/or</span></div><div class="line"><span class="stringliteral">modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><span class="stringliteral">License as published by the Free Software Foundation; either</span></div><div class="line"><span class="stringliteral">version 2.1 of the License, or (at your option) any later version.</span></div><div class="line"><span class="stringliteral"></span></div><div class="line"><span class="stringliteral">This library is distributed in the hope that it will be useful,</span></div><div class="line"><span class="stringliteral">but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><span class="stringliteral">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div><div class="line"><span class="stringliteral">Lesser General Public License for more details.</span></div><div class="line"><span class="stringliteral"></span></div><div class="line"><span class="stringliteral">You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><span class="stringliteral">License along with this library; if not, write to the Free Software</span></div><div class="line"><span class="stringliteral">Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</span></div></div><!-- fragment --> </div></div><!-- contents -->
|
#include <MUtils/Global.h>
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
qDebug("Random number: %u\n", MUtils::next_rand_u32());
|
||||||
|
}
|
||||||
|
</pre><h2>Build Notes</h2>
|
||||||
|
<ul>
|
||||||
|
<li>In order to use the <em>MUtilities</em> library in your project, your build environment must have already been set up for building Qt-based projects. Setting up Qt is <em>not</em> covered by this document.</li>
|
||||||
|
<li>Additionally, make sure that <em>MUtilities'</em> <code>include/</code> directory is contained in your "Additional Include Directories" and that the <em>MUtilities'</em> <code>bin/</code> directory is contained in your "Additional Library Directories".</li>
|
||||||
|
<li>Finally, make sure that your project links against the <code>MUtils32-1.lib</code> library file. For each build configuration, pick the proper **.lib** file from the corresponding <code>bin/<platform>/<config>/</code> directory!</li>
|
||||||
|
<li>If your projects intends to use the <em>MUtilities</em> library as a <b>static</b> library, then the macro <code>MUTILS_STATIC_LIB</code> <em>must</em> be added to your project's "Preprocessor Definitions".</li>
|
||||||
|
</ul>
|
||||||
|
<h1>License</h1>
|
||||||
|
<p>This library is free software. It is released under the terms of the <a href="https://www.gnu.org/licenses/lgpl-2.1.html"><em>GNU Lesser General Public License (LGPL), Version 2.1</em></a>. </p><pre class="fragment">MUtilities - MuldeR's Utilities for Qt
|
||||||
|
Copyright (C) 2004-2016 LoRd_MuldeR <MuldeR2@GMX.de>. Some rights reserved.
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
</pre><h1>Acknowledgement</h1>
|
||||||
|
<p>The following third-party code is used in the MUtilities library:</p>
|
||||||
|
<ul>
|
||||||
|
<li><b>Keccak/SHA-3 Reference Implementation</b> Implementation by the Keccak, Keyak and Ketje Teams, namely, Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer No Copyright / Dedicated to the Public Domain</li>
|
||||||
|
<li><b>Natural Order String Comparison</b> Copyright (C) 2000, 2004 by Martin Pool <a href="#" onclick="location.href='mai'+'lto:'+'mbp'+'@s'+'our'+'ce'+'fro'+'g.'+'net'; return false;">mbp@s<span style="display: none;">.nosp@m.</span>ourc<span style="display: none;">.nosp@m.</span>efrog<span style="display: none;">.nosp@m.</span>.net</a> Released under the zlib License</li>
|
||||||
|
<li><b>Adler-32 Checksum Algorithm (from zlib)</b> Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler Released under the zlib License </li>
|
||||||
|
</ul>
|
||||||
|
</div></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated by  <a href="http://www.doxygen.org/index.html">
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['mulder_27s_20utilities_20for_20qt',['MuldeR's Utilities for Qt',['../index.html',1,'']]],
|
|
||||||
['make_5ftemp_5ffile',['make_temp_file',['../d5/d3b/_global_8h.html#a67cb16c62b213da5135a6fa076f3f005',1,'MUtils']]],
|
['make_5ftemp_5ffile',['make_temp_file',['../d5/d3b/_global_8h.html#a67cb16c62b213da5135a6fa076f3f005',1,'MUtils']]],
|
||||||
['make_5funique_5ffile',['make_unique_file',['../d5/d3b/_global_8h.html#a390e56e35eb9329d2e67fa9741d07536',1,'MUtils']]]
|
['make_5funique_5ffile',['make_unique_file',['../d5/d3b/_global_8h.html#a390e56e35eb9329d2e67fa9741d07536',1,'MUtils']]]
|
||||||
];
|
];
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
<html><head><title></title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
||||||
<meta name="generator" content="Doxygen 1.8.12"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
|
||||||
<script type="text/javascript" src="pages_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"><!--
|
|
||||||
createResults();
|
|
||||||
--></script>
|
|
||||||
<div class="SRStatus" id="Searching">Searching...</div>
|
|
||||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
document.getElementById("Loading").style.display="none";
|
|
||||||
document.getElementById("NoMatches").style.display="none";
|
|
||||||
var searchResults = new SearchResults("searchResults");
|
|
||||||
searchResults.Search();
|
|
||||||
--></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,4 +0,0 @@
|
|||||||
var searchData=
|
|
||||||
[
|
|
||||||
['mulder_27s_20utilities_20for_20qt',['MuldeR's Utilities for Qt',['../index.html',1,'']]]
|
|
||||||
];
|
|
@ -3,8 +3,7 @@ var indexSectionsWithContent =
|
|||||||
0: "_abgijkmnprstuv",
|
0: "_abgijkmnprstuv",
|
||||||
1: "_bijkrstuv",
|
1: "_bijkrstuv",
|
||||||
2: "g",
|
2: "g",
|
||||||
3: "amnprt",
|
3: "amnprt"
|
||||||
4: "m"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var indexSectionNames =
|
var indexSectionNames =
|
||||||
@ -12,8 +11,7 @@ var indexSectionNames =
|
|||||||
0: "all",
|
0: "all",
|
||||||
1: "classes",
|
1: "classes",
|
||||||
2: "files",
|
2: "files",
|
||||||
3: "functions",
|
3: "functions"
|
||||||
4: "pages"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var indexSectionLabels =
|
var indexSectionLabels =
|
||||||
@ -21,7 +19,6 @@ var indexSectionLabels =
|
|||||||
0: "All",
|
0: "All",
|
||||||
1: "Classes",
|
1: "Classes",
|
||||||
2: "Files",
|
2: "Files",
|
||||||
3: "Functions",
|
3: "Functions"
|
||||||
4: "Pages"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -75,48 +75,12 @@ class QProcess;
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/**
|
|
||||||
* \mainpage MuldeR's Utilities for Qt
|
|
||||||
*
|
|
||||||
* The **MUtilities** library is a collection of routines and classes to extend the [*Qt cross-platform framework*](http://qt-project.org/). It contains various convenience and utility functions as well as wrappers for OS-specific functionalities. The library was originally created as a "side product" of the [**LameXP**](http://lamexp.sourceforge.net/) application: Over the years, a lot of code, **not** really specific to *LameXP*, had accumulated in the *LameXP* code base. Some of that code even had been used in other projects too, in a "copy & paste" fashion – which had lead to redundancy and much complicated maintenance. In order to clean-up the LameXP code base, to eliminate the ugly redundancy and to simplify maintenance, the code in question has finally been refactored into the **MUtilities** (aka "MuldeR's Utilities for Qt") library. This library now forms the foundation of *LameXP* and [*other OpenSource projects*](https://github.com/lordmulder).
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* ### API-Documentation
|
|
||||||
*
|
|
||||||
* The public API of the *MUtilities* library is defined in the following header files:
|
|
||||||
* - **Global.h** – miscellaneous useful functions
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* ### License
|
|
||||||
*
|
|
||||||
* This library is free software. It is released under the terms of the [GNU Lesser General Public License (LGPL), Version 2.1](https://www.gnu.org/licenses/lgpl-2.1.html).
|
|
||||||
*
|
|
||||||
* ```
|
|
||||||
* MUtilities - MuldeR's Utilities for Qt
|
|
||||||
* Copyright (C) 2004-2016 LoRd_MuldeR <MuldeR2@GMX.de>. Some rights reserved.
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
|
||||||
* License as published by the Free Software Foundation; either
|
|
||||||
* version 2.1 of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this library; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
* ```
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace MUtils
|
namespace MUtils
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* \brief Rerieves the full path of the application's *Temp* folder.
|
* \brief Rerieves the full path of the application's *Temp* folder.
|
||||||
*
|
*
|
||||||
* The application's *Temp* folder is a unique application-specific folder, intended to store any temporary files that the application may need. It will be created when this function is called for the first time (lazy initialization); subsequent calls are guaranteed to return the same path. Usually the application's *Temp* folder will be created as a sub-folder of the system's global *Temp* folder, as indicated by the `TMP` or `TEMP` environment variables. However, it may be created at a different place (e.g. in the users *Profile* directory), if those environment variables don't point to a usable directory. In any case, this function makes sure that the application's *Temp* folder exists for the whole lifetime of the application and that it is writable. When the application is about to terminate, the application's *Temp* folder and all files or sub-directories thereof will be *removed* automatically!
|
* The application's *Temp* folder is a unique application-specific folder, intended to store any temporary files that the application may need. It will be created when this function is called for the first time (lazy initialization); subsequent calls are guaranteed to return the same path. Usually the application's *Temp* folder will be created as a sub-folder of the system's global *Temp* folder, as indicated by the `TMP` or `TEMP` environment variables. However, it may be created at a different place (e.g. in the users *Profile* directory), if those environment variables don't point to a usable directory. In any case, this function makes sure that the application's *Temp* folder exists for the whole lifetime of the application and that it is writable. When the application terminates normally, the application's *Temp* folder and all files or sub-directories thereof will be *removed* automatically!
|
||||||
*
|
*
|
||||||
* \return If the function succeeds, it returns a read-only reference to a QString holding the full path of the application's *Temp* folder; otherwise a read-only reference to a default-constructed QString is returned.
|
* \return If the function succeeds, it returns a read-only reference to a QString holding the full path of the application's *Temp* folder; otherwise a read-only reference to a default-constructed QString is returned.
|
||||||
*/
|
*/
|
||||||
@ -130,7 +94,7 @@ namespace MUtils
|
|||||||
*
|
*
|
||||||
* The *random* value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is **not** required or useful to call `srand()` or `qsrand()` prior to using this function. If necessary, the seeding of the PRNG happen *automatically* on the first call.
|
* The *random* value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is **not** required or useful to call `srand()` or `qsrand()` prior to using this function. If necessary, the seeding of the PRNG happen *automatically* on the first call.
|
||||||
*
|
*
|
||||||
* \return The function retruns a *random* unsigned 32-Bit value.
|
* \return The function returns a *random* unsigned 32-Bit value.
|
||||||
*/
|
*/
|
||||||
MUTILS_API quint32 next_rand_u32(void);
|
MUTILS_API quint32 next_rand_u32(void);
|
||||||
|
|
||||||
@ -139,7 +103,7 @@ namespace MUtils
|
|||||||
*
|
*
|
||||||
* The *random* value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is **not** required or useful to call `srand()` or `qsrand()` prior to using this function. If necessary, the seeding of the PRNG happen *automatically* on the first call.
|
* The *random* value is created using a "strong" PRNG of the underlying system, if possible. Otherwise a fallback PRNG is used. It is **not** required or useful to call `srand()` or `qsrand()` prior to using this function. If necessary, the seeding of the PRNG happen *automatically* on the first call.
|
||||||
*
|
*
|
||||||
* \return The function retruns a *random* unsigned 64-Bit value.
|
* \return The function returns a *random* unsigned 64-Bit value.
|
||||||
*/
|
*/
|
||||||
MUTILS_API quint64 next_rand_u64(void);
|
MUTILS_API quint64 next_rand_u64(void);
|
||||||
|
|
||||||
@ -150,7 +114,7 @@ namespace MUtils
|
|||||||
*
|
*
|
||||||
* \param bLong If set to `true`, a "long" random string (32 characters) will be generated; if set to `false`, a "short" random string (16 characters) is generated.
|
* \param bLong If set to `true`, a "long" random string (32 characters) will be generated; if set to `false`, a "short" random string (16 characters) is generated.
|
||||||
*
|
*
|
||||||
* \return The function retruns a QString holding a *random* hexadecimal string
|
* \return The function returns a QString holding a *random* hexadecimal string
|
||||||
*/
|
*/
|
||||||
MUTILS_API QString next_rand_str(const bool &bLong = false);
|
MUTILS_API QString next_rand_str(const bool &bLong = false);
|
||||||
|
|
||||||
@ -176,9 +140,9 @@ namespace MUtils
|
|||||||
*
|
*
|
||||||
* \param basePath Specifies the "base" directory where the unique file is supposed to be created. This must be a valid *existing* directory.
|
* \param basePath Specifies the "base" directory where the unique file is supposed to be created. This must be a valid *existing* directory.
|
||||||
*
|
*
|
||||||
* \param baseName Specifies the desired "base" file name of the unqiue file. Do **not** include a file extension.
|
* \param baseName Specifies the desired "base" file name of the unique file. Do **not** include a file extension.
|
||||||
*
|
*
|
||||||
* \param extension Specifies the desired file extensions of the unqiue file. Do **not** include a leading dot (`.`) character.
|
* \param extension Specifies the desired file extensions of the unique file. Do **not** include a leading dot (`.`) character.
|
||||||
*
|
*
|
||||||
* \param fancy If set to `true`, the file name is generated according to the `"<basedir>/<basename> (N).<ext>"` pattern; if set to `false`, the file name is generated according to the `"<basedir>/<basename>.XXXX.<ext>"` pattern.
|
* \param fancy If set to `true`, the file name is generated according to the `"<basedir>/<basename> (N).<ext>"` pattern; if set to `false`, the file name is generated according to the `"<basedir>/<basename>.XXXX.<ext>"` pattern.
|
||||||
*
|
*
|
||||||
@ -209,7 +173,7 @@ namespace MUtils
|
|||||||
/**
|
/**
|
||||||
* \brief Recursively deletes the specified directory
|
* \brief Recursively deletes the specified directory
|
||||||
*
|
*
|
||||||
* The function deletes the specified directory. In *recusive* mode, the directory will be removed including all of its files and sub-directories. Files are deleted using the `remove_file()` function.
|
* The function deletes the specified directory. In *recursive* mode, the directory will be removed including all of its files and sub-directories. Files are deleted using the `remove_file()` function.
|
||||||
*
|
*
|
||||||
* \param folderPath The path to the directory to be deleted. This should be a full path.
|
* \param folderPath The path to the directory to be deleted. This should be a full path.
|
||||||
*
|
*
|
||||||
@ -269,10 +233,11 @@ namespace MUtils
|
|||||||
* This function implements a sort algorithm that orders alphanumeric strings in the way a human being would. See [*Natural Order String Comparison*](http://sourcefrog.net/projects/natsort/) for details!
|
* This function implements a sort algorithm that orders alphanumeric strings in the way a human being would. See [*Natural Order String Comparison*](http://sourcefrog.net/projects/natsort/) for details!
|
||||||
*
|
*
|
||||||
* \param list A reference to the QStringList object to be sorted. The list will be sorted "in place".
|
* \param list A reference to the QStringList object to be sorted. The list will be sorted "in place".
|
||||||
|
*
|
||||||
|
* \param bIgnoreCase If set to `true`, the list will be sorted disregarding the character case, i.e. upper-case and lower-case characters (of the same letter) are treated the same; if set to `false`, the character case *is* taken into account.
|
||||||
*/
|
*/
|
||||||
MUTILS_API void natural_string_sort(QStringList &list, const bool bIgnoreCase);
|
MUTILS_API void natural_string_sort(QStringList &list, const bool bIgnoreCase);
|
||||||
|
|
||||||
|
|
||||||
MUTILS_API QString clean_file_name(const QString &name);
|
MUTILS_API QString clean_file_name(const QString &name);
|
||||||
MUTILS_API QString clean_file_path(const QString &path);
|
MUTILS_API QString clean_file_path(const QString &path);
|
||||||
|
|
||||||
|
87
include/MUtilsInfo.dox
Normal file
87
include/MUtilsInfo.dox
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
/**
|
||||||
|
* @mainpage
|
||||||
|
*
|
||||||
|
* # Introduction #
|
||||||
|
*
|
||||||
|
* The **MUtilities** library is a collection of routines and classes to extend the [*Qt cross-platform framework*](http://qt-project.org/). It contains various convenience and utility functions as well as wrappers for OS-specific functionalities. The library was originally created as a "side product" of the [**LameXP**](http://lamexp.sourceforge.net/) application: Over the years, a lot of code, **not** really specific to *LameXP*, had accumulated in the *LameXP* code base. Some of that code even had been used in other projects too, in a "copy & paste" fashion – which had lead to redundancy and much complicated maintenance. In order to clean-up the LameXP code base, to eliminate the ugly redundancy and to simplify maintenance, the code in question has finally been refactored into the **MUtilities** (aka "MuldeR's Utilities for Qt") library. This library now forms the foundation of *LameXP* and [*other OpenSource projects*](https://github.com/lordmulder).
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* # Project Structure
|
||||||
|
*
|
||||||
|
* The *MUtilities* project directory is organized as follows:
|
||||||
|
*
|
||||||
|
* - `bin/` – compiled library files (static or shared), link those files in projects that use the MUtilities library
|
||||||
|
* - `docs/` – programming interface documentation, generated with Doxygen tool
|
||||||
|
* - `etc/` – miscellaneous files, everything that doesn't fit in anywhere else
|
||||||
|
* - `include/` – public header files, include this directory in projects that use the MUtilities library
|
||||||
|
* - `obj/` – object code files, intermediate files generated during the build process
|
||||||
|
* - `res/` – resource files, required for building the MUtilities library
|
||||||
|
* - `src/` – source code files, required for building the MUtilities library (third-party code in `src/3rd_party/`)
|
||||||
|
* - `test/` – unit tests, based on Google Test framework
|
||||||
|
* - `tmp/` – temporary files, automatically generated during the build process
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* # API Documentation
|
||||||
|
*
|
||||||
|
* The public API of the *MUtilities* library is defined in the following header files (select file for details):
|
||||||
|
* - **Global.h** – miscellaneous useful functions
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* # Example
|
||||||
|
*
|
||||||
|
* Here is a minimal example on how to use the *MUtilities* library in your project:
|
||||||
|
*
|
||||||
|
* //MUtils
|
||||||
|
* #include <MUtils/Global.h>
|
||||||
|
*
|
||||||
|
* int main(int argc, char **argv)
|
||||||
|
* {
|
||||||
|
* qDebug("Random number: %u\n", MUtils::next_rand_u32());
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* ## Build Notes
|
||||||
|
*
|
||||||
|
* - In order to use the *MUtilities* library in your project, your build environment must have already been set up for building Qt-based projects. Setting up Qt is *not* covered by this document.
|
||||||
|
* - Additionally, make sure that *MUtilities'* `include/` directory is contained in your "Additional Include Directories" and that the *MUtilities'* `bin/` directory is contained in your "Additional Library Directories".
|
||||||
|
* - Finally, make sure that your project links against the `MUtils32-1.lib` library file. For each build configuration, pick the proper **.lib** file from the corresponding `bin/<platform>/<config>/` directory!
|
||||||
|
* - If your projects intends to use the *MUtilities* library as a **static** library, then the macro `MUTILS_STATIC_LIB` *must* be added to your project's "Preprocessor Definitions".
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* # License
|
||||||
|
*
|
||||||
|
* This library is free software. It is released under the terms of the [*GNU Lesser General Public License (LGPL), Version 2.1*](https://www.gnu.org/licenses/lgpl-2.1.html).
|
||||||
|
*
|
||||||
|
* MUtilities - MuldeR's Utilities for Qt
|
||||||
|
* Copyright (C) 2004-2016 LoRd_MuldeR <MuldeR2@GMX.de>. Some rights reserved.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* # Acknowledgement
|
||||||
|
*
|
||||||
|
* The following third-party code is used in the MUtilities library:
|
||||||
|
*
|
||||||
|
* - **Keccak/SHA-3 Reference Implementation**
|
||||||
|
* Implementation by the Keccak, Keyak and Ketje Teams, namely, Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer
|
||||||
|
* No Copyright / Dedicated to the Public Domain
|
||||||
|
*
|
||||||
|
* - **Natural Order String Comparison**
|
||||||
|
* Copyright (C) 2000, 2004 by Martin Pool <mbp@sourcefrog.net>
|
||||||
|
* Released under the zlib License
|
||||||
|
*
|
||||||
|
* - **Adler-32 Checksum Algorithm (from zlib)**
|
||||||
|
* Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
||||||
|
* Released under the zlib License
|
||||||
|
*/
|
Loading…
Reference in New Issue
Block a user