fixes for problems reported by htmldoc and tidy

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@7430 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2005-09-11 20:00:39 +00:00
commit 64c4e71c84
7 changed files with 305 additions and 556 deletions

View file

@ -14,342 +14,35 @@
<body style="background-color: rgb(255, 255, 255);">
<h1><a name="Ruby"></a>27 SWIG and Ruby</h1>
<H1><a name="Ruby"></a>27 SWIG and Ruby</H1>
<!-- INDEX -->
<div class="sectiontoc">
<ul>
<li><a href="#Ruby_nn2">Preliminaries</a>
<ul>
<li><a href="#Ruby_nn3">Running SWIG</a>
</li>
<li><a href="#Ruby_nn4">Getting the right
header files</a>
</li>
<li><a href="#Ruby_nn5">Compiling a dynamic
module</a>
</li>
<li><a href="#Ruby_nn6">Using your module</a>
</li>
<li><a href="#Ruby_nn7">Static linking</a>
</li>
<li><a href="#Ruby_nn8">Compilation of C++
extensions</a>
</li>
</ul>
</li>
<li><a href="#Ruby_nn9">Building Ruby Extensions
under Windows 95/NT</a>
<ul>
<li><a href="#Ruby_nn10">Running SWIG from
Developer Studio</a>
</li>
</ul>
</li>
<li><a href="#Ruby_nn11">The Ruby-to-C/C++ Mapping</a>
<ul>
<li><a href="#Ruby_nn12">Modules</a>
</li>
<li><a href="#Ruby_nn13">Functions</a>
</li>
<li><a href="#Ruby_nn14">Variable Linking</a>
</li>
<li><a href="#Ruby_nn15">Constants</a>
</li>
<li><a href="#Ruby_nn16">Pointers</a>
</li>
<li><a href="#Ruby_nn17">Structures</a>
</li>
<li><a href="#Ruby_nn18">C++ classes</a>
</li>
<li><a href="#Ruby_nn19">C++ Inheritance</a>
</li>
<li><a href="#Ruby_nn20">C++ Overloaded
Functions</a>
</li>
<li><a href="#Ruby_nn21">C++ Operators</a>
</li>
<li><a href="#Ruby_nn22">C++ namespaces</a>
</li>
<li><a href="#Ruby_nn23">C++ templates</a>
</li>
<li><a href="#ruby_cpp_smart_pointers">C++
Smart Pointers</a>
</li>
<li><a href="#Ruby_nn25">Cross-Language
Polymorphism</a>
<ul>
<li><a href="#Ruby_nn26">Exception
Unrolling</a>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="#Ruby_nn27">Input and output
parameters</a>
</li>
<li><a href="#Ruby_nn28">Simple exception handling
</a></li>
<li><a href="#Ruby_nn29">Typemaps</a>
<ul>
<li><a href="#Ruby_nn30">What is a typemap?</a>
</li>
<li><a href="#Ruby_nn31">Ruby typemaps</a>
</li>
<li><a href="#Ruby_nn32">Typemap variables</a>
</li>
<li><a href="#Ruby_nn33">Useful Functions</a>
<ul>
<li><a href="#Ruby_nn34">C Datatypes to
Ruby Objects</a>
</li>
<li><a href="#Ruby_nn35">Ruby Objects to C
Datatypes</a>
</li>
<li><a href="#Ruby_nn36">Macros for VALUE</a>
</li>
<li><a href="#Ruby_nn37">Exceptions</a>
</li>
<li><a href="#Ruby_nn38">Iterators</a>
</li>
</ul>
</li>
<li><a href="#ruby_typemap_examples">Typemap
Examples</a>
</li>
<li><a href="#Ruby_nn40">Converting a Ruby
array to a char **</a>
</li>
<li><a href="#Ruby_nn41">Collecting arguments
in a hash</a>
</li>
<li><a href="#Ruby_nn42">Pointer handling</a>
<ul>
<li><a href="#Ruby_nn43">Ruby Datatype
Wrapping</a>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="#ruby_operator_overloading">Operator
overloading</a>
<ul>
<li><a href="#Ruby_nn45">Example: STL Vector
to Ruby Array</a>
</li>
</ul>
</li>
<li><a href="#Ruby_nn46">Advanced Topics</a>
<ul>
<li><a href="#Ruby_nn47">Creating Multi-Module
Packages</a>
</li>
<li><a href="#Ruby_nn48">Defining Aliases</a>
</li>
<li><a href="#Ruby_nn49">Predicate Methods</a>
</li>
<li><a href="#Ruby_nn50">Specifying Mixin
Modules</a>
</li>
</ul>
</li>
<li>
<a href="#Ruby_nn51">Memory Management</a>
<ul>
<li><a href="#Ruby_nn52">Mark and Sweep
Garbage Collector</a>
</li>
<li><a href="#Ruby_nn53">Object Ownership</a>
</li>
<li><a href="#Ruby_nn54">Free Functions</a>
</li>
<li><a href="#Ruby_nn55">Mark Functions</a></li>
</ul>
</li>
<li><a href="#Ruby_nn2">Preliminaries</a>
<ul>
<li><a href="#Ruby_nn3">Running SWIG</a>
<li><a href="#Ruby_nn12">Modules</a>
<li><a href="#Ruby_nn13">Functions</a>
<li><a href="#Ruby_nn15">Constants</a>
<li><a href="#Ruby_nn16">Pointers</a>
<li><a href="#Ruby_nn17">Structures</a>
<li><a href="#Ruby_nn18">C++ classes</a>
</ul>
<li><a href="#Ruby_nn29">Typemaps</a>
<ul>
<li><a href="#Ruby_nn37">Exceptions</a>
<li><a href="#Ruby_nn38">Iterators</a>
</ul>
</ul>
</div>
<!-- INDEX -->
<p>This chapter describes SWIG's support of Ruby. </p>
<h2><a name="Ruby_nn2"></a>27.1 Preliminaries</h2>
<H2><a name="Ruby_nn2"></a>27.1 Preliminaries</H2>
<p>
@ -373,7 +66,7 @@ has a basic understanding of Ruby.
</p>
<h3><a name="Ruby_nn3"></a>27.1.1 Running SWIG</h3>
<H3><a name="Ruby_nn3"></a>27.1.1 Running SWIG</H3>
<p>
@ -438,9 +131,10 @@ can run Ruby to find out. For example:
<div class="code">
<pre>$ <b>ruby -e 'puts $:.join("\n")'</b><br>/usr/local/lib/ruby/site_ruby/1.6 /usr/local/lib/ruby/site_ruby/1.6/i686-linux /usr/local/lib/ruby/site_ruby /usr/local/lib/ruby/1.6 /usr/local/lib/ruby/1.6/i686-linux . </pre>
<pre>
$ <b>ruby -e 'puts $:.join("\n")'</b><br>/usr/local/lib/ruby/site_ruby/1.6 /usr/local/lib/ruby/site_ruby/1.6/i686-linux
/usr/local/lib/ruby/site_ruby /usr/local/lib/ruby/1.6 /usr/local/lib/ruby/1.6/i686-linux .
</pre>
</div>
@ -848,7 +542,7 @@ in your SWIG interface files to Ruby constructs.
</p>
<h3><a name="Ruby_nn12"></a>27.3.1 Modules</h3>
<H3><a name="Ruby_nn12"></a>27.1.2 Modules</H3>
<p>
@ -973,7 +667,7 @@ with any of Ruby's built-in names.
</p>
<h3><a name="Ruby_nn13"></a>27.3.2 Functions</h3>
<H3><a name="Ruby_nn13"></a>27.1.3 Functions</H3>
<p>
@ -1089,7 +783,7 @@ disabled using <tt>%mutable</tt>.
</p>
<h3><a name="Ruby_nn15"></a>27.3.4 Constants</h3>
<H3><a name="Ruby_nn15"></a>27.1.4 Constants</H3>
<p>
@ -1120,7 +814,7 @@ values, e.g.
</div>
<h3><a name="Ruby_nn16"></a>27.3.5 Pointers</h3>
<H3><a name="Ruby_nn16"></a>27.1.5 Pointers</H3>
<p>
@ -1160,7 +854,7 @@ object.
</p>
<h3><a name="Ruby_nn17"></a>27.3.6 Structures</h3>
<H3><a name="Ruby_nn17"></a>27.1.6 Structures</H3>
<p>
@ -1295,7 +989,7 @@ generates accessor functions such as this:
</div>
<h3><a name="Ruby_nn18"></a>27.3.7 C++ classes</h3>
<H3><a name="Ruby_nn18"></a>27.1.7 C++ classes</H3>
<p>
@ -2261,7 +1955,7 @@ Ruby</em></a>.
</p>
<h2><a name="Ruby_nn29"></a>27.6 Typemaps</h2>
<H2><a name="Ruby_nn29"></a>27.2 Typemaps</H2>
<p>
@ -2717,7 +2411,7 @@ for VALUE</h4>
<div class="indent">pointer to array storage</div>
<h4><a name="Ruby_nn37"></a>27.6.4.4 Exceptions</h4>
<H4><a name="Ruby_nn37"></a>27.2.0.1 Exceptions</H4>
<p>
@ -2838,7 +2532,7 @@ interpreted as with <tt>printf()</tt>.
</div>
<h4><a name="Ruby_nn38"></a>27.6.4.5 Iterators</h4>
<H4><a name="Ruby_nn38"></a>27.2.0.2 Iterators</H4>
<p>