updated docs
[sdlgit/SDL-Site.git] / pages / SDL.html-inc
index b74b8be..865ff4e 100644 (file)
 <!-- INDEX START -->
 <h3 id="TOP">Index</h3>
 
-<ul><li><a href="#NAME">NAME</a>
-<ul><li><a href="#CATEGORY">CATEGORY</a></li>
-</ul>
-</li>
+<ul><li><a href="#NAME">NAME</a></li>
+<li><a href="#CATEGORY">CATEGORY</a></li>
 <li><a href="#SYNOPSIS">SYNOPSIS</a></li>
 <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#The_SDL_Perl_2009_Development_Team">The SDL Perl 2009 Development Team</a>
-<ul><li><a href="#Documentation">Documentation</a></li>
-<li><a href="#Perl_Development">Perl Development</a></li>
-<li><a href="#Maintainance">Maintainance </a></li>
-</ul>
-</li>
-<li><a href="#MacOSX_Experimental_Usage">MacOSX Experimental Usage</a>
-<ul><li><a href="#Running_SDL_Perl_Scripts_in_MacOSX">Running SDL Perl Scripts in MacOSX</a></li>
-</ul>
-</li>
-<li><a href="#Functions_exported_by_SDL_pm">Functions exported by SDL.pm</a>
-<ul><li><a href="#init_flags">init(flags) </a></li>
-<li><a href="#init_subsystem_flags">init_subsystem(flags)</a></li>
-<li><a href="#quit_subsystem_flags">quit_subsystem(flags)</a></li>
+<li><a href="#CONSTANTS">CONSTANTS</a></li>
+<li><a href="#METHODS">METHODS</a>
+<ul><li><a href="#init">init</a></li>
+<li><a href="#init_subsystem">init_subsystem</a></li>
+<li><a href="#quit_subsystem">quit_subsystem</a></li>
 <li><a href="#quit">quit</a></li>
-<li><a href="#was_init_flags">was_init(flags)</a></li>
-<li><a href="#get_error">get_error()</a></li>
-<li><a href="#set_error_real_error_values">set_error_real(error, @values)  </a></li>
-<li><a href="#error_code_need_to_be_coded">error(code) * need to be coded</a></li>
-<li><a href="#clear_error">clear_error() </a></li>
-<li><a href="#load_object">load_object()</a></li>
-<li><a href="#load_function">load_function()</a></li>
-<li><a href="#unload_object">unload_object()</a></li>
-<li><a href="#VERSION">VERSION()</a></li>
-<li><a href="#version">version()</a></li>
+<li><a href="#was_init">was_init</a></li>
+<li><a href="#get_error">get_error</a></li>
+<li><a href="#set_error_real">set_error_real</a></li>
+<li><a href="#clear_error">clear_error</a></li>
+<li><a href="#version">version</a></li>
 <li><a href="#linked_version">linked_version</a></li>
-<li><a href="#get_error-2">get_error()</a></li>
-<li><a href="#delay_ms">delay(ms)</a></li>
+<li><a href="#get_ticks">get_ticks</a></li>
+<li><a href="#delay">delay</a></li>
 </ul>
 </li>
 <li><a href="#AUTHORS">AUTHORS</a>
+<ul><li><a href="#Project_Founder">Project Founder</a></li>
+<li><a href="#Current_Maintainers">Current Maintainers</a></li>
+<li><a href="#Core_Developers_and_Contributors">Core Developers and Contributors</a></li>
+</ul>
+</li>
+<li><a href="#COPYRIGHT_amp_LICENSE">COPYRIGHT &amp; LICENSE</a></li>
+<li><a href="#DISCLAIMER_OF_WARRANTY">DISCLAIMER OF WARRANTY</a>
 </li>
 </ul><hr />
 <!-- INDEX END -->
 
 <h1 id="NAME">NAME</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="NAME_CONTENT">
-<p>SDL_perl - Simple DirectMedia Layer for Perl</p>
+<p>SDL - Simple DirectMedia Layer for Perl</p>
 
 </div>
-<h2 id="CATEGORY">CATEGORY</h2>
+<h1 id="CATEGORY">CATEGORY</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="CATEGORY_CONTENT">
 <p>Core</p>
 
 </div>
 <h1 id="SYNOPSIS">SYNOPSIS</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="SYNOPSIS_CONTENT">
-<pre>  use SDL;
+<pre> use SDL;
 
 </pre>
 
 </div>
 <h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="DESCRIPTION_CONTENT">
-<p>SDL_perl is a package of perl modules that provides both functional and object orient
-interfaces to the Simple DirectMedia Layer for Perl 5.  This package does take some
-liberties with the SDL API, and attempts to adhere to the spirit of both the SDL
-and Perl.  This document describes the low-level functional SDL_perl API.  For the
-object oriented programming interface please see the documentation provided on a
-per class basis.</p>
-
-</div>
-<h1 id="The_SDL_Perl_2009_Development_Team">The SDL Perl 2009 Development Team</h1><p><a href="#TOP" class="toplink">Top</a></p>
-<div id="The_SDL_Perl_2009_Development_Team_C">
+<p>SDL_perl is a package of Perl modules that provide both functional and object oriented interfaces to the Simple DirectMedia Layer for Perl 5.
+This package takes some liberties with the SDL API, and attempts to adhere to the spirit of both the SDL and Perl.
+This document describes the low-level functional SDL Perl API.
+For the object oriented programming interface please see the documentation provided on a per-class basis.</p>
 
 </div>
-<h2 id="Documentation">Documentation</h2>
-<div id="Documentation_CONTENT">
-<pre>  Nick: magnet
+<h1 id="CONSTANTS">CONSTANTS</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="CONSTANTS_CONTENT">
+<p>The constants are not exported by default. You can export them by doing:</p>
+<pre> use SDL ':all';
 
 </pre>
-
-</div>
-<h2 id="Perl_Development">Perl Development</h2>
-<div id="Perl_Development_CONTENT">
-<pre>  Nick: Garu
-       Name: Breno G. de Oliveira
-
-       Nick: Dngor
-       Name: Rocco Caputo
-
-       Nick: nferraz
-       Name: Nelson Ferraz
-
-       Nick: acme
-       Name: Leon Brocard
-
-       Nick: FROGGS
-       Name: Tobias Leich
+<p>or access them directly:</p>
+<pre> SDL::SDL_INIT_AUDIO;
 
 </pre>
-
-</div>
-<h2 id="Maintainance">Maintainance </h2>
-<div id="Maintainance_CONTENT">
-<pre>  Nick: kthakore
-       Name: Kartik Thakore
+<p>or by choosing the export tags below:</p>
+<p>Export tag: ':init'</p>
+<pre> SDL_INIT_AUDIO
+ SDL_INIT_VIDEO
+ SDL_INIT_CDROM
+ SDL_INIT_EVERYTHING
+ SDL_INIT_NOPARACHUTE
+ SDL_INIT_JOYSTICK
+ SDL_INIT_TIMER
 
 </pre>
 
 </div>
-<h1 id="MacOSX_Experimental_Usage">MacOSX Experimental Usage</h1><p><a href="#TOP" class="toplink">Top</a></p>
-<div id="MacOSX_Experimental_Usage_CONTENT">
-<p>Please get libsdl packages from Fink</p>
-<pre>  perl Build.PL
-       perl Build test
-       perl Build bundle
-       perl Build install
-
-</pre>
+<h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="METHODS_CONTENT">
 
 </div>
-<h2 id="Running_SDL_Perl_Scripts_in_MacOSX">Running SDL Perl Scripts in MacOSX</h2>
-<div id="Running_SDL_Perl_Scripts_in_MacOSX_C">
-<p>First set the PERL5LIB environment variable to the dependencies of your script</p>
-<pre>  %export PERL5LIB=$PERL5LIB:./lib
+<h2 id="init">init</h2>
+<div id="init_CONTENT">
+<pre> SDL::init( $flags );
 
 </pre>
-<p>Use the SDLPerl executable made in the bundle and call your scripts</p>
-<pre>  %SDLPerl.app/Contents/MacOS/SDLPerl yourScript.pl
+<p>As with the C language API, SDL Perl initializes the SDL environment with the <code>SDL::init</code> subroutine.
+This routine takes a mode flag constructed through the bitwise OR product of the <code>SDL_INIT_*</code> constants.
+The <code>$flags</code> tell <code>SDL::init</code> which subsystems to initialize.</p>
+<pre> SDL::init(SDL_INIT_AUDIO | SDL_INIT_JOYSTICK);
 
 </pre>
+<p><code>SDL::init</code> returns <code>0</code> on success, or <code>-1</code> on error.</p>
 
 </div>
-<h1 id="Functions_exported_by_SDL_pm">Functions exported by SDL.pm</h1><p><a href="#TOP" class="toplink">Top</a></p>
-<div id="Functions_exported_by_SDL_pm_CONTENT">
+<h2 id="init_subsystem">init_subsystem</h2>
+<div id="init_subsystem_CONTENT">
+<pre> SDL::init_subsystem( $flags );
 
-</div>
-<h2 id="init_flags">init(flags) </h2>
-<div id="init_flags_CONTENT">
-<p>As with the C language API, SDL_perl initializes the SDL environment through
-the <code>SDL::init</code> subroutine.  This routine takes a mode flag constructed through
-the bitwise OR product of the following constants:</p>
-<dl>
-       <dt>*
-INIT_AUDIO</dt>
-       <dt>*
-INIT_VIDEO</dt>
-       <dt>*
-INIT_CDROM</dt>
-       <dt>*
-INIT_EVERYTHING</dt>
-       <dt>*
-INIT_NOPARACHUTE</dt>
-       <dt>*
-INIT_JOYSTICK</dt>
-       <dt>*
-INIT_TIMER</dt>
-</dl>
-<p><code>SDL::Init</code> returns 0 on success, or -1 on error.</p>
+</pre>
+<p>After SDL has been initialized with <code>SDL::init</code> you may initialize any uninitialized subsystems with <code>SDL::init_subsystem</code>.
+The <code>$flags</code> tell <code>SDL::init_subsystem</code> which subsystems to initialize, and are taken in the same way as <code>SDL::init</code>.</p>
+<p><code>SDL::init_subsystem</code> returns <code>0</code> on success, or <code>-1</code> on error.</p>
 
 </div>
-<h2 id="init_subsystem_flags">init_subsystem(flags)</h2>
-<div id="init_subsystem_flags_CONTENT">
-<p>After SDL has been initialized with SDL::init you may initialize uninitialized subsystems with SDL::init_subsystem.
-The flags parameter is the same as that used in SDL::init. </p>
-<p>SDL::init_subsystem returns 0 on success, or -1 on error.</p>
+<h2 id="quit_subsystem">quit_subsystem</h2>
+<div id="quit_subsystem_CONTENT">
+<pre> SDL::quit_subsystem( $flags );
 
-</div>
-<h2 id="quit_subsystem_flags">quit_subsystem(flags)</h2>
-<div id="quit_subsystem_flags_CONTENT">
-<p>SDL::quit_subsystem allows you to shut down a subsystem that has been previously initialized by SDL::init or SDL::init_subsystem.
-The flags tells SDL::quit_subSystem which subsystems to shut down, it uses the same values that are passed to SDL::init. </p>
-<p>SDL::quit_subsystem doesn't returns any value.</p>
+</pre>
+<p><code>SDL::quit_subsystem</code> allows you to shut down a subsystem that has been previously initialized by <code>SDL::init</code> or <code>SDL::init_subsystem</code>.
+The <code>$flags</code> tell <code>SDL::quit_subsystem</code> which subsystems to shut down, and are taken in the same way as <code>SDL::init</code>.</p>
+<p><code>SDL::quit_subsystem</code> doesn't return any values.</p>
 
 </div>
 <h2 id="quit">quit</h2>
 <div id="quit_CONTENT">
-<p>Shuts down all SDL subsystems, unloads the dynamically linked library and frees the allocated resources. This should always be called before you exit.</p>
-<p>SDL::quit doesn't returns any value.</p>
+<pre> SDL::quit;
 
-</div>
-<h2 id="was_init_flags">was_init(flags)</h2>
-<div id="was_init_flags_CONTENT">
-<p>SDL::was_init allows you to see which SDL subsytems have been initialized.
-flags is a bitwise OR'd combination of the subsystems you wish to check (see SDL::init for a list of subsystem flags). 
-If 'flags' is 0 or SDL_INIT_EVERYTHING, it returns a mask of all initialized subsystems (this does not include SDL_INIT_EVENTTHREAD or SDL_INIT_NOPARACHUTE).</p>
+</pre>
+<p><code>SDL::quit</code> Shuts down all SDL subsystems, unloads the dynamically linked library and frees the allocated resources.</p>
+<p><strong>Note:</strong> This will be called automatically when Perl exits. You don't need to call this, except if you want to initialize SDL again after this.</p>
+<p><code>SDL::quit</code> doesn't return any values.</p>
 
+</div>
+<h2 id="was_init">was_init</h2>
+<div id="was_init_CONTENT">
+<pre> my $flags = SDL::was_init( $flags );
 
+</pre>
+<p><code>SDL::was_init</code> allows you to see which SDL subsytems have been initialized.
+The <code>$flags</code> tell <code>SDL::was_init</code> which subsystems to check, and are taken in the same way as <code>SDL::init</code>.</p>
+<p><code>SDL::was_init</code> returns a mask of the initialized subsystems it checks.
+If <code>$flags</code> is <code>0</code> or <code>SDL_INIT_EVERYTHING</code>, a mask of all initialized subsystems will be returned (this does not include <code>SDL_INIT_EVENTTHREAD</code> or <code>SDL_INIT_NOPARACHUTE</code>).</p>
+<pre> use SDL ':all';
 
+ my $mask = SDL::was_init(SDL_INIT_AUDIO | SDL_INIT_JOYSTICK);
+ if($mask &amp; SDL_INIT_AUDIO and $mask &amp; SDL_INIT_JOYSTICK) {
+     # Both subsystems are initialized!
+ }
 
+</pre>
 
 </div>
-<h2 id="get_error">get_error()</h2>
+<h2 id="get_error">get_error</h2>
 <div id="get_error_CONTENT">
-<p>The last error message set by the SDL library can be retrieved using the subroutine
-<code>SDL::get_error</code>, which returns a scalar containing the text of the message if any.</p>
+<pre> my $error = SDL::get_error;
 
-</div>
-<h2 id="set_error_real_error_values">set_error_real(error, @values)  </h2>
-<div id="set_error_real_error_values_CONTENT">
-<p>SDL::get_error sets the SDL error to a printf style formatted string. 
-it doesn't returns any values.</p>
+</pre>
+<p>Returns a scalar value containing the last error message set by the SDL library (if any).</p>
 
 </div>
-<h2 id="error_code_need_to_be_coded">error(code) * need to be coded</h2>
-<div id="error_code_need_to_be_coded_CONTENT">
-<p>Sets the SDL error message to one of several predefined strings specified by code. </p>
-<p>code can be :</p>
-<dl>
-       <dt>SDL_errorcode</dt>
-       <dd>
-               <p>The corresponding error string</p>
-       </dd>
-       <dt>SDL_ENOMEM</dt>
-       <dd>
-               <p>Out of memory</p>
-       </dd>
-       <dt>SDL_EFREAD</dt>
-       <dd>
-               <p>Error reading from datastream</p>
-       </dd>
-       <dt>SDL_EFWRITE</dt>
-       <dd>
-               <p>Error writing to datastream</p>
-       </dd>
-       <dt>SDL_EFSEEK</dt>
-       <dd>
-               <p>Error seeking in datastream</p>
-       </dd>
-       <dt>SDL_UNSUPPORTED</dt>
-       <dd>
-               <p>Unknown SDL error</p>
-       </dd>
-       <dt>SDL_LASTERROR</dt>
-       <dd>
-               <p>Unknown SDL error</p>
-       </dd>
-       <dt>any other value</dt>
-       <dd>
-               <p>Unknown SDL error</p>
-       </dd>
-</dl>
-
-
-
-
-<p>Note 1: SDL_LASTERROR marks the highest numbered predefined error.
-Note 2: SDL also defines SDL_OutOfMemory() and SDL_Unsupported() for internal use
-which are equivalent to SDL_Error(SDL_ENOMEM) and SDL_Error(SDL_UNSUPPORTED) respectively. </p>
-<p>SDL::Error doesn't returns any value.</p>
-
-
-
+<h2 id="set_error_real">set_error_real</h2>
+<div id="set_error_real_CONTENT">
+<pre> SDL::set_error_real( $printf_format, @values )
 
+</pre>
+<p><code>SDL::set_error_real</code> sets the SDL error to a <code>printf</code> style formatted string.</p>
+<p><code>SDL::set_error_real</code> doesn't return any values.</p>
 
 </div>
-<h2 id="clear_error">clear_error() </h2>
+<h2 id="clear_error">clear_error</h2>
 <div id="clear_error_CONTENT">
-<p>SDL::clear_error deletes all information about the last internal SDL error. Useful if the error has been handled by the program.
-it doesn't returns any value.</p>
+<pre> SDL::clear_error;
 
-</div>
-<h2 id="load_object">load_object()</h2>
-<div id="load_object_CONTENT">
-<p>Need to be coded.</p>
+</pre>
+<p><code>SDL::clear_error</code> deletes all information about the last SDL error.
+This is useful if the error has been handled by the program.</p>
+<p><code>SDL::clear_error</code> doesn't return any values.</p>
 
 </div>
-<h2 id="load_function">load_function()</h2>
-<div id="load_function_CONTENT">
-<p>Need to be coded.</p>
+<h2 id="version">version</h2>
+<div id="version_CONTENT">
+<pre> my $version = SDL::version;
 
-</div>
-<h2 id="unload_object">unload_object()</h2>
-<div id="unload_object_CONTENT">
-<p>Need to be coded.</p>
+</pre>
+<p>Returns an <code>SDL::Version</code> object of the SDL library at compile-time.</p>
+<pre> use SDL;
+ use SDL::Version;
 
-</div>
-<h2 id="VERSION">VERSION()</h2>
-<div id="VERSION_CONTENT">
-<p>Need to be coded. </p>
+ my $v = SDL::version;
+ printf(&quot;got version: %d.%d.%d\n&quot;, $v-&gt;major, $v-&gt;minor, $v-&gt;patch);
 
-</div>
-<h2 id="version">version()</h2>
-<div id="version_CONTENT">
-<p>Need to be coded.</p>
+</pre>
 
 </div>
 <h2 id="linked_version">linked_version</h2>
 <div id="linked_version_CONTENT">
-<p>Need to be coded.</p>
-
-</div>
-<h2 id="get_error-2">get_error()</h2>
-<div id="get_error_CONTENT-2">
-<p>The last error message set by the SDL library can be retrieved using the subroutine
-<code>SDL::get_error</code>, which returns a scalar containing the text of the message if any.</p>
+<p><code>SDL::linked_version</code> works in the same way as <code>SDL::version</code>, but returns an <code>SDL::Version</code> object of the SDL library at link-time.</p>
 
 </div>
-<h2 id="delay_ms">delay(ms)</h2>
-<div id="delay_ms_CONTENT">
-<p>This subroutine allows an application to delay further operations for atleast a
-number of milliseconds provided as the argument.  The actual delay may be longer
-than the specified depending on the underlying OS.</p>
+<h2 id="get_ticks">get_ticks</h2>
+<div id="get_ticks_CONTENT">
+<pre> my $ticks = SDL::get_ticks;
 
+</pre>
+<p>Returns the number of milliseconds since SDL library initialization.
+This value wraps around if the program runs for more than 49.7 days</p>
 
+</div>
+<h2 id="delay">delay</h2>
+<div id="delay_CONTENT">
+<pre> SDL::delay( $ms );
 
+</pre>
+<p><code>SDL::delay</code> waits the specified number of milliseconds before returning.
+The actual delay may be longer than specified depending on the underlying OS.</p>
+<p><code>SDL::delay</code> doesn't return anything.</p>
+<pre> # Delay for half a second
+ SDL::delay(500);
 
+</pre>
 
 </div>
 <h1 id="AUTHORS">AUTHORS</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="AUTHORS_CONTENT">
-<p>magnet, kthakore</p>
 
+</div>
+<h2 id="Project_Founder">Project Founder</h2>
+<div id="Project_Founder_CONTENT">
+<p>David J. Goehrig</p>
 
+</div>
+<h2 id="Current_Maintainers">Current Maintainers</h2>
+<div id="Current_Maintainers_CONTENT">
+<p>Kartik Thakore (kthakore)</p>
+<p>Tobias Leich (FROGGS)</p>
 
+</div>
+<h2 id="Core_Developers_and_Contributors">Core Developers and Contributors</h2>
+<div id="Core_Developers_and_Contributors_CON">
+<p>The following people have dedicated blood sweat and tears to making SDL Perl possible.</p>
+<p>See the <a href="http://github.com/kthakore/SDL_perl/graphs/impact">impact graph</a> on our github repository.</p>
+<p>Andy Bakun &lt;sdlperl@thwartedefforts.org&gt;</p>
+<p>Benedikt Meurer &lt;bmeurer@fwdn.de&gt;</p>
+<p>Blaise Roth (Blaizer) &lt;blaiseroth@gmail.com&gt;</p>
+<p>Breno G. de Oliveira (garu)</p>
+<p>Brian Cassidy (bricas)</p>
+<p>chromatic &lt;chromatic@wgz.org&gt;</p>
+<p>Daniel Mantovani &lt;daniel.oliveira.mantovani@gmail.com&gt;</p>
+<p>Daniel Ruoso http://daniel.ruoso.com/</p>
+<p>David J. Goehrig &lt;dgoehrig@cpan.org&gt;</p>
+<p>Dustin Mays (dorkfish) &lt;dork.fish.wat.@gmail.com&gt;</p>
+<p>Fedora</p>
+<p>Gabor Szabo (szabgab) &lt;szabgab@gmail.com&gt;</p>
+<p>Guillaue Cottenceau (gc) &lt;gc@mandrakesoft.com&gt;</p>
+<p>James King</p>
+<p>James Wright &lt;jwright@cpan.org&gt;</p>
+<p>Jeffrey T. Palmer (jtpalmer) &lt;jeffrey.t.palmer@gmail.com&gt;</p>
+<p>Kartik Thakore (kthakore) &lt;thakore.kartik@gmail.com&gt;</p>
+<p>KatrinaTheLamia</p>
+<p>kmx &lt;kmx@cpan.org&gt;</p>
+<p>Luke</p>
+<p>Michael Lamertz &lt;mike@perl-ronin.de&gt;</p>
+<p>morgoth.666</p>
+<p>Peter BARABAS &lt;z0d@artifact.hu&gt;</p>
+<p>Russell Valentine &lt;russ_allegro@yahoo.com&gt;</p>
+<p>Ryan Hanlon</p>
+<p>Stephane Desneux &lt;sdx@desneux.com&gt;</p>
+<p>Tels &lt;http://www.bloodgate.com&gt;</p>
+<p>Thomas Tongue</p>
+<p>Tobias Leich (FROGGS)</p>
+<p>Tony C</p>
+<p>Yuval Kogman (nothingmuch)</p>
+<p>Wayne Keenan &lt;wayne@metaverse.fsnet.co.uk&gt;</p>
+<p>If you would like to contribute to SDL Perl, please post a message on the mailing list:</p>
+<p>sdl-devel@perl.org</p>
+<p>And request access to the github repository. Or drop us a line on #sdl over at irc.perl.org</p>
 
+</div>
+<h1 id="COPYRIGHT_amp_LICENSE">COPYRIGHT &amp; LICENSE</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="COPYRIGHT_amp_LICENSE_CONTENT">
+<p>Copyright 2002-2010 SDL Authors as listed above, all rights reserved.</p>
+<p>This program is free software; you can redistribute it and/or modify it
+under the same terms as Perl itself.</p>
+
+</div>
+<h1 id="DISCLAIMER_OF_WARRANTY">DISCLAIMER OF WARRANTY</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="DISCLAIMER_OF_WARRANTY_CONTENT">
+<p>BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE SOFTWARE &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, EITHER
+EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
+ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
+YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+NECESSARY SERVICING, REPAIR, OR CORRECTION.</p>
+<p>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE
+LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL,
+OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
+THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+</p>
 
 </div>
 </div>
\ No newline at end of file