gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r9994 - Extractor-docs/WWW


From: gnunet
Subject: [GNUnet-SVN] r9994 - Extractor-docs/WWW
Date: Wed, 13 Jan 2010 17:17:20 +0100

Author: grothoff
Date: 2010-01-13 17:17:20 +0100 (Wed, 13 Jan 2010)
New Revision: 9994

Added:
   Extractor-docs/WWW/extractor.pdf
Modified:
   Extractor-docs/WWW/documentation.html
   Extractor-docs/WWW/download.html
   Extractor-docs/WWW/extractor.html
   Extractor-docs/WWW/index.html
Log:
updating documentation

Modified: Extractor-docs/WWW/documentation.html
===================================================================
--- Extractor-docs/WWW/documentation.html       2010-01-13 16:12:56 UTC (rev 
9993)
+++ Extractor-docs/WWW/documentation.html       2010-01-13 16:17:20 UTC (rev 
9994)
@@ -6,7 +6,7 @@
 <meta name="language" content="en">
 <meta name="description" content="Documentation for libextractor, a simple 
library for meta-data extraction.">
 <meta name="author" content="Vids Samanta and Christian Grothoff">
-<meta name="rights" content="(C) 2002,2003,2004,2005,2006,2007 by Vids Samanta 
and Christian Grothoff">
+<meta name="rights" content="(C) 2002,2003,2004,2005,2006,2007,2008,2009,2010 
by Vids Samanta and Christian Grothoff">
 <meta name="keywords" content="keyword, extraction, mp3, html, pdf, images, 
jpeg, gif, ps, mime, doc, xls, sxw, sdw, ogg, dvi, deb, zip, qt, asf, mpeg, 
elf, real, png, ppt, id3, id3v2">
 <meta name="robots" content="index,follow">
 <meta name="revisit-after" content="28 days">
@@ -19,7 +19,7 @@
 <body>
 <table width="99%" border="0" cellpadding="0" cellspacing="0">
 <tbody>
-<tr><td colspan="2" width="99%" bgcolor="#99bbff" align="center">libextractor 
- Documentation</td></tr>
+<tr><td colspan="2" width="99%" bgcolor="#99bbff" align="center">GNU 
libextractor - Documentation</td></tr>
 <tr><td valign="top">
 <table width="15%" border="0" cellpadding="2" cellspacing="3">
 <tbody><tr><th nowrap="nowrap" bgcolor="99BBFF"><a 
href="libextractor.html">Home</a></th></tr>
@@ -34,7 +34,8 @@
 </td>
 
 <td valign="top"><h2>Further documentation</h2>
-This documentation covers the major aspects of libextractor.
+This documentation covers the major aspects of libextractor in brief.
+More details can be found in the GNU libextractor manual (<a 
href="extractor.html">html</a>, <a href="extractor.pdf">pdf</a>).
 The man pages for <a href="man/extract.html">extract</a> and <a 
href="man/libextractor.html">libextractor</a> are also on-line.
 <br>
 An article describing libextractor was published in the <a 
href="http://www.linuxjournal.com/";>LinuxJournal</a> and is available <a 
href="http://www.linuxjournal.com/article/7552";>here</a>.  That article 
describes the API for versions 0.0.0 to 0.5.23 and not the more recent 0.6.x 
API.

Modified: Extractor-docs/WWW/download.html
===================================================================
--- Extractor-docs/WWW/download.html    2010-01-13 16:12:56 UTC (rev 9993)
+++ Extractor-docs/WWW/download.html    2010-01-13 16:17:20 UTC (rev 9994)
@@ -39,13 +39,13 @@
 <h2>Subversion access</h2>
 <p>
 You can access the current development version of libextractor using
-<pre>$ svn checkout https://gnunet.org/svn/Extractor</pre><br>
+<pre>$ svn checkout https://ng.gnunet.org/svn/Extractor</pre><br>
 A Java binding for libextractor is in
-<pre>$ svn checkout https://gnunet.org/svn/Extractor-java</pre><br>
+<pre>$ svn checkout https://ng.gnunet.org/svn/Extractor-java</pre><br>
 A Mono binding for libextractor is in
-<pre>$ svn checkout https://gnunet.org/svn/Extractor-mono</pre><br>
+<pre>$ svn checkout https://ng.gnunet.org/svn/Extractor-mono</pre><br>
 A Python binding can be found under
-<pre>$ svn checkout https://gnunet.org/svn/Extractor-python</pre>
+<pre>$ svn checkout https://ng.gnunet.org/svn/Extractor-python</pre>
 A source package is <a 
href="http://ftpmirror.gnu.org/libextractor/libextractor-python-0.5.tar.gz";>here</a>.
 This binding has been packaged as a python egg, available <a 
href="http://cheeseshop.python.org/pypi/Extractor";>here</a>
 A second Python binding that includes a binding for doodle can be found <a 
href="http://grothoff.org/christian/doodle/download/nokos_extractor_doodle_python.zip";>here</a>.
@@ -64,17 +64,20 @@
 <p>
 The debian package can be downloaded from the <a 
href="http://packages.debian.org/";>official debian archive</a>.
 The extract package can be found under Utilities and the library under 
Libraries.
-The respective packages for libextractor are <a 
href="http://packages.debian.org/extract";>extract</a>, <a 
href="http://packages.debian.org/libextractor1";>libextractor1</a> and for 
development <a 
href="http://packages.debian.org/libextractor1-dev";>libextractor1-dev</a>.
+The respective packages for libextractor are <a 
href="http://packages.debian.org/extract";>extract</a>, <a 
href="http://packages.debian.org/libextractor";>libextractor</a> and for 
development <a 
href="http://packages.debian.org/libextractor-dev";>libextractor-dev</a>.
 <a href="http://www.backports.org/";>Backports</a> for Debian Stable are also 
available.
 </p>
 <a name="tar"></a>
 <h2>Tar Package</h2>
 <p>
 The latest version can be found on <a 
href="http://ftpmirror.gnu.org/libextractor/";>GNU mirrors</a>.  
-If the mirror does not work, you should be able to find them on the main FTP 
server at <a 
href="ftp://ftp.gnu.org/libextractor/";>ftp://ftp.gnu.org/libextractor/</a>.  
+If the mirror does not work, you should be able to find them on the main FTP 
server at 
+<a href="ftp://ftp.gnu.org/libextractor/";>ftp://ftp.gnu.org/libextractor/</a>. 
 
 <br>
-Latest Java-binding is <a 
href="http://ftpmirror.gnu.org/libextractor/libextractor-java-0.5.18.tar.gz";>libextractor-java-0.5.18.tar.gz</a>.
+Latest release is <a 
href="http://ftpmirror.gnu.org/libextractor/libextractor-0.6.0.tar.gz";>libextractor-0.6.0.tar.gz</a>.
 <br>
+Latest Java-binding is <a 
href="http://ftpmirror.gnu.org/libextractor/libextractor-java-0.6.0.tar.gz";>libextractor-java-0.6.0.tar.gz</a>.
+<br>
 Latest Mono-binding is <a 
href="http://ftpmirror.gnu.org/libextractor/libextractor-mono-0.5.23.tar.gz";>libextractor-mono-0.5.23.tar.gz</a>.
 <br>
 Latest Python-binding is <a 
href="http://ftpmirror.gnu.org/libextractor/libextractor-python-0.5.tar.gz";>libextractor-python-0.5.tar.gz</a>.
@@ -82,7 +85,9 @@
 </p>
 
 <h2>RPM Package</h2>
-RPMs for SuSE 9.3 can be found here (<a 
href="ftp://ftp.suse.com/pub/people/ke/9.3-i386/";>i386</a>, <a 
href="ftp://ftp.suse.com/pub/people/ke/9.3-x86_64/";>x86_64</a>, <a 
href="ftp://ftp.suse.com/pub/people/ke/SRPM/";>SRPM</a>)
+RPMs for SuSE 9.3 can be found here (<a 
href="ftp://ftp.suse.com/pub/people/ke/9.3-i386/";>i386</a>, 
+<a href="ftp://ftp.suse.com/pub/people/ke/9.3-x86_64/";>x86_64</a>, 
+<a href="ftp://ftp.suse.com/pub/people/ke/SRPM/";>SRPM</a>)
 <a name="win"></a>
 
 <h2>Windows</h2>

Modified: Extractor-docs/WWW/extractor.html
===================================================================
--- Extractor-docs/WWW/extractor.html   2010-01-13 16:12:56 UTC (rev 9993)
+++ Extractor-docs/WWW/extractor.html   2010-01-13 16:17:20 UTC (rev 9994)
@@ -1,9 +1,11 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html401/loose.dtd";>
 <html>
 <!-- This manual is for GNU libextractor
-(version 0.6.0, 1 January 2010),
-which is GNU's library for meta data extraction.
+(version 0.6.0, 13 January 2010).
 
+GNU libextractor is a GNU package.
+
+
 Copyright C 2007, 2010 Christian Grothoff
 
 Permission is granted to copy, distribute and/or modify this document
@@ -14,15 +16,14 @@
 Free Documentation License".
 
  -->
-<!-- Created on January, 1 2010 by texi2html 1.78 -->
-<!--
-Written by: Lionel Cons <address@hidden> (original author)
+<!-- Created on January 13, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <address@hidden> (original author)
             Karl Berry  <address@hidden>
             Olaf Bachmann <address@hidden>
             and many others.
 Maintained by: Many creative people.
 Send bugs and suggestions to <address@hidden>
-
 -->
 <head>
 <title>The GNU libextractor Reference Manual</title>
@@ -31,11 +32,12 @@
 <meta name="keywords" content="The GNU libextractor Reference Manual">
 <meta name="resource-type" content="document">
 <meta name="distribution" content="global">
-<meta name="Generator" content="texi2html 1.78">
+<meta name="Generator" content="texi2html 1.82">
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <style type="text/css">
 <!--
 a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
 pre.display {font-family: serif}
 pre.format {font-family: serif}
 pre.menu-comment {font-family: serif}
@@ -56,18 +58,20 @@
 <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
 
 <a name="Top"></a>
-<a name="SEC_Top"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
+<a name="The-GNU-libextractor-Reference-Manual"></a>
 <h1 class="settitle">The GNU libextractor Reference Manual</h1>
 <p>This manual is for GNU libextractor
-(version 0.6.0, 1 January 2010),
-which is GNU's library for meta data extraction.
+(version 0.6.0, 13 January 2010).
 </p>
+<p>GNU libextractor is a GNU package.
+</p>
+
 <p>Copyright &copy; 2007, 2010 Christian Grothoff
 </p>
 <blockquote><p>Permission is granted to copy, distribute and/or modify this 
document
@@ -78,43 +82,41 @@
 Free Documentation License&quot;.
 </p></blockquote>
 
-<p>GNU libextractor is a GNU package.
-</p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top"><a href="#SEC1">1. 
Introduction</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
         What is <acronym>GNU libextractor</acronym>.
+<tr><td align="left" valign="top"><a href="#Introduction">1. 
Introduction</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
         What is <acronym>GNU libextractor</acronym>.
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC2">2. 
Preparation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
         What you should do before using the library.
+<tr><td align="left" valign="top"><a href="#Preparation">2. 
Preparation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
         What you should do before using the library.
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC4">3. 
Generalities</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
         General library functions and data types.
+<tr><td align="left" valign="top"><a href="#Generalities">3. 
Generalities</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
         General library functions and data types.
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC5">4. Extracting meta 
data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         How to 
use <acronym>GNU libextractor</acronym> to obtain meta data.
+<tr><td align="left" valign="top"><a href="#Extracting-meta-data">4. 
Extracting meta data</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">         How to use <acronym>GNU libextractor</acronym> to obtain 
meta data.
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC10">5. Language 
bindings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
How to use <acronym>GNU libextractor</acronym> from languages other than C.
+<tr><td align="left" valign="top"><a href="#Language-bindings">5. Language 
bindings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
How to use <acronym>GNU libextractor</acronym> from languages other than C.
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC17">6. Utility 
functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
 Utility functions of <acronym>GNU libextractor</acronym>.
+<tr><td align="left" valign="top"><a href="#Utility-functions">6. Utility 
functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
 Utility functions of <acronym>GNU libextractor</acronym>.
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC20">7. Existing 
Plugins</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
What plugins are available.
+<tr><td align="left" valign="top"><a href="#Existing-Plugins">7. Existing 
Plugins</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
What plugins are available.
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC21">8. Writing new 
Plugins</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
How to write new plugins for <acronym>GNU libextractor</acronym>.
+<tr><td align="left" valign="top"><a href="#Writing-new-Plugins">8. Writing 
new Plugins</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
 How to write new plugins for <acronym>GNU libextractor</acronym>.
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC22">9. Internal utility 
functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   Utility 
functions of <acronym>GNU libextractor</acronym> for writing plugins.
+<tr><td align="left" valign="top"><a href="#Internal-utility-functions">9. 
Internal utility functions</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">   Utility functions of <acronym>GNU libextractor</acronym> for 
writing plugins.
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC23">10. Reporting 
bugs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
How to report bugs or request new features.
+<tr><td align="left" valign="top"><a href="#Reporting-bugs">10. Reporting 
bugs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
How to report bugs or request new features.
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 Appendices
 
-</pre></th></tr><tr><td align="left" valign="top"><a href="#SEC24">A. GNU 
GENERAL PUBLIC LICENSE</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">                     The GNU General Public License says how you
+</pre></th></tr><tr><td align="left" valign="top"><a href="#Copying">A. GNU 
GENERAL PUBLIC LICENSE</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">                     The GNU General Public License says how you
                                 can copy and share some parts of <acronym>GNU 
libextractor</acronym>.
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 Indices
 
-</pre></th></tr><tr><td align="left" valign="top"><a href="#SEC27">Concept 
Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
Index of concepts and programs.
+</pre></th></tr><tr><td align="left" valign="top"><a 
href="#Concept-Index">Concept Index</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">               Index of concepts and programs.
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC28">Function and Data 
Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     Index of 
functions, variables and data types.
+<tr><td align="left" valign="top"><a href="#Function-and-Data-Index">Function 
and Data Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
Index of functions, variables and data types.
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC29">Type 
Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
   Index of data types.
+<tr><td align="left" valign="top"><a href="#Type-Index">Type 
Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
   Index of data types.
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 </pre></th></tr></table>
@@ -123,26 +125,27 @@
 
 <hr size="1">
 <a name="Introduction"></a>
-<a name="SEC1"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC_Top" title="Previous 
section in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC2" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Top" title="Previous section 
in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Next section 
in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[ &lt;&lt; ]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC2" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Next chapter"> 
&gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="chapter"> 1. Introduction </h1>
+<a name="Introduction-1"></a>
+<h1 class="chapter">1. Introduction</h1>
 
-<p><acronym>GNU libextractor</acronym> is GNU's library for extracting meta 
data from
+<a name="index-error-handling"></a>
+<p><acronym>GNU libextractor</acronym> is GNU&rsquo;s library for extracting 
meta data from
 files.  Meta data includes format information (such as mime type,
 image dimensions, color depth, recording frequency), content
 descriptions (such as document title or document description) and
@@ -154,7 +157,7 @@
 avoids to ever report any errors.  Unexpected file contents simply
 result in less or possibly no meta data being extracted.  
 </p>
-<a name="IDX1"></a>
+<a name="index-plugin"></a>
 <p><acronym>GNU libextractor</acronym> uses plugins to handle various file 
formats.
 Technically a plugin can support multiple file formats; however, most
 plugins only support one particular format.  By default,
@@ -173,12 +176,12 @@
 <p>This manual focuses on providing documentation for writing software
 with <acronym>GNU libextractor</acronym>.  The only relevant parts for 
end-users
 are the chapter on compiling and installing <acronym>GNU libextractor</acronym>
-(See section <a href="#SEC2">Preparation</a>.).  Also, the chapter on existing 
plugins maybe of
-interest (See section <a href="#SEC20">Existing Plugins</a>.).  Additional 
documentation for
+(See section <a href="#Preparation">Preparation</a>.).  Also, the chapter on 
existing plugins maybe of
+interest (See section <a href="#Existing-Plugins">Existing Plugins</a>.).  
Additional documentation for
 end-users can be find in the man page on <code>extract</code> (using
 <tt>man extract</tt>).
 </p>
-<a name="IDX2"></a>
+<a name="index-license"></a>
 <p><acronym>GNU libextractor</acronym> is licensed under the GNU General 
Public License.  The
 developers have frequently received requests to license GNU
 libextractor under alternative terms.  However, <acronym>GNU 
libextractor</acronym>
@@ -187,30 +190,35 @@
 </p>
 <hr size="6">
 <a name="Preparation"></a>
-<a name="SEC2"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC1" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC3" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Introduction" title="Previous 
section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-on-GNU_002fLinux" 
title="Next section in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC1" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC4" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Introduction" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="chapter"> 2. Preparation </h1>
+<a name="Preparation-1"></a>
+<h1 class="chapter">2. Preparation</h1>
 
-<p>Compiling <acronym>GNU libextractor</acronym> follows the standard GNU 
autotools
-build process using <code>configure</code> and <code>make</code>.  For
-details, read the &lsquo;<tt>INSTALL</tt>&rsquo; file and query 
-<tt>./configure --help</tt> for additional options.
+<p>This chapter first describes the general build instructions that
+should apply to all systems.  Specific instructions for known problems
+for particular platforms are then described in individual sections
+afterwards.
 </p>
+<p>Compiling <acronym>GNU libextractor</acronym> follows the standard GNU 
autotools build process
+using <code>configure</code> and <code>make</code>.  For details on the GNU
+autotools build process, read the &lsquo;<tt>INSTALL</tt>&rsquo; file and query
+<tt>./configure --help</tt> for additional options.  
+</p>
 <p><acronym>GNU libextractor</acronym> has various dependencies, some of which 
are optional. 
 Instead of specifying the names of the software packages, we
 will give the list in terms of the names of the respective
@@ -289,11 +297,11 @@
 documents the &lsquo;<tt>extract</tt>&rsquo; tool.  The <acronym>GNU 
libextractor</acronym> man page gives a brief
 summary of the C API for <acronym>GNU libextractor</acronym>.
 </p>
-<a name="IDX3"></a>
-<a name="IDX4"></a>
-<a name="IDX5"></a>
-<a name="IDX6"></a>
-<a name="IDX7"></a>
+<a name="index-packageing"></a>
+<a name="index-directory-structure"></a>
+<a name="index-plugin-1"></a>
+<a name="index-environment-variables"></a>
+<a name="index-LIBEXTRACTOR_005fPREFIX"></a>
 <p>When you install <acronym>GNU libextractor</acronym>, various plugins will 
be
 installed in the &lsquo;<tt>lib/libextractor/</tt>&rsquo; directory.  The main 
library
 will be installed as &lsquo;<tt>lib/libextractor.so</tt>&rsquo;.  Note that
@@ -306,26 +314,325 @@
 <acronym>GNU libextractor</acronym> cannot locate a plugin, it will look in
 <tt>LIBEXTRACTOR_PREFIX/lib/libextractor/</tt>.
 </p>
+
 <hr size="6">
-<a name="SEC3"></a>
+<a name="Installation-on-GNU_002fLinux"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC2" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC4" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Preparation" title="Previous 
section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-on-FreeBSD" 
title="Next section in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC2" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC4" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Up section"> 
Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 2.1 Note to package maintainers </h2>
+<h2 class="section">2.1 Installation on GNU/Linux</h2>
 
+<p>Should work using the standard instructions without problems.
+</p>
+
+<hr size="6">
+<a name="Installation-on-FreeBSD"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Installation-on-GNU_002fLinux" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-on-OpenBSD" 
title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Up section"> 
Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h2 class="section">2.2 Installation on FreeBSD</h2>
+
+<p>Should work using the standard instructions without problems.
+</p>
+
+<hr size="6">
+<a name="Installation-on-OpenBSD"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Installation-on-FreeBSD" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-on-NetBSD" 
title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Up section"> 
Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h2 class="section">2.3 Installation on OpenBSD</h2>
+
+<p>OpenBSD 3.8 also doesn&rsquo;t have CODESET in 
&lsquo;<tt>langinfo.h</tt>&rsquo;.  CODESET
+is used in <acronym>GNU libextractor</acronym> in about three places.  This 
causes problems
+during compilation.
+</p>
+
+<hr size="6">
+<a name="Installation-on-NetBSD"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Installation-on-OpenBSD" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-using-MinGW" 
title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Up section"> 
Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h2 class="section">2.4 Installation on NetBSD</h2>
+
+<p>No reports so far.
+</p>
+
+<hr size="6">
+<a name="Installation-using-MinGW"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Installation-on-NetBSD" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-on-OS-X" title="Next 
section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Up section"> 
Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h2 class="section">2.5 Installation using MinGW</h2>
+
+<p>Linking -lstdc++ with the provided libtool fails on Cygwin, this
+is a problem with libtool, there is unfortunately no flag to tell
+libtool how to do its job on Cygwin and it seems that it cannot be the
+default to set the library check to &rsquo;pass_all&rsquo;.  Patching libtool 
may
+help.
+</p>
+<p>Note: this is a rather dated report and may no longer apply.
+</p>
+
+<hr size="6">
+<a name="Installation-on-OS-X"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Installation-using-MinGW" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a 
href="#Installing-and-uninstalling-the-framework" title="Next section in 
reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Up section"> 
Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h2 class="section">2.6 Installation on OS X</h2>
+
+<p>libextractor has two installation methods on Mac OS X: it can be
+installed as a Mac OS X framework or with the standard
+<code>./configure; make; make install</code> shell commands. The
+framework package is self-contained, but currently omits some of the
+extractor plugins that can be compiled in if libextractor is installed
+with <code>./configure; make; make install</code> (provided that the
+required dependencies exist.)
+</p>
+<hr size="6">
+<a name="Installing-and-uninstalling-the-framework"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Installation-on-OS-X" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-the-framework" title="Next 
section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-on-OS-X" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h3 class="subsection">2.6.1 Installing and uninstalling the framework</h3>
+
+<p>The binary framework is distributed as a disk image 
(&lsquo;<tt>Extractor-x.x.xx.dmg</tt>&rsquo;).
+Installation is done by opening the disk image and clicking 
&lsquo;<tt>Extractor.pkg</tt>&rsquo;
+inside it. The Mac OS X installer application will then run. The framework
+is installed to the root volume&rsquo;s 
&lsquo;<tt>/Library/Frameworks</tt>&rsquo; folder and installing
+will require admin privileges.
+</p>
+<p>The framework can be uninstalled by dragging
+&lsquo;<tt>/Library/Frameworks/Extractor.framework</tt>&rsquo; cto the 
&lsquo;<tt>Trash</tt>&rsquo;.
+</p>
+
+<hr size="6">
+<a name="Using-the-framework"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a 
href="#Installing-and-uninstalling-the-framework" title="Previous section in 
reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Example-for-using-the-framework" 
title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-on-OS-X" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h3 class="subsection">2.6.2 Using the framework</h3>
+
+<p>In the framework, the <code>extract</code> command line tool can be found 
at 
+&lsquo;<tt>/Library/Frameworks/Extractor.framework/Versions/Current/bin/extract</tt>&rsquo;
+</p>
+<p>The framework can be used in software projects as a framework or as a 
dynamic
+library. 
+</p>
+<p>When using the framework as a dynamic library in projects using autotools,
+one would most likely want to add 
+&quot;-I/Library/Frameworks/Extractor.framework/Versions/Current/include&quot;
+to CPPFLAGS and 
+&quot;-L/Library/Frameworks/Extractor.framework/Versions/Current/lib&quot;
+to LDFLAGS.
+</p>
+
+<hr size="6">
+<a name="Example-for-using-the-framework"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-the-framework" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a 
href="#Example-for-using-the-dynamic-library" title="Next section in reading 
order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-on-OS-X" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h3 class="subsection">2.6.3 Example for using the framework</h3>
+
+<table><tr><td>&nbsp;</td><td><pre class="verbatim">// hello.c
+#include &lt;Extractor/extractor.h&gt;
+
+int main()
+{
+  struct EXTRACTOR_PluginList *el;
+  el = EXTRACTOR_plugin_load_defaults (EXTRACTOR_OPTION_DEFAULT_POLICY);
+  // ...
+  EXTRACTOR_plugin_remove_all (el);
+  return 0;
+}
+</pre></td></tr></table>
+
+<p>You can then compile the example using
+</p>
+<pre class="verbatim">$ gcc -o hello hello.c -framework Extractor
+</pre>
+<hr size="6">
+<a name="Example-for-using-the-dynamic-library"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a 
href="#Example-for-using-the-framework" title="Previous section in reading 
order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Note-to-package-maintainers" 
title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-on-OS-X" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h3 class="subsection">2.6.4 Example for using the dynamic library</h3>
+
+<table><tr><td>&nbsp;</td><td><pre class="verbatim">// hello.c
+#include &lt;extractor.h&gt;
+int main()
+{
+  struct EXTRACTOR_PluginList *el;
+  el = EXTRACTOR_plugin_load_defaults (EXTRACTOR_OPTION_DEFAULT_POLICY);
+  // ...
+  EXTRACTOR_plugin_remove_all (el);
+  return 0;
+}
+</pre></td></tr></table>
+
+<p>You can then compile the example using
+</p>
+<pre class="verbatim">$ gcc 
-I/Library/Frameworks/Extractor.framework/Versions/Current/include \
+  -o hello hello.c \
+  -L/Library/Frameworks/Extractor.framework/Versions/Current/lib \
+  -lextractor
+</pre>
+<p>Notice the difference in the <code>#include</code> line.
+</p>
+
+
+
+
+
+<hr size="6">
+<a name="Note-to-package-maintainers"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a 
href="#Example-for-using-the-dynamic-library" title="Previous section in 
reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next section 
in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Up section"> 
Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h2 class="section">2.7 Note to package maintainers</h2>
+
 <p>The suggested way to package GNU libextractor is to split it into
 roughly the following binary packages:<a name="DOCF3" href="#FOOT3">(3)</a>
 </p>
@@ -354,25 +661,124 @@
 
 <hr size="6">
 <a name="Generalities"></a>
-<a name="SEC4"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC3" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC5" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Note-to-package-maintainers" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a 
href="#Introduction-to-the-_0060_0060extract_0027_0027-command" title="Next 
section in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC5" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Preparation" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="chapter"> 3. Generalities </h1>
+<a name="Generalities-1"></a>
+<h1 class="chapter">3. Generalities</h1>
 
+<hr size="6">
+<a name="Introduction-to-the-_0060_0060extract_0027_0027-command"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Generalities" title="Previous 
section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a 
href="#Common-usage-examples-for-_0060_0060extract_0027_0027" title="Next 
section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Up section"> 
Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h2 class="section">3.1 Introduction to the &ldquo;extract&rdquo; command</h2>
+
+<p>The <code>extract</code> command takes a list of file names as arguments,
+extracts meta data from each of those files and prints the result to
+the console.  By default, <code>extract</code> will use all available
+plugins and print all (non-binary) meta data that is found.
+</p>
+<p>The set of plugins used by <code>extract</code> can be controlled using
+the &ldquo;-l&rdquo; and &ldquo;-n&rdquo; options.  Use &ldquo;-n&rdquo; to 
not load all of the
+default plugins.  Use &ldquo;-l NAME&rdquo; to specifically load a certain
+plugin.  For example, specify &ldquo;-n -l mime&rdquo; to only use the MIME
+plugin.
+</p>
+<p>Using the &ldquo;-p&rdquo; option the output of <code>extract</code> can be 
limited
+to only certain keyword types.  Similarly, using the &ldquo;-x&rdquo; option,
+certain keyword types can be excluded.  A list of all known keyword
+types can be obtained using the &ldquo;-L&rdquo; option.
+</p>
+<p>The output format of <code>extract</code> can be influenced with the
+&ldquo;-V&rdquo; (more verbose, lists filenames), &ldquo;-g&rdquo; 
(grep-friendly, all
+meta data on a single line per file) and &ldquo;-b&rdquo; (bibTeX style)
+options.
+</p>
+<hr size="6">
+<a name="Common-usage-examples-for-_0060_0060extract_0027_0027"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a 
href="#Introduction-to-the-_0060_0060extract_0027_0027-command" title="Previous 
section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a 
href="#Introduction-to-the-libextractor-library" title="Next section in reading 
order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Up section"> 
Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h2 class="section">3.2 Common usage examples for &ldquo;extract&rdquo;</h2>
+
+<table><tr><td>&nbsp;</td><td><pre class="example">$ extract test/test.jpg
+comment - (C) 2001 by Christian Grothoff, using gimp 1.2 1
+mimetype - image/jpeg
+
+$ extract -V -x comment test/test.jpg
+Keywords for file test/test.jpg:
+mimetype - image/jpeg
+
+$ extract -p comment test/test.jpg
+comment - (C) 2001 by Christian Grothoff, using gimp 1.2 1
+
+$ extract -nV -l png.so -p comment test/test.jpg test/test.png
+Keywords for file test/test.jpg:
+Keywords for file test/test.png:
+comment - Testing keyword extraction
+</pre></td></tr></table>
+
+
+<hr size="6">
+<a name="Introduction-to-the-libextractor-library"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a 
href="#Common-usage-examples-for-_0060_0060extract_0027_0027" title="Previous 
section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" title="Next 
section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Up section"> 
Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" title="Next 
chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h2 class="section">3.3 Introduction to the libextractor library</h2>
+
 <p>Each public symbol exported by <acronym>GNU libextractor</acronym> has the 
prefix
 <tt>EXTRACTOR_</tt>.  All-caps names are used for constants.  For the
 impatient, the minimal C code for using <acronym>GNU libextractor</acronym> 
(on the
@@ -389,61 +795,78 @@
   return 0;
 }
 </pre>
-
+<p>The minimal API illustrated by this example is actually sufficient for
+many applications.  The full external C API of <acronym>GNU 
libextractor</acronym> is described
+in chapter See section <a href="#Extracting-meta-data">Extracting meta 
data</a>.  Bindings for other languages
+are described in chapter See section <a href="#Language-bindings">Language 
bindings</a>.  The API for
+writing new plugins is described in chapter See section <a 
href="#Writing-new-Plugins">Writing new Plugins</a>.
+</p>
 <hr size="6">
 <a name="Extracting-meta-data"></a>
-<a name="SEC5"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC4" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC6" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a 
href="#Introduction-to-the-libextractor-library" title="Previous section in 
reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plugin-management" title="Next 
section in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC4" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Generalities" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="chapter"> 4. Extracting meta data </h1>
+<a name="Extracting-meta-data-1"></a>
+<h1 class="chapter">4. Extracting meta data</h1>
 
+<p>In order to extract meta data with <acronym>GNU libextractor</acronym> you 
first need to
+load the respective plugins and then call the extraction API
+with the plugins and the data to process.  This section
+documents how to load and unload plugins, the various types
+and formats in which meta data is returned to the application
+and finally the extraction API itself.
+</p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top"><a href="#SEC6">4.1 Plugin 
management</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   How to 
load and unload plugins
+<tr><td align="left" valign="top"><a href="#Plugin-management">4.1 Plugin 
management</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   How to 
load and unload plugins
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC7">4.2 Meta 
types</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
About meta types
+<tr><td align="left" valign="top"><a href="#Meta-types">4.2 Meta 
types</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
About meta types
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC8">4.3 Meta 
formats</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
About meta formats
+<tr><td align="left" valign="top"><a href="#Meta-formats">4.3 Meta 
formats</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
About meta formats
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC9">4.4 
Extracting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
How to use the extraction API
+<tr><td align="left" valign="top"><a href="#Extracting">4.4 
Extracting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
How to use the extraction API
 </td></tr>
 </table>
 
 
 <hr size="6">
 <a name="Plugin-management"></a>
-<a name="SEC6"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC5" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC7" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Extracting-meta-data" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Meta-types" title="Next section in 
reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC5" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC5" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 4.1 Plugin management </h2>
+<a name="Plugin-management-1"></a>
+<h2 class="section">4.1 Plugin management</h2>
 
+<a name="index-reentrant"></a>
+<a name="index-concurrency"></a>
+<a name="index-threads"></a>
+<a name="index-thread_002dsafety"></a>
+<a name="index-enum-EXTRACTOR_005fOptions"></a>
 
 <p>All of the functions for loading and unloading plugins, including
 <tt>EXTRACTOR_plugin_add_defaults</tt> and 
<tt>EXTRACTOR_plugin_remove_all</tt>,
@@ -468,10 +891,8 @@
 </p>
 
 <dl>
-<dt><u>C Struct:</u> <b>EXTRACTOR_PluginList</b>
-<a name="IDX8"></a>
-</dt>
-<dd><a name="IDX9"></a>
+<dt><a name="index-EXTRACTOR_005fPluginList"></a><u>C Struct:</u> 
<b>EXTRACTOR_PluginList</b></dt>
+<dd><a name="index-struct-EXTRACTOR_005fPluginList"></a>
 
 <p>A plugin list represents a set of GNU libextractor plugins.  Most of
 the GNU libextractor API is concerned with either constructing a
@@ -481,46 +902,36 @@
 
 
 <dl>
-<dt><u>Function:</u> void <b>EXTRACTOR_plugin_remove_all</b><i> (struct 
EXTRACTOR_PluginList *plugins)</i>
-<a name="IDX10"></a>
-</dt>
-<dd><a name="IDX11"></a>
+<dt><a 
name="index-EXTRACTOR_005fplugin_005fremove_005fall"></a><u>Function:</u> void 
<b>EXTRACTOR_plugin_remove_all</b><i> (struct EXTRACTOR_PluginList 
*plugins)</i></dt>
+<dd><a name="index-EXTRACTOR_005fplugin_005fremove_005fall-1"></a>
 
 <p>Unload all of the plugins in the given list.
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> struct EXTRACTOR_PluginList * 
<b>EXTRACTOR_plugin_remove</b><i> (struct EXTRACTOR_PluginList *plugins, const 
char*name)</i>
-<a name="IDX12"></a>
-</dt>
-<dd><a name="IDX13"></a>
+<dt><a name="index-EXTRACTOR_005fplugin_005fremove"></a><u>Function:</u> 
struct EXTRACTOR_PluginList * <b>EXTRACTOR_plugin_remove</b><i> (struct 
EXTRACTOR_PluginList *plugins, const char*name)</i></dt>
+<dd><a name="index-EXTRACTOR_005fplugin_005fremove-1"></a>
 
 <p>Unloads a particular plugin.  The given name should be the short name of 
the plugin, for example &ldquo;mime&rdquo; for the mime-type extractor or 
&ldquo;mpeg&rdquo; for the MPEG extractor.
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> struct EXTRACTOR_PluginList * 
<b>EXTRACTOR_plugin_add</b><i> (struct EXTRACTOR_PluginList *plugins, const 
char* name,const char* options, enum EXTRACTOR_Options flags)</i>
-<a name="IDX14"></a>
-</dt>
-<dd><a name="IDX15"></a>
+<dt><a name="index-EXTRACTOR_005fplugin_005fadd"></a><u>Function:</u> struct 
EXTRACTOR_PluginList * <b>EXTRACTOR_plugin_add</b><i> (struct 
EXTRACTOR_PluginList *plugins, const char* name,const char* options, enum 
EXTRACTOR_Options flags)</i></dt>
+<dd><a name="index-EXTRACTOR_005fplugin_005fadd-1"></a>
 
 <p>Loads a particular plugin.  The plugin is added to the existing list, which 
can be NULL.  The second argument specifies the name of the plugin (i.e. 
&ldquo;ogg&rdquo;).  The third argument can be NULL and specifies 
plugin-specific options.  Finally, the last argument specifies if the plugin 
should be executed out-of-process 
(<code>EXTRACTOR_OPTION_DEFAULT_POLICY</code>) or not.
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> struct EXTRACTOR_PluginList * 
<b>EXTRACTOR_plugin_add_config</b><i> (struct EXTRACTOR_PluginList *plugins, 
const char* config, enum EXTRACTOR_Options flags)</i>
-<a name="IDX16"></a>
-</dt>
-<dd><a name="IDX17"></a>
+<dt><a 
name="index-EXTRACTOR_005fplugin_005fadd_005fconfig"></a><u>Function:</u> 
struct EXTRACTOR_PluginList * <b>EXTRACTOR_plugin_add_config</b><i> (struct 
EXTRACTOR_PluginList *plugins, const char* config, enum EXTRACTOR_Options 
flags)</i></dt>
+<dd><a name="index-EXTRACTOR_005fplugin_005fadd_005fconfig-1"></a>
 
 <p>Loads and unloads plugins based on a configuration string, modifying the 
existing list, which can be NULL.  The string has the format 
&ldquo;[-]NAME(OPTIONS){:[-]NAME(OPTIONS)}*&rdquo;.  Prefixing the plugin name 
with a &ldquo;-&rdquo; means that the plugin should be unloaded.
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> struct EXTRACTOR_PluginList * 
<b>EXTRACTOR_plugin_add_defaults</b><i> (enum EXTRACTOR_Options flags)</i>
-<a name="IDX18"></a>
-</dt>
-<dd><a name="IDX19"></a>
+<dt><a 
name="index-EXTRACTOR_005fplugin_005fadd_005fdefaults"></a><u>Function:</u> 
struct EXTRACTOR_PluginList * <b>EXTRACTOR_plugin_add_defaults</b><i> (enum 
EXTRACTOR_Options flags)</i></dt>
+<dd><a name="index-EXTRACTOR_005fplugin_005fadd_005fdefaults-1"></a>
 
 <p>Loads all of the plugins in the plugin directory.  This function is what 
most <acronym>GNU libextractor</acronym> applications should use to setup the 
plugins.
 </p></dd></dl>
@@ -529,47 +940,45 @@
 
 <hr size="6">
 <a name="Meta-types"></a>
-<a name="SEC7"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC6" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC8" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Plugin-management" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Meta-formats" title="Next section 
in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC5" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC5" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 4.2 Meta types </h2>
+<a name="Meta-types-1"></a>
+<h2 class="section">4.2 Meta types</h2>
 
 
+<a name="index-enum-EXTRACTOR_005fMetaType"></a>
+<a name="index-EXTRACTOR_005fmetatype_005fget_005fmax"></a>
 
 <p><tt>enum EXTRACTOR_MetaType</tt> is a C enum which defines a list of over 
100 different types of meta data.  The total number can differ between 
different <acronym>GNU libextractor</acronym> releases; the maximum value for 
the current release can be obtained using the 
<tt>EXTRACTOR_metatype_get_max</tt> function.  All values in this enumeration 
are of the form <tt>EXTRACTOR_METATYPE_XXX</tt>.
 </p>
 <dl>
-<dt><u>Function:</u> const char * <b>EXTRACTOR_metatype_to_string</b><i> (enum 
EXTRACTOR_MetaType type)</i>
-<a name="IDX20"></a>
-</dt>
-<dd><a name="IDX21"></a>
-<a name="IDX22"></a>
-<a name="IDX23"></a>
+<dt><a 
name="index-EXTRACTOR_005fmetatype_005fto_005fstring"></a><u>Function:</u> 
const char * <b>EXTRACTOR_metatype_to_string</b><i> (enum EXTRACTOR_MetaType 
type)</i></dt>
+<dd><a name="index-EXTRACTOR_005fmetatype_005fto_005fstring-1"></a>
+<a name="index-gettext"></a>
+<a name="index-internationalization"></a>
 
 <p>The function <tt>EXTRACTOR_metatype_to_string</tt> can be used to obtain a 
short English string &lsquo;<samp>s</samp>&rsquo; describing the meta data 
type.  The string can be translated into other languages using GNU gettext with 
the domain set to <acronym>GNU libextractor</acronym> 
(<tt>dgettext(&quot;libextractor&quot;, s)</tt>).  
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> const char * <b>EXTRACTOR_metatype_to_description</b><i> 
(enum EXTRACTOR_MetaType type)</i>
-<a name="IDX24"></a>
-</dt>
-<dd><a name="IDX25"></a>
-<a name="IDX26"></a>
-<a name="IDX27"></a>
+<dt><a 
name="index-EXTRACTOR_005fmetatype_005fto_005fdescription"></a><u>Function:</u> 
const char * <b>EXTRACTOR_metatype_to_description</b><i> (enum 
EXTRACTOR_MetaType type)</i></dt>
+<dd><a name="index-EXTRACTOR_005fmetatype_005fto_005fdescription-1"></a>
+<a name="index-gettext-1"></a>
+<a name="index-internationalization-1"></a>
 
 <p>The function <tt>EXTRACTOR_metatype_to_description</tt> can be used to 
obtain a longer English string &lsquo;<samp>s</samp>&rsquo; describing the meta 
data type.  The description may be empty if the short description returned by 
<code>EXTRACTOR_metatype_to_string</code> is already comprehensive.  The string 
can be translated into other languages using GNU gettext with the domain set to 
<acronym>GNU libextractor</acronym> (<tt>dgettext(&quot;libextractor&quot;, 
s)</tt>).  
 </p></dd></dl>
@@ -578,25 +987,26 @@
 
 <hr size="6">
 <a name="Meta-formats"></a>
-<a name="SEC8"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC7" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC9" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Meta-types" title="Previous 
section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting" title="Next section in 
reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC5" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC5" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 4.3 Meta formats </h2>
+<a name="Meta-formats-1"></a>
+<h2 class="section">4.3 Meta formats</h2>
 
+<a name="index-enum-EXTRACTOR_005fMetaFormat"></a>
 
 <p><tt>enum EXTRACTOR_MetaFormat</tt> is a C enum which defines on a high 
level how the extracted meta data is represented.  Currently, the library uses 
three formats: UTF-8 strings, C strings and binary data.  A fourth value, 
<code>EXTRACTOR_METAFORMAT_UNKNOWN</code> is defined but not used.  UTF-8 
strings are 0-terminated strings that have been converted to UTF-8.  The format 
code is <code>EXTRACTOR_METAFORMAT_UTF8</code>. Ideally, most text meta data 
will be of this format.  Some file formats fail to specify the encoding used 
for the text.  In this case, the text cannot be converted to UTF-8.  However, 
the meta data is still known to be 0-terminated and presumably human-readable.  
In this case, the format code used is 
<code>EXTRACTOR_METAFORMAT_C_STRING</code>; however, this should not be 
understood to mean that the encoding is the same as that used by the C 
compiler.  Finally, for binary data (mostly images), the format 
<code>EXTRACTOR_METAFORMAT_BINARY</code> is used.
 </p>
@@ -606,30 +1016,29 @@
 
 <hr size="6">
 <a name="Extracting"></a>
-<a name="SEC9"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC8" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Meta-formats" title="Previous 
section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" title="Next 
section in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC5" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC5" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 4.4 Extracting </h2>
+<a name="Extracting-1"></a>
+<h2 class="section">4.4 Extracting</h2>
 
 <dl>
-<dt><u>Function Pointer:</u> int <b>(*EXTRACTOR_MetaDataProcessor)(void</b><i> 
*cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum 
EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, 
size_t data_len)</i>
-<a name="IDX28"></a>
-</dt>
-<dd>
+<dt><a name="index-_0028"></a><u>Function Pointer:</u> int 
<b>(</b><i>*EXTRACTOR_MetaDataProcessor)(void *cls, const char *plugin_name, 
enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char 
*data_mime_type, const char *data, size_t data_len)</i></dt>
+<dd><a name="index-EXTRACTOR_005fMetaDataProcessor"></a>
+
 <p>Type of a function that libextractor calls for each meta data item found.
 </p>
 <dl compact="compact">
@@ -638,7 +1047,7 @@
 </p>
 </dd>
 <dt> <var>plugin_name</var> </dt>
-<dd><p>name of the plugin that produced this value; special values can be used 
(i.e. '&lt;zlib&gt;' for zlib being used in the main libextractor library and 
yielding meta data);
+<dd><p>name of the plugin that produced this value; special values can be used 
(i.e. &rsquo;&lt;zlib&gt;&rsquo; for zlib being used in the main libextractor 
library and yielding meta data);
 </p>
 </dd>
 <dt> <var>type</var> </dt>
@@ -669,19 +1078,17 @@
 
 
 <dl>
-<dt><u>Function:</u> void <b>EXTRACTOR_extract(struct</b><i> 
EXTRACTOR_PluginList *plugins, const char *filename, const void *data, size_t 
size, EXTRACTOR_MetaDataProcessor proc, void *proc_cls)</i>
-<a name="IDX29"></a>
-</dt>
-<dd><a name="IDX30"></a>
-<a name="IDX31"></a>
-<a name="IDX32"></a>
-<a name="IDX33"></a>
-<a name="IDX34"></a>
+<dt><a name="index-EXTRACTOR_005fextract"></a><u>Function:</u> void 
<b>EXTRACTOR_extract</b><i> (struct EXTRACTOR_PluginList *plugins, const char 
*filename, const void *data, size_t size, EXTRACTOR_MetaDataProcessor proc, 
void *proc_cls)</i></dt>
+<dd><a name="index-EXTRACTOR_005fextract-1"></a>
+<a name="index-reentrant-1"></a>
+<a name="index-concurrency-1"></a>
+<a name="index-threads-1"></a>
+<a name="index-thread_002dsafety-1"></a>
 
 <p>This is the main function for extracting keywords with <acronym>GNU 
libextractor</acronym>.  The first argument is a plugin list which specifies 
the set of plugins that should be used for extracting meta data.  The 
&lsquo;<samp>filename</samp>&rsquo; argument is optional and can be used to 
specify the name of a file to process.  If &lsquo;<samp>filename</samp>&rsquo; 
is NULL, then the &lsquo;<samp>data</samp>&rsquo; argument must point to the 
in-memory data to extract meta data from.  If 
&lsquo;<samp>filename</samp>&rsquo; is non-NULL, 
&lsquo;<samp>data</samp>&rsquo; can be NULL.  If 
&lsquo;<samp>data</samp>&rsquo; is non-null, then 
&lsquo;<samp>size</samp>&rsquo; is the size of &lsquo;<samp>data</samp>&rsquo; 
in bytes.  Otherwise &lsquo;<samp>size</samp>&rsquo; should be zero.  For each 
meta data item found, GNU libextractor will call the 
&lsquo;<samp>proc</samp>&rsquo; function, passing 
&lsquo;<samp>proc_cls</samp>&rsquo; as the first argument to 
&lsquo;<samp>proc</samp
 >&rsquo;.  The other arguments to &lsquo;<samp>proc</samp>&rsquo; depend on 
 >the specific meta data found.  
 </p>
-<a name="IDX35"></a>
-<a name="IDX36"></a>
+<a name="index-SIGBUS"></a>
+<a name="index-bus-error"></a>
 <p>Meta data extraction should never really fail &mdash; at worst, 
<acronym>GNU libextractor</acronym> should not call 
&lsquo;<samp>proc</samp>&rsquo; with any meta data. By design, <acronym>GNU 
libextractor</acronym> should never crash or leak memory, even given corrupt 
files as input.  Note however, that running <acronym>GNU libextractor</acronym> 
on a corrupt file system (or incorrectly <tt>mmap</tt>ed files) can result in 
the operating system sending a SIGBUS (bus error) to the process.  While 
<acronym>GNU libextractor</acronym> runs plugins out-of-process, it first maps 
the file into memory and then attempts to decompress it.  During decompression 
it is possible to encounter a SIGBUS.   <acronym>GNU libextractor</acronym> 
will <em>not</em> attempt to catch this signal and your application is likely 
to crash.  Note again that this should only happen if the file <em>system</em> 
is corrupt (not if individual files are corrupt).  If this is not acceptable, 
you might want to
  consider running <acronym>GNU libextractor</acronym> itself also 
out-of-process (as done, for example, by <a 
href="http://grothoff.org/christian/doodle/";>doodle</a>).
 </p>
 </dd></dl>
@@ -689,54 +1096,59 @@
 
 <hr size="6">
 <a name="Language-bindings"></a>
-<a name="SEC10"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC9" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC11" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Extracting" title="Previous 
section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Java" title="Next section in 
reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC5" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Extracting-meta-data" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="chapter"> 5. Language bindings </h1>
+<a name="Language-bindings-1"></a>
+<h1 class="chapter">5. Language bindings</h1>
+<a name="index-Java"></a>
+<a name="index-Mono"></a>
+<a name="index-Perl"></a>
+<a name="index-Python"></a>
+<a name="index-PHP"></a>
+<a name="index-Ruby"></a>
 
-
 <p><acronym>GNU libextractor</acronym> works immediately with C and C++ code. 
Bindings for Java, Mono, Ruby, Perl, PHP and Python are available for download 
from the main <acronym>GNU libextractor</acronym> website.  Documentation for 
these bindings (if available) is part of the downloads for the respective 
binding.  In all cases, a full installation of the C library is required before 
the binding can be installed.
 </p>
 <hr size="6">
-<a name="SEC11"></a>
+<a name="Java"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC10" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC12" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Language-bindings" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mono" title="Next section in 
reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 5.1 Java </h2>
+<h2 class="section">5.1 Java</h2>
 
 <p>Compiling the GNU libextractor Java binding follows the usual process of
 running <code>configure</code> and <code>make</code>.  The result will be a
 shared C library &lsquo;<tt>libextractor_java.so</tt>&rsquo; with the native 
code and
 a JAR file (installed to 
&lsquo;<tt>$PREFIX/share/java/libextractor.java</tt>&rsquo;).
 </p>
-<p>A minimal example for using GNU libextractor's Java binding would look
+<p>A minimal example for using GNU libextractor&rsquo;s Java binding would look
 like this:
 </p><pre class="verbatim">import org.gnu.libextractor.*;
 import java.util.ArrayList;
@@ -759,112 +1171,112 @@
 with older versions of Java.
 </p>
 <hr size="6">
-<a name="SEC12"></a>
+<a name="Mono"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC11" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC13" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Java" title="Previous section 
in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Perl" title="Next section in 
reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 5.2 Mono </h2>
+<h2 class="section">5.2 Mono</h2>
 
 <p>This binding is undocumented at this point.
 </p>
 <hr size="6">
-<a name="SEC13"></a>
+<a name="Perl"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC12" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC14" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Mono" title="Previous section 
in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Python" title="Next section in 
reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 5.3 Perl </h2>
+<h2 class="section">5.3 Perl</h2>
 
 <p>This binding is undocumented at this point.
 </p>
 <hr size="6">
-<a name="SEC14"></a>
+<a name="Python"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC13" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC15" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Perl" title="Previous section 
in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PHP" title="Next section in 
reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 5.4 Python </h2>
+<h2 class="section">5.4 Python</h2>
 
 <p>This binding is undocumented at this point.
 </p>
 <hr size="6">
-<a name="SEC15"></a>
+<a name="PHP"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC14" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC16" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Python" title="Previous 
section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ruby" title="Next section in 
reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 5.5 PHP </h2>
+<h2 class="section">5.5 PHP</h2>
 
 <p>This binding is undocumented at this point.
 </p>
 <hr size="6">
-<a name="SEC16"></a>
+<a name="Ruby"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC15" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#PHP" title="Previous section 
in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" title="Next 
section in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 5.6 Ruby </h2>
+<h2 class="section">5.6 Ruby</h2>
 
 <p>This binding is undocumented at this point.
 </p>
@@ -872,55 +1284,60 @@
 
 <hr size="6">
 <a name="Utility-functions"></a>
-<a name="SEC17"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC16" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC18" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Ruby" title="Previous section 
in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-Constants" title="Next 
section in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC10" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC20" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Language-bindings" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Existing-Plugins" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="chapter"> 6. Utility functions </h1>
+<a name="Utility-functions-1"></a>
+<h1 class="chapter">6. Utility functions</h1>
 
+<a name="index-reentrant-2"></a>
+<a name="index-concurrency-2"></a>
+<a name="index-threads-2"></a>
+<a name="index-thread_002dsafety-2"></a>
 <p>This chapter describes various utility functions for <acronym>GNU 
libextractor</acronym> usage. All of the functions are reentrant.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top"><a href="#SEC18">6.1 Utility 
Constants</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top"><a href="#Utility-Constants">6.1 Utility 
Constants</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top"><a href="#SEC19">6.2 Meta data 
printing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top"><a href="#Meta-data-printing">6.2 Meta data 
printing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 </table>
 
 <hr size="6">
 <a name="Utility-Constants"></a>
-<a name="SEC18"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC17" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC19" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Utility-functions" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Meta-data-printing" title="Next 
section in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC20" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Existing-Plugins" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 6.1 Utility Constants </h2>
+<a name="Utility-Constants-1"></a>
+<h2 class="section">6.1 Utility Constants</h2>
 
+<a name="index-EXTRACTOR_005fVERSION"></a>
 <p>The constant <tt>EXTRACTOR_VERSION</tt> is a hexadecimal
 representation of the version number of the installed libextractor
 header.  The hexadecimal format is 0xAABBCCDD where AA is the major
@@ -933,50 +1350,51 @@
 
 <hr size="6">
 <a name="Meta-data-printing"></a>
-<a name="SEC19"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC18" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC20" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Utility-Constants" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Existing-Plugins" title="Next 
section in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC20" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Existing-Plugins" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="section"> 6.2 Meta data printing </h2>
+<a name="Meta-data-printing-1"></a>
+<h2 class="section">6.2 Meta data printing</h2>
 
 
+<a name="index-EXTRACTOR_005fmeta_005fdata_005fprint"></a>
 <p>The <tt>EXTRACTOR_meta_data_print</tt> is a simple function which prints 
the meta data found with libextractor to a file.  The function is mostly useful 
for debugging and as an example for how to manipulate the keyword list and can 
be passed as the &lsquo;<samp>proc</samp>&rsquo; argument to 
<code>EXTRACTOR_extract</code>.  The file to print to should be passed as 
&lsquo;<samp>proc_cls</samp>&rsquo; (which must be of type <code>FILE 
*</code>), for example <code>stdout</code>.
 </p>
 
 
 <hr size="6">
 <a name="Existing-Plugins"></a>
-<a name="SEC20"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC19" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC21" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Meta-data-printing" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Writing-new-Plugins" title="Next 
section in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC17" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC21" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utility-functions" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Writing-new-Plugins" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="chapter"> 7. Existing Plugins </h1>
+<a name="Existing-Plugins-1"></a>
+<h1 class="chapter">7. Existing Plugins</h1>
 
 <ul>
 <li>
@@ -1054,24 +1472,24 @@
 </p>
 <hr size="6">
 <a name="Writing-new-Plugins"></a>
-<a name="SEC21"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC20" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC22" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Existing-Plugins" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a 
href="#Example-for-a-minimal-extract-method" title="Next section in reading 
order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC20" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC22" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Existing-Plugins" title="Beginning 
of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Internal-utility-functions" 
title="Next chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="chapter"> 8. Writing new Plugins </h1>
+<a name="Writing-new-Plugins-1"></a>
+<h1 class="chapter">8. Writing new Plugins</h1>
 
 <p>Writing a new plugin for libextractor usually requires writing of or
 interfacing with an actual parser for a specific format.  How this is
@@ -1115,25 +1533,179 @@
 </p>
 
 <hr size="6">
+<a name="Example-for-a-minimal-extract-method"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Writing-new-Plugins" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plugin-execution-options" 
title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Writing-new-Plugins" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Writing-new-Plugins" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Internal-utility-functions" 
title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h2 class="section">8.1 Example for a minimal extract method</h2>
+
+<p>The following example shows how a plugin can return the mime type of
+a file.
+</p><table><tr><td>&nbsp;</td><td><pre class="verbatim">int
+EXTRACTOR_mymime_extract
+   (const char *data,
+    size_t data_size,
+    EXTRACTOR_MetaDataProcessor proc,
+    void *proc_cls,
+    const char * options)
+{
+  if (data_size &lt; 4)
+    return 0;
+  if (0 != memcmp (data, &quot;\177ELF&quot;, 4))
+    return 0;
+  if (0 != proc (proc_cls, 
+                 &quot;mymime&quot;,
+                 EXTRACTOR_METATYPE_MIMETYPE,
+                 EXTRACTOR_METAFORMAT_UTF8,
+                 &quot;text/plain&quot;,
+                 &quot;application/x-executable&quot;,
+                 1 + strlen(&quot;application/x-executable&quot;)))
+    return 1;
+  /* more calls to 'proc' here as needed */
+  return 0;
+}
+</pre></td></tr></table>
+
+<hr size="6">
+<a name="Plugin-execution-options"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a 
href="#Example-for-a-minimal-extract-method" title="Previous section in reading 
order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Example-for-an-options-method" 
title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Writing-new-Plugins" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Writing-new-Plugins" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Internal-utility-functions" 
title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h2 class="section">8.2 Plugin execution options</h2>
+
+<p>Plugins can request that their execution be done in a particular way.
+For this, the plugin defines a function with the following signature:
+</p>
+<pre class="verbatim">const char *
+EXTRACTOR_XXX_options (void);
+</pre>
+<p>The function should return a string with the execution options.
+Individual options in this string should be separated by semicolons.
+Options that are included in the string but not known to the library
+are ignored.  The following options are supported:
+</p>
+<ul>
+<li>
+<code>oop-only</code> ensures that the plugin is only run out-of-process; if
+this is not possible, the plugin will not be executed at all if this
+option is set.
+
+</li><li>
+<code>close-stderr</code> ensures that <code>stderr</code> is closed during the
+execution of the plugin.  This is useful if the plugin uses libraries
+that write (error) messages to <code>stderr</code> and where this behavior 
cannot be 
+turned off.  This option only works if the plugin is executed out-of-process.
+
+</li><li>
+<code>close-stdout</code> ensures that <code>stdout</code> is closed during the
+execution of the plugin.  This is useful if the plugin uses libraries
+that write messages to <code>stdout</code> and where this behavior cannot be 
+turned off.  This option only works if the plugin is executed out-of-process.
+
+</li><li>
+<code>force-kill</code> kills and restarts the plugin process for each
+file that is being analyzed.  This is useful if the plugin uses
+libraries that keep global state between runs that is problematic or
+if the plugin uses libraries that are known to have serious resource
+leaks (such as memory leaks).
+
+</li><li>
+<code>want-tail</code> 
+In order to limit memory consumption, limit the amount if reading from
+disk and to keep the API simple, the &lsquo;<samp>data</samp>&rsquo; argument 
passed to
+the <code>EXTRACTOR_XXX_extract</code> method bounded (to 32 MB of normal
+data; for compressed data, a limit of 16 MB is imposed).<a name="DOCF4" 
href="#FOOT4">(4)</a>  Since
+some file formats contain meta data at the end of the file, this option
+provides a way for plugins to access not the first 16&ndash;32 MB of a file
+but instead the last (roughly) 32 MB. 
+
+<p>Note that even for files larger than 32 MB, &lsquo;<samp>size</samp>&rsquo; 
is not
+guaranteed to be 32 MB since &lsquo;<samp>data</samp>&rsquo; will be aligned 
to the page
+size of the operating system.  However, the last byte of 
&lsquo;<samp>data</samp>&rsquo;
+is guaranteed to be the last byte of the file.  Furthermore, if the
+file was large and compressed, unlike in the case of meta data
+extraction from the header, the end of the file will not be
+automatically decompressed by <acronym>GNU libextractor</acronym>.  
+</p>
+</li></ul>
+
+<p>Note that using options other than <code>want-tail</code> is pretty much
+always a kludge and should thus be avoided.
+</p>
+<hr size="6">
+<a name="Example-for-an-options-method"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plugin-execution-options" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Internal-utility-functions" 
title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Writing-new-Plugins" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Writing-new-Plugins" title="Up 
section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="#Internal-utility-functions" 
title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h2 class="section">8.3 Example for an options method</h2>
+
+<p>The following example shows how a plugin can set some of the options listed 
above:
+</p><table><tr><td>&nbsp;</td><td><pre class="verbatim">const char *
+EXTRACTOR_id3_options ()
+{
+  return &quot;close-stderr;want-tail&quot;;
+}
+</pre></td></tr></table>
+
+<hr size="6">
 <a name="Internal-utility-functions"></a>
-<a name="SEC22"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC21" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC23" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Example-for-an-options-method" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Reporting-bugs" title="Next 
section in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC21" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC23" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Writing-new-Plugins" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Reporting-bugs" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="chapter"> 9. Internal utility functions </h1>
+<a name="Internal-utility-functions-1"></a>
+<h1 class="chapter">9. Internal utility functions</h1>
 
 <p>Some plugins link against the <code>libextractor_common</code> library which
 provides common abstractions needed by many plugins.  This section
@@ -1157,12 +1729,10 @@
 below.
 </p>
 <dl>
-<dt><u>Function:</u> char * <b>EXTRACTOR_common_convert_to_utf8(const</b><i> 
char *input, size_t len, const char * charset)</i>
-<a name="IDX37"></a>
-</dt>
-<dd><a name="IDX38"></a>
-<a name="IDX39"></a>
-<a name="IDX40"></a>
+<dt><a 
name="index-EXTRACTOR_005fcommon_005fconvert_005fto_005futf8"></a><u>Function:</u>
 char * <b>EXTRACTOR_common_convert_to_utf8</b><i>(const char *input, size_t 
len, const char * charset)</i></dt>
+<dd><a name="index-UTF_002d8"></a>
+<a name="index-character-set"></a>
+<a name="index-EXTRACTOR_005fcommon_005fconvert_005fto_005futf8-1"></a>
 <p>Various <acronym>GNU libextractor</acronym> plugins make use of the internal
 &lsquo;<tt>convert.h</tt>&rsquo; header which defines a function
 </p>
@@ -1190,25 +1760,26 @@
 
 <hr size="6">
 <a name="Reporting-bugs"></a>
-<a name="SEC23"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC22" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC24" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Internal-utility-functions" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Copying" title="Next section in 
reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC22" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC24" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Internal-utility-functions" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Copying" title="Next chapter"> 
&gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="chapter"> 10. Reporting bugs </h1>
+<a name="Reporting-bugs-1"></a>
+<h1 class="chapter">10. Reporting bugs</h1>
 
+<a name="index-bug"></a>
 <p><acronym>GNU libextractor</acronym> uses the <a 
href="http://gnunet.org/bugs/";>Mantis bugtracking system</a>.  If possible, 
please report bugs there.  You can also e-mail
 the <acronym>GNU libextractor</acronym> mailinglist at <a 
href="address@hidden">address@hidden</a>.
 </p>
@@ -1217,60 +1788,61 @@
 
 <hr size="6">
 <a name="Copying"></a>
-<a name="SEC24"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC23" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC25" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Reporting-bugs" 
title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Preamble" title="Next section in 
reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC23" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Reporting-bugs" title="Beginning 
of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="appendix"> A. GNU GENERAL PUBLIC LICENSE </h1>
+<a name="GNU-GENERAL-PUBLIC-LICENSE"></a>
+<h1 class="appendix">A. GNU GENERAL PUBLIC LICENSE</h1>
 
+<a name="index-GPL_002c-GNU-General-Public-License"></a>
 <p align="center"> Version 2, June 1991
 </p>
 <table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 1989, 1991 
Free Software Foundation, Inc.
-59 Temple Place -- Suite 330, Boston, MA 02111-1307, USA
+59 Temple Place &ndash; Suite 330, Boston, MA 02111-1307, USA
 
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.
 </pre></td></tr></table>
 
 <hr size="6">
-<a name="SEC25"></a>
+<a name="Preamble"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC24" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC26" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Copying" title="Previous 
section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a 
href="#How-to-Apply-These-Terms-to-Your-New-Programs" title="Next section in 
reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC24" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC24" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Copying" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Copying" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h3 class="appendixsubsec"> A.0.1 Preamble </h3>
+<h3 class="appendixsubsec">A.0.1 Preamble</h3>
 
 <p>  The licenses for most software are designed to take away your
 freedom to share and change it.  By contrast, the GNU General Public
 License is intended to guarantee your freedom to share and change free
 software&mdash;to make sure the software is free for all its users.  This
 General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
+Foundation&rsquo;s software and to any other program whose authors commit to
 using it.  (Some other Free Software Foundation software is covered by
 the GNU Library General Public License instead.)  You can apply it to
 your programs, too.
@@ -1297,18 +1869,18 @@
 (2) offer you this license which gives you legal permission to copy,
 distribute and/or modify the software.
 </p>
-<p>  Also, for each author's protection and ours, we want to make certain
+<p>  Also, for each author&rsquo;s protection and ours, we want to make certain
 that everyone understands that there is no warranty for this free
 software.  If the software is modified by someone else and passed on, we
 want its recipients to know that what they have is not the original, so
 that any problems introduced by others will not reflect on the original
-authors' reputations.
+authors&rsquo; reputations.
 </p>
 <p>  Finally, any free program is threatened constantly by software
 patents.  We wish to avoid the danger that redistributors of a free
 program will individually obtain patent licenses, in effect making the
 program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
+patent must be licensed for everyone&rsquo;s free use or not licensed at all.
 </p>
 <p>  The precise terms and conditions for copying, distribution and
 modification follow.
@@ -1334,7 +1906,7 @@
 Whether that is true depends on what the Program does.
 </p>
 </li><li>
-You may copy and distribute verbatim copies of the Program's
+You may copy and distribute verbatim copies of the Program&rsquo;s
 source code as you receive it, in any medium, provided that you
 conspicuously and appropriately publish on each copy an appropriate
 copyright notice and disclaimer of warranty; keep intact all the
@@ -1463,7 +2035,7 @@
 Program), the recipient automatically receives a license from the
 original licensor to copy, distribute or modify the Program subject to
 these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
+restrictions on the recipients&rsquo; exercise of the rights granted herein.
 You are not responsible for enforcing compliance by third parties to
 this License.
 
@@ -1559,24 +2131,24 @@
 
 
 <hr size="6">
-<a name="SEC26"></a>
+<a name="How-to-Apply-These-Terms-to-Your-New-Programs"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC25" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Preamble" title="Previous 
section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" title="Next section 
in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC24" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC24" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Copying" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Copying" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" title="Next 
chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h2 class="unnumberedsec"> How to Apply These Terms to Your New Programs </h2>
+<h2 class="unnumberedsec">How to Apply These Terms to Your New Programs</h2>
 
 <p>  If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it
@@ -1644,267 +2216,267 @@
 </p>
 <hr size="6">
 <a name="Concept-Index"></a>
-<a name="SEC27"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC26" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC28" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a 
href="#How-to-Apply-These-Terms-to-Your-New-Programs" title="Previous section 
in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Function-and-Data-Index" 
title="Next section in reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC24" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC28" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Copying" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Function-and-Data-Index" 
title="Next chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="unnumbered"> Concept Index </h1>
+<a name="Concept-Index-1"></a>
+<h1 class="unnumbered">Concept Index</h1>
 
-<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC27_0" 
class="summary-letter"><b>B</b></a>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a 
href="#Concept-Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
  &nbsp; 
-<a href="#SEC27_1" class="summary-letter"><b>C</b></a>
+<a href="#Concept-Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
  &nbsp; 
-<a href="#SEC27_2" class="summary-letter"><b>D</b></a>
+<a href="#Concept-Index-1_cp_letter-D" class="summary-letter"><b>D</b></a>
  &nbsp; 
-<a href="#SEC27_3" class="summary-letter"><b>E</b></a>
+<a href="#Concept-Index-1_cp_letter-E" class="summary-letter"><b>E</b></a>
  &nbsp; 
-<a href="#SEC27_4" class="summary-letter"><b>G</b></a>
+<a href="#Concept-Index-1_cp_letter-G" class="summary-letter"><b>G</b></a>
  &nbsp; 
-<a href="#SEC27_5" class="summary-letter"><b>I</b></a>
+<a href="#Concept-Index-1_cp_letter-I" class="summary-letter"><b>I</b></a>
  &nbsp; 
-<a href="#SEC27_6" class="summary-letter"><b>J</b></a>
+<a href="#Concept-Index-1_cp_letter-J" class="summary-letter"><b>J</b></a>
  &nbsp; 
-<a href="#SEC27_7" class="summary-letter"><b>L</b></a>
+<a href="#Concept-Index-1_cp_letter-L" class="summary-letter"><b>L</b></a>
  &nbsp; 
-<a href="#SEC27_8" class="summary-letter"><b>M</b></a>
+<a href="#Concept-Index-1_cp_letter-M" class="summary-letter"><b>M</b></a>
  &nbsp; 
-<a href="#SEC27_9" class="summary-letter"><b>P</b></a>
+<a href="#Concept-Index-1_cp_letter-P" class="summary-letter"><b>P</b></a>
  &nbsp; 
-<a href="#SEC27_10" class="summary-letter"><b>R</b></a>
+<a href="#Concept-Index-1_cp_letter-R" class="summary-letter"><b>R</b></a>
  &nbsp; 
-<a href="#SEC27_11" class="summary-letter"><b>S</b></a>
+<a href="#Concept-Index-1_cp_letter-S" class="summary-letter"><b>S</b></a>
  &nbsp; 
-<a href="#SEC27_12" class="summary-letter"><b>T</b></a>
+<a href="#Concept-Index-1_cp_letter-T" class="summary-letter"><b>T</b></a>
  &nbsp; 
-<a href="#SEC27_13" class="summary-letter"><b>U</b></a>
+<a href="#Concept-Index-1_cp_letter-U" class="summary-letter"><b>U</b></a>
  &nbsp; 
 </td></tr></table>
 <table border="0" class="index-cp">
 <tr><td></td><th align="left">Index Entry</th><th align="left"> 
Section</th></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_0">B</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC23">bug</a></td><td valign="top"><a 
href="#SEC23">10. Reporting bugs</a></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX36">bus error</a></td><td 
valign="top"><a href="#SEC9">4.4 Extracting</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-bug">bug</a></td><td 
valign="top"><a href="#Reporting-bugs">10. Reporting bugs</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-bus-error">bus error</a></td><td 
valign="top"><a href="#Extracting">4.4 Extracting</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_1">C</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX39">character set</a></td><td 
valign="top"><a href="#SEC22">9. Internal utility functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC6">concurrency</a></td><td 
valign="top"><a href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX32">concurrency</a></td><td 
valign="top"><a href="#SEC9">4.4 Extracting</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC17">concurrency</a></td><td 
valign="top"><a href="#SEC17">6. Utility functions</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-character-set">character 
set</a></td><td valign="top"><a href="#Internal-utility-functions">9. Internal 
utility functions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-concurrency">concurrency</a></td><td valign="top"><a 
href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-concurrency-1">concurrency</a></td><td valign="top"><a 
href="#Extracting">4.4 Extracting</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-concurrency-2">concurrency</a></td><td valign="top"><a 
href="#Utility-functions">6. Utility functions</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_2">D</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX4">directory structure</a></td><td 
valign="top"><a href="#SEC2">2. Preparation</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-directory-structure">directory 
structure</a></td><td valign="top"><a href="#Preparation">2. 
Preparation</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_3">E</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX6">environment 
variables</a></td><td valign="top"><a href="#SEC2">2. Preparation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC1">error handling</a></td><td 
valign="top"><a href="#SEC1">1. Introduction</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-environment-variables">environment variables</a></td><td 
valign="top"><a href="#Preparation">2. Preparation</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-error-handling">error 
handling</a></td><td valign="top"><a href="#Introduction">1. 
Introduction</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_4">G</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX22">gettext</a></td><td 
valign="top"><a href="#SEC7">4.2 Meta types</a></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX26">gettext</a></td><td 
valign="top"><a href="#SEC7">4.2 Meta types</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC24">GPL, GNU General Public 
License</a></td><td valign="top"><a href="#SEC24">A. GNU GENERAL PUBLIC 
LICENSE</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-gettext">gettext</a></td><td 
valign="top"><a href="#Meta-types">4.2 Meta types</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-gettext-1">gettext</a></td><td 
valign="top"><a href="#Meta-types">4.2 Meta types</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-GPL_002c-GNU-General-Public-License">GPL, GNU General Public 
License</a></td><td valign="top"><a href="#Copying">A. GNU GENERAL PUBLIC 
LICENSE</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_5">I</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX23">internationalization</a></td><td valign="top"><a href="#SEC7">4.2 
Meta types</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX27">internationalization</a></td><td valign="top"><a href="#SEC7">4.2 
Meta types</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-internationalization">internationalization</a></td><td 
valign="top"><a href="#Meta-types">4.2 Meta types</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-internationalization-1">internationalization</a></td><td 
valign="top"><a href="#Meta-types">4.2 Meta types</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_6">J</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC10">Java</a></td><td 
valign="top"><a href="#SEC10">5. Language bindings</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Java">Java</a></td><td 
valign="top"><a href="#Language-bindings">5. Language bindings</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_7">L</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX2">license</a></td><td 
valign="top"><a href="#SEC1">1. Introduction</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-license">license</a></td><td 
valign="top"><a href="#Introduction">1. Introduction</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_8">M</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC10">Mono</a></td><td 
valign="top"><a href="#SEC10">5. Language bindings</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Mono">Mono</a></td><td 
valign="top"><a href="#Language-bindings">5. Language bindings</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_9">P</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX3">packageing</a></td><td 
valign="top"><a href="#SEC2">2. Preparation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC10">Perl</a></td><td 
valign="top"><a href="#SEC10">5. Language bindings</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC10">PHP</a></td><td valign="top"><a 
href="#SEC10">5. Language bindings</a></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX1">plugin</a></td><td 
valign="top"><a href="#SEC1">1. Introduction</a></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX5">plugin</a></td><td 
valign="top"><a href="#SEC2">2. Preparation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC10">Python</a></td><td 
valign="top"><a href="#SEC10">5. Language bindings</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-packageing">packageing</a></td><td valign="top"><a 
href="#Preparation">2. Preparation</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Perl">Perl</a></td><td 
valign="top"><a href="#Language-bindings">5. Language bindings</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-PHP">PHP</a></td><td 
valign="top"><a href="#Language-bindings">5. Language bindings</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-plugin">plugin</a></td><td 
valign="top"><a href="#Introduction">1. Introduction</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-plugin-1">plugin</a></td><td 
valign="top"><a href="#Preparation">2. Preparation</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Python">Python</a></td><td 
valign="top"><a href="#Language-bindings">5. Language bindings</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_10">R</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC6">reentrant</a></td><td 
valign="top"><a href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX31">reentrant</a></td><td 
valign="top"><a href="#SEC9">4.4 Extracting</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC17">reentrant</a></td><td 
valign="top"><a href="#SEC17">6. Utility functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC10">Ruby</a></td><td 
valign="top"><a href="#SEC10">5. Language bindings</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-reentrant">reentrant</a></td><td 
valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-reentrant-1">reentrant</a></td><td valign="top"><a 
href="#Extracting">4.4 Extracting</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-reentrant-2">reentrant</a></td><td valign="top"><a 
href="#Utility-functions">6. Utility functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Ruby">Ruby</a></td><td 
valign="top"><a href="#Language-bindings">5. Language bindings</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_11">S</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX35">SIGBUS</a></td><td 
valign="top"><a href="#SEC9">4.4 Extracting</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-SIGBUS">SIGBUS</a></td><td 
valign="top"><a href="#Extracting">4.4 Extracting</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_12">T</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC6">thread-safety</a></td><td 
valign="top"><a href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX34">thread-safety</a></td><td 
valign="top"><a href="#SEC9">4.4 Extracting</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC17">thread-safety</a></td><td 
valign="top"><a href="#SEC17">6. Utility functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC6">threads</a></td><td 
valign="top"><a href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX33">threads</a></td><td 
valign="top"><a href="#SEC9">4.4 Extracting</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC17">threads</a></td><td 
valign="top"><a href="#SEC17">6. Utility functions</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-thread_002dsafety">thread-safety</a></td><td valign="top"><a 
href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-thread_002dsafety-1">thread-safety</a></td><td valign="top"><a 
href="#Extracting">4.4 Extracting</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-thread_002dsafety-2">thread-safety</a></td><td valign="top"><a 
href="#Utility-functions">6. Utility functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-threads">threads</a></td><td 
valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-threads-1">threads</a></td><td 
valign="top"><a href="#Extracting">4.4 Extracting</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-threads-2">threads</a></td><td 
valign="top"><a href="#Utility-functions">6. Utility functions</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC27_13">U</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX38">UTF-8</a></td><td 
valign="top"><a href="#SEC22">9. Internal utility functions</a></td></tr>
+<tr><th><a name="Concept-Index-1_cp_letter-U">U</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-UTF_002d8">UTF-8</a></td><td 
valign="top"><a href="#Internal-utility-functions">9. Internal utility 
functions</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
 </table>
-<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC27_0" 
class="summary-letter"><b>B</b></a>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a 
href="#Concept-Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
  &nbsp; 
-<a href="#SEC27_1" class="summary-letter"><b>C</b></a>
+<a href="#Concept-Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
  &nbsp; 
-<a href="#SEC27_2" class="summary-letter"><b>D</b></a>
+<a href="#Concept-Index-1_cp_letter-D" class="summary-letter"><b>D</b></a>
  &nbsp; 
-<a href="#SEC27_3" class="summary-letter"><b>E</b></a>
+<a href="#Concept-Index-1_cp_letter-E" class="summary-letter"><b>E</b></a>
  &nbsp; 
-<a href="#SEC27_4" class="summary-letter"><b>G</b></a>
+<a href="#Concept-Index-1_cp_letter-G" class="summary-letter"><b>G</b></a>
  &nbsp; 
-<a href="#SEC27_5" class="summary-letter"><b>I</b></a>
+<a href="#Concept-Index-1_cp_letter-I" class="summary-letter"><b>I</b></a>
  &nbsp; 
-<a href="#SEC27_6" class="summary-letter"><b>J</b></a>
+<a href="#Concept-Index-1_cp_letter-J" class="summary-letter"><b>J</b></a>
  &nbsp; 
-<a href="#SEC27_7" class="summary-letter"><b>L</b></a>
+<a href="#Concept-Index-1_cp_letter-L" class="summary-letter"><b>L</b></a>
  &nbsp; 
-<a href="#SEC27_8" class="summary-letter"><b>M</b></a>
+<a href="#Concept-Index-1_cp_letter-M" class="summary-letter"><b>M</b></a>
  &nbsp; 
-<a href="#SEC27_9" class="summary-letter"><b>P</b></a>
+<a href="#Concept-Index-1_cp_letter-P" class="summary-letter"><b>P</b></a>
  &nbsp; 
-<a href="#SEC27_10" class="summary-letter"><b>R</b></a>
+<a href="#Concept-Index-1_cp_letter-R" class="summary-letter"><b>R</b></a>
  &nbsp; 
-<a href="#SEC27_11" class="summary-letter"><b>S</b></a>
+<a href="#Concept-Index-1_cp_letter-S" class="summary-letter"><b>S</b></a>
  &nbsp; 
-<a href="#SEC27_12" class="summary-letter"><b>T</b></a>
+<a href="#Concept-Index-1_cp_letter-T" class="summary-letter"><b>T</b></a>
  &nbsp; 
-<a href="#SEC27_13" class="summary-letter"><b>U</b></a>
+<a href="#Concept-Index-1_cp_letter-U" class="summary-letter"><b>U</b></a>
  &nbsp; 
 </td></tr></table>
 
 <hr size="6">
 <a name="Function-and-Data-Index"></a>
-<a name="SEC28"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC27" title="Previous section 
in reading order"> &lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC29" title="Next section in 
reading order"> &gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Concept-Index" title="Previous 
section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Type-Index" title="Next section in 
reading order"> &gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC27" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC29" title="Next chapter"> 
&gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" title="Beginning of 
this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Type-Index" title="Next chapter"> 
&gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="unnumbered"> Function and Data Index </h1>
+<a name="Function-and-Data-Index-1"></a>
+<h1 class="unnumbered">Function and Data Index</h1>
 
-<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC28_0" 
class="summary-letter"><b>(</b></a>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a 
href="#Function-and-Data-Index-1_fn_symbol-1" 
class="summary-letter"><b>(</b></a>
  &nbsp; 
 <br>
-<a href="#SEC28_1" class="summary-letter"><b>E</b></a>
+<a href="#Function-and-Data-Index-1_fn_letter-E" 
class="summary-letter"><b>E</b></a>
  &nbsp; 
 </td></tr></table>
 <table border="0" class="index-fn">
 <tr><td></td><th align="left">Index Entry</th><th align="left"> 
Section</th></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC28_0">(</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX28"><code>(*EXTRACTOR_MetaDataProcessor)(void</code></a></td><td 
valign="top"><a href="#SEC9">4.4 Extracting</a></td></tr>
+<tr><th><a 
name="Function-and-Data-Index-1_fn_symbol-1">(</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_0028"><code>(</code></a></td><td valign="top"><a 
href="#Extracting">4.4 Extracting</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC28_1">E</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX40"><code>EXTRACTOR_common_convert_to_utf8</code></a></td><td 
valign="top"><a href="#SEC22">9. Internal utility functions</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX37"><code>EXTRACTOR_common_convert_to_utf8(const</code></a></td><td 
valign="top"><a href="#SEC22">9. Internal utility functions</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX30"><code>EXTRACTOR_extract</code></a></td><td valign="top"><a 
href="#SEC9">4.4 Extracting</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX29"><code>EXTRACTOR_extract(struct</code></a></td><td valign="top"><a 
href="#SEC9">4.4 Extracting</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#SEC19"><code>EXTRACTOR_meta_data_print</code></a></td><td 
valign="top"><a href="#SEC19">6.2 Meta data printing</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#SEC7"><code>EXTRACTOR_metatype_get_max</code></a></td><td 
valign="top"><a href="#SEC7">4.2 Meta types</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX24"><code>EXTRACTOR_metatype_to_description</code></a></td><td 
valign="top"><a href="#SEC7">4.2 Meta types</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX25"><code>EXTRACTOR_metatype_to_description</code></a></td><td 
valign="top"><a href="#SEC7">4.2 Meta types</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX20"><code>EXTRACTOR_metatype_to_string</code></a></td><td 
valign="top"><a href="#SEC7">4.2 Meta types</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX21"><code>EXTRACTOR_metatype_to_string</code></a></td><td 
valign="top"><a href="#SEC7">4.2 Meta types</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX14"><code>EXTRACTOR_plugin_add</code></a></td><td valign="top"><a 
href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX15"><code>EXTRACTOR_plugin_add</code></a></td><td valign="top"><a 
href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX16"><code>EXTRACTOR_plugin_add_config</code></a></td><td 
valign="top"><a href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX17"><code>EXTRACTOR_plugin_add_config</code></a></td><td 
valign="top"><a href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX18"><code>EXTRACTOR_plugin_add_defaults</code></a></td><td 
valign="top"><a href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX19"><code>EXTRACTOR_plugin_add_defaults</code></a></td><td 
valign="top"><a href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX12"><code>EXTRACTOR_plugin_remove</code></a></td><td valign="top"><a 
href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX13"><code>EXTRACTOR_plugin_remove</code></a></td><td valign="top"><a 
href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX10"><code>EXTRACTOR_plugin_remove_all</code></a></td><td 
valign="top"><a href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX11"><code>EXTRACTOR_plugin_remove_all</code></a></td><td 
valign="top"><a href="#SEC6">4.1 Plugin management</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#SEC18"><code>EXTRACTOR_VERSION</code></a></td><td valign="top"><a 
href="#SEC18">6.1 Utility Constants</a></td></tr>
+<tr><th><a 
name="Function-and-Data-Index-1_fn_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fcommon_005fconvert_005fto_005futf8"><code>EXTRACTOR_common_convert_to_utf8</code></a></td><td
 valign="top"><a href="#Internal-utility-functions">9. Internal utility 
functions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fcommon_005fconvert_005fto_005futf8-1"><code>EXTRACTOR_common_convert_to_utf8</code></a></td><td
 valign="top"><a href="#Internal-utility-functions">9. Internal utility 
functions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fextract"><code>EXTRACTOR_extract</code></a></td><td 
valign="top"><a href="#Extracting">4.4 Extracting</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fextract-1"><code>EXTRACTOR_extract</code></a></td><td
 valign="top"><a href="#Extracting">4.4 Extracting</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fmetatype_005fget_005fmax"><code>EXTRACTOR_metatype_get_max</code></a></td><td
 valign="top"><a href="#Meta-types">4.2 Meta types</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fmetatype_005fto_005fdescription"><code>EXTRACTOR_metatype_to_description</code></a></td><td
 valign="top"><a href="#Meta-types">4.2 Meta types</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fmetatype_005fto_005fdescription-1"><code>EXTRACTOR_metatype_to_description</code></a></td><td
 valign="top"><a href="#Meta-types">4.2 Meta types</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fmetatype_005fto_005fstring"><code>EXTRACTOR_metatype_to_string</code></a></td><td
 valign="top"><a href="#Meta-types">4.2 Meta types</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fmetatype_005fto_005fstring-1"><code>EXTRACTOR_metatype_to_string</code></a></td><td
 valign="top"><a href="#Meta-types">4.2 Meta types</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fmeta_005fdata_005fprint"><code>EXTRACTOR_meta_data_print</code></a></td><td
 valign="top"><a href="#Meta-data-printing">6.2 Meta data printing</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fplugin_005fadd"><code>EXTRACTOR_plugin_add</code></a></td><td
 valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fplugin_005fadd-1"><code>EXTRACTOR_plugin_add</code></a></td><td
 valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fplugin_005fadd_005fconfig"><code>EXTRACTOR_plugin_add_config</code></a></td><td
 valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fplugin_005fadd_005fconfig-1"><code>EXTRACTOR_plugin_add_config</code></a></td><td
 valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fplugin_005fadd_005fdefaults"><code>EXTRACTOR_plugin_add_defaults</code></a></td><td
 valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fplugin_005fadd_005fdefaults-1"><code>EXTRACTOR_plugin_add_defaults</code></a></td><td
 valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fplugin_005fremove"><code>EXTRACTOR_plugin_remove</code></a></td><td
 valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fplugin_005fremove-1"><code>EXTRACTOR_plugin_remove</code></a></td><td
 valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fplugin_005fremove_005fall"><code>EXTRACTOR_plugin_remove_all</code></a></td><td
 valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fplugin_005fremove_005fall-1"><code>EXTRACTOR_plugin_remove_all</code></a></td><td
 valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fVERSION"><code>EXTRACTOR_VERSION</code></a></td><td 
valign="top"><a href="#Utility-Constants">6.1 Utility Constants</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
 </table>
-<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC28_0" 
class="summary-letter"><b>(</b></a>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a 
href="#Function-and-Data-Index-1_fn_symbol-1" 
class="summary-letter"><b>(</b></a>
  &nbsp; 
 <br>
-<a href="#SEC28_1" class="summary-letter"><b>E</b></a>
+<a href="#Function-and-Data-Index-1_fn_letter-E" 
class="summary-letter"><b>E</b></a>
  &nbsp; 
 </td></tr></table>
 
 <hr size="6">
 <a name="Type-Index"></a>
-<a name="SEC29"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC28" title="Previous section 
in reading order"> &lt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Function-and-Data-Index" 
title="Previous section in reading order"> &lt; </a>]</td>
 <td valign="middle" align="left">[ &gt; ]</td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC28" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[<a href="#Function-and-Data-Index" 
title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
 <td valign="middle" align="left">[ &gt;&gt; ]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
-<td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
-<h1 class="unnumbered"> Type Index </h1>
+<a name="Type-Index-1"></a>
+<h1 class="unnumbered">Type Index</h1>
 
-<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC29_0" 
class="summary-letter"><b>E</b></a>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a 
href="#Type-Index-1_tp_letter-E" class="summary-letter"><b>E</b></a>
  &nbsp; 
-<a href="#SEC29_1" class="summary-letter"><b>S</b></a>
+<a href="#Type-Index-1_tp_letter-S" class="summary-letter"><b>S</b></a>
  &nbsp; 
 </td></tr></table>
 <table border="0" class="index-tp">
 <tr><td></td><th align="left">Index Entry</th><th align="left"> 
Section</th></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC29_0">E</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC8"><code>enum 
EXTRACTOR_MetaFormat</code></a></td><td valign="top"><a href="#SEC8">4.3 Meta 
formats</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC7"><code>enum 
EXTRACTOR_MetaType</code></a></td><td valign="top"><a href="#SEC7">4.2 Meta 
types</a></td></tr>
-<tr><td></td><td valign="top"><a href="#SEC6"><code>enum 
EXTRACTOR_Options</code></a></td><td valign="top"><a href="#SEC6">4.1 Plugin 
management</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#SEC9"><code>EXTRACTOR_MetaDataProcessor</code></a></td><td 
valign="top"><a href="#SEC9">4.4 Extracting</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#IDX8"><code>EXTRACTOR_PluginList</code></a></td><td valign="top"><a 
href="#SEC6">4.1 Plugin management</a></td></tr>
+<tr><th><a name="Type-Index-1_tp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-enum-EXTRACTOR_005fMetaFormat"><code>enum 
EXTRACTOR_MetaFormat</code></a></td><td valign="top"><a 
href="#Meta-formats">4.3 Meta formats</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-enum-EXTRACTOR_005fMetaType"><code>enum 
EXTRACTOR_MetaType</code></a></td><td valign="top"><a href="#Meta-types">4.2 
Meta types</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-enum-EXTRACTOR_005fOptions"><code>enum 
EXTRACTOR_Options</code></a></td><td valign="top"><a 
href="#Plugin-management">4.1 Plugin management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fMetaDataProcessor"><code>EXTRACTOR_MetaDataProcessor</code></a></td><td
 valign="top"><a href="#Extracting">4.4 Extracting</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EXTRACTOR_005fPluginList"><code>EXTRACTOR_PluginList</code></a></td><td
 valign="top"><a href="#Plugin-management">4.1 Plugin management</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC29_1">S</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#IDX9"><code>struct 
EXTRACTOR_PluginList</code></a></td><td valign="top"><a href="#SEC6">4.1 Plugin 
management</a></td></tr>
+<tr><th><a name="Type-Index-1_tp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-struct-EXTRACTOR_005fPluginList"><code>struct 
EXTRACTOR_PluginList</code></a></td><td valign="top"><a 
href="#Plugin-management">4.1 Plugin management</a></td></tr>
 <tr><td colspan="3"> <hr></td></tr>
 </table>
-<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC29_0" 
class="summary-letter"><b>E</b></a>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a 
href="#Type-Index-1_tp_letter-E" class="summary-letter"><b>E</b></a>
  &nbsp; 
-<a href="#SEC29_1" class="summary-letter"><b>S</b></a>
+<a href="#Type-Index-1_tp_letter-S" class="summary-letter"><b>S</b></a>
  &nbsp; 
 </td></tr></table>
 
 <hr size="6">
 <a name="SEC_Foot"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
 <h1>Footnotes</h1>
@@ -1921,100 +2493,127 @@
 <p>Debian policy
 furthermore requires a &lsquo;<tt>-dev</tt>&rsquo; (meta) package that would 
depend on
 all of the above packages.
+</p><h3><a name="FOOT4" href="#DOCF4">(4)</a></h3>
+<p>If
+<acronym>GNU libextractor</acronym> was given a pointer to an existing, 
uncompressed block of
+data in memory, no bound is imposed for plugins executing in-process;
+for out-of-process plugins, a 32 MB limit is still imposed.
 </p><hr size="1">
 <a name="SEC_Contents"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
 <h1>Table of Contents</h1>
 <div class="contents">
 
 <ul class="toc">
-  <li><a name="TOC1" href="#SEC1">1. Introduction</a></li>
-  <li><a name="TOC2" href="#SEC2">2. Preparation</a>
+  <li><a name="toc-Introduction-1" href="#Introduction">1. 
Introduction</a></li>
+  <li><a name="toc-Preparation-1" href="#Preparation">2. Preparation</a>
   <ul class="toc">
-    <li><a name="TOC3" href="#SEC3">2.1 Note to package maintainers</a></li>
+    <li><a name="toc-Installation-on-GNU_002fLinux" 
href="#Installation-on-GNU_002fLinux">2.1 Installation on GNU/Linux</a></li>
+    <li><a name="toc-Installation-on-FreeBSD" 
href="#Installation-on-FreeBSD">2.2 Installation on FreeBSD</a></li>
+    <li><a name="toc-Installation-on-OpenBSD" 
href="#Installation-on-OpenBSD">2.3 Installation on OpenBSD</a></li>
+    <li><a name="toc-Installation-on-NetBSD" 
href="#Installation-on-NetBSD">2.4 Installation on NetBSD</a></li>
+    <li><a name="toc-Installation-using-MinGW" 
href="#Installation-using-MinGW">2.5 Installation using MinGW</a></li>
+    <li><a name="toc-Installation-on-OS-X" href="#Installation-on-OS-X">2.6 
Installation on OS X</a>
+    <ul class="toc">
+      <li><a name="toc-Installing-and-uninstalling-the-framework" 
href="#Installing-and-uninstalling-the-framework">2.6.1 Installing and 
uninstalling the framework</a></li>
+      <li><a name="toc-Using-the-framework" href="#Using-the-framework">2.6.2 
Using the framework</a></li>
+      <li><a name="toc-Example-for-using-the-framework" 
href="#Example-for-using-the-framework">2.6.3 Example for using the 
framework</a></li>
+      <li><a name="toc-Example-for-using-the-dynamic-library" 
href="#Example-for-using-the-dynamic-library">2.6.4 Example for using the 
dynamic library</a></li>
+    </ul></li>
+    <li><a name="toc-Note-to-package-maintainers" 
href="#Note-to-package-maintainers">2.7 Note to package maintainers</a></li>
   </ul></li>
-  <li><a name="TOC4" href="#SEC4">3. Generalities</a></li>
-  <li><a name="TOC5" href="#SEC5">4. Extracting meta data</a>
+  <li><a name="toc-Generalities-1" href="#Generalities">3. Generalities</a>
   <ul class="toc">
-    <li><a name="TOC6" href="#SEC6">4.1 Plugin management</a></li>
-    <li><a name="TOC7" href="#SEC7">4.2 Meta types</a></li>
-    <li><a name="TOC8" href="#SEC8">4.3 Meta formats</a></li>
-    <li><a name="TOC9" href="#SEC9">4.4 Extracting</a></li>
+    <li><a name="toc-Introduction-to-the-_0060_0060extract_0027_0027-command" 
href="#Introduction-to-the-_0060_0060extract_0027_0027-command">3.1 
Introduction to the &ldquo;extract&rdquo; command</a></li>
+    <li><a name="toc-Common-usage-examples-for-_0060_0060extract_0027_0027" 
href="#Common-usage-examples-for-_0060_0060extract_0027_0027">3.2 Common usage 
examples for &ldquo;extract&rdquo;</a></li>
+    <li><a name="toc-Introduction-to-the-libextractor-library" 
href="#Introduction-to-the-libextractor-library">3.3 Introduction to the 
libextractor library</a></li>
   </ul></li>
-  <li><a name="TOC10" href="#SEC10">5. Language bindings</a>
+  <li><a name="toc-Extracting-meta-data-1" href="#Extracting-meta-data">4. 
Extracting meta data</a>
   <ul class="toc">
-    <li><a name="TOC11" href="#SEC11">5.1 Java</a></li>
-    <li><a name="TOC12" href="#SEC12">5.2 Mono</a></li>
-    <li><a name="TOC13" href="#SEC13">5.3 Perl</a></li>
-    <li><a name="TOC14" href="#SEC14">5.4 Python</a></li>
-    <li><a name="TOC15" href="#SEC15">5.5 PHP</a></li>
-    <li><a name="TOC16" href="#SEC16">5.6 Ruby</a></li>
+    <li><a name="toc-Plugin-management-1" href="#Plugin-management">4.1 Plugin 
management</a></li>
+    <li><a name="toc-Meta-types-1" href="#Meta-types">4.2 Meta types</a></li>
+    <li><a name="toc-Meta-formats-1" href="#Meta-formats">4.3 Meta 
formats</a></li>
+    <li><a name="toc-Extracting-1" href="#Extracting">4.4 Extracting</a></li>
   </ul></li>
-  <li><a name="TOC17" href="#SEC17">6. Utility functions</a>
+  <li><a name="toc-Language-bindings-1" href="#Language-bindings">5. Language 
bindings</a>
   <ul class="toc">
-    <li><a name="TOC18" href="#SEC18">6.1 Utility Constants</a></li>
-    <li><a name="TOC19" href="#SEC19">6.2 Meta data printing</a></li>
+    <li><a name="toc-Java" href="#Java">5.1 Java</a></li>
+    <li><a name="toc-Mono" href="#Mono">5.2 Mono</a></li>
+    <li><a name="toc-Perl" href="#Perl">5.3 Perl</a></li>
+    <li><a name="toc-Python" href="#Python">5.4 Python</a></li>
+    <li><a name="toc-PHP" href="#PHP">5.5 PHP</a></li>
+    <li><a name="toc-Ruby" href="#Ruby">5.6 Ruby</a></li>
   </ul></li>
-  <li><a name="TOC20" href="#SEC20">7. Existing Plugins</a></li>
-  <li><a name="TOC21" href="#SEC21">8. Writing new Plugins</a></li>
-  <li><a name="TOC22" href="#SEC22">9. Internal utility functions</a></li>
-  <li><a name="TOC23" href="#SEC23">10. Reporting bugs</a></li>
-  <li><a name="TOC24" href="#SEC24">A. GNU GENERAL PUBLIC LICENSE</a>
+  <li><a name="toc-Utility-functions-1" href="#Utility-functions">6. Utility 
functions</a>
   <ul class="toc">
+    <li><a name="toc-Utility-Constants-1" href="#Utility-Constants">6.1 
Utility Constants</a></li>
+    <li><a name="toc-Meta-data-printing-1" href="#Meta-data-printing">6.2 Meta 
data printing</a></li>
+  </ul></li>
+  <li><a name="toc-Existing-Plugins-1" href="#Existing-Plugins">7. Existing 
Plugins</a></li>
+  <li><a name="toc-Writing-new-Plugins-1" href="#Writing-new-Plugins">8. 
Writing new Plugins</a>
+  <ul class="toc">
+    <li><a name="toc-Example-for-a-minimal-extract-method" 
href="#Example-for-a-minimal-extract-method">8.1 Example for a minimal extract 
method</a></li>
+    <li><a name="toc-Plugin-execution-options" 
href="#Plugin-execution-options">8.2 Plugin execution options</a></li>
+    <li><a name="toc-Example-for-an-options-method" 
href="#Example-for-an-options-method">8.3 Example for an options method</a></li>
+  </ul></li>
+  <li><a name="toc-Internal-utility-functions-1" 
href="#Internal-utility-functions">9. Internal utility functions</a></li>
+  <li><a name="toc-Reporting-bugs-1" href="#Reporting-bugs">10. Reporting 
bugs</a></li>
+  <li><a name="toc-GNU-GENERAL-PUBLIC-LICENSE" href="#Copying">A. GNU GENERAL 
PUBLIC LICENSE</a>
+  <ul class="toc">
 
     <ul class="toc">
-      <li><a name="TOC25" href="#SEC25">A.0.1 Preamble</a></li>
+      <li><a name="toc-Preamble" href="#Preamble">A.0.1 Preamble</a></li>
     </ul></li>
-    <li><a name="TOC26" href="#SEC26">How to Apply These Terms to Your New 
Programs</a></li>
+    <li><a name="toc-How-to-Apply-These-Terms-to-Your-New-Programs" 
href="#How-to-Apply-These-Terms-to-Your-New-Programs">How to Apply These Terms 
to Your New Programs</a></li>
   </ul></li>
-  <li><a name="TOC27" href="#SEC27">Concept Index</a></li>
-  <li><a name="TOC28" href="#SEC28">Function and Data Index</a></li>
-  <li><a name="TOC29" href="#SEC29">Type Index</a></li>
+  <li><a name="toc-Concept-Index-1" href="#Concept-Index">Concept 
Index</a></li>
+  <li><a name="toc-Function-and-Data-Index-1" 
href="#Function-and-Data-Index">Function and Data Index</a></li>
+  <li><a name="toc-Type-Index-1" href="#Type-Index">Type Index</a></li>
 </ul>
 </div>
 <hr size="1">
 <a name="SEC_Overview"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
 <h1>Short Table of Contents</h1>
 <div class="shortcontents">
 <ul class="toc">
-<li><a name="TOC1" href="#SEC1">1. Introduction</a></li>
-<li><a name="TOC2" href="#SEC2">2. Preparation</a></li>
-<li><a name="TOC4" href="#SEC4">3. Generalities</a></li>
-<li><a name="TOC5" href="#SEC5">4. Extracting meta data</a></li>
-<li><a name="TOC10" href="#SEC10">5. Language bindings</a></li>
-<li><a name="TOC17" href="#SEC17">6. Utility functions</a></li>
-<li><a name="TOC20" href="#SEC20">7. Existing Plugins</a></li>
-<li><a name="TOC21" href="#SEC21">8. Writing new Plugins</a></li>
-<li><a name="TOC22" href="#SEC22">9. Internal utility functions</a></li>
-<li><a name="TOC23" href="#SEC23">10. Reporting bugs</a></li>
-<li><a name="TOC24" href="#SEC24">A. GNU GENERAL PUBLIC LICENSE</a></li>
-<li><a name="TOC27" href="#SEC27">Concept Index</a></li>
-<li><a name="TOC28" href="#SEC28">Function and Data Index</a></li>
-<li><a name="TOC29" href="#SEC29">Type Index</a></li>
+<li><a name="stoc-Introduction-1" href="#Introduction">1. Introduction</a></li>
+<li><a name="stoc-Preparation-1" href="#Preparation">2. Preparation</a></li>
+<li><a name="stoc-Generalities-1" href="#Generalities">3. Generalities</a></li>
+<li><a name="stoc-Extracting-meta-data-1" href="#Extracting-meta-data">4. 
Extracting meta data</a></li>
+<li><a name="stoc-Language-bindings-1" href="#Language-bindings">5. Language 
bindings</a></li>
+<li><a name="stoc-Utility-functions-1" href="#Utility-functions">6. Utility 
functions</a></li>
+<li><a name="stoc-Existing-Plugins-1" href="#Existing-Plugins">7. Existing 
Plugins</a></li>
+<li><a name="stoc-Writing-new-Plugins-1" href="#Writing-new-Plugins">8. 
Writing new Plugins</a></li>
+<li><a name="stoc-Internal-utility-functions-1" 
href="#Internal-utility-functions">9. Internal utility functions</a></li>
+<li><a name="stoc-Reporting-bugs-1" href="#Reporting-bugs">10. Reporting 
bugs</a></li>
+<li><a name="stoc-GNU-GENERAL-PUBLIC-LICENSE" href="#Copying">A. GNU GENERAL 
PUBLIC LICENSE</a></li>
+<li><a name="stoc-Concept-Index-1" href="#Concept-Index">Concept Index</a></li>
+<li><a name="stoc-Function-and-Data-Index-1" 
href="#Function-and-Data-Index">Function and Data Index</a></li>
+<li><a name="stoc-Type-Index-1" href="#Type-Index">Type Index</a></li>
 </ul>
 </div>
 <hr size="1">
 <a name="SEC_About"></a>
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC_Top" title="Cover (top) of 
document">Top</a>]</td>
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of 
contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC27" 
title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#Concept-Index" 
title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
 </tr></table>
 <h1>About This Document</h1>
 <p>
-  This document was generated by <em>Christian Grothoff</em> on <em>January, 1 
2010</em> using <a href="http://www.nongnu.org/texi2html/";><em>texi2html 
1.78</em></a>.
+  This document was generated by <em>Christian Grothoff</em> on <em>January 
13, 2010</em> using <a href="http://www.nongnu.org/texi2html/";><em>texi2html 
1.82</em></a>.
 </p>
 <p>
   The buttons in the navigation panels have the following meaning:
@@ -2116,7 +2715,7 @@
 <hr size="1">
 <p>
  <font size="-1">
-  This document was generated by <em>Christian Grothoff</em> on <em>January, 1 
2010</em> using <a href="http://www.nongnu.org/texi2html/";><em>texi2html 
1.78</em></a>.
+  This document was generated by <em>Christian Grothoff</em> on <em>January 
13, 2010</em> using <a href="http://www.nongnu.org/texi2html/";><em>texi2html 
1.82</em></a>.
  </font>
  <br>
 

Added: Extractor-docs/WWW/extractor.pdf
===================================================================
(Binary files differ)


Property changes on: Extractor-docs/WWW/extractor.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Modified: Extractor-docs/WWW/index.html
===================================================================
--- Extractor-docs/WWW/index.html       2010-01-13 16:12:56 UTC (rev 9993)
+++ Extractor-docs/WWW/index.html       2010-01-13 16:17:20 UTC (rev 9994)
@@ -38,23 +38,24 @@
 <h2>GNU libextractor</h2>
 <img src="extractor_logo.png" alt="libextractor" vspace="0" width="136" 
border="0" height="94" hspace="0" align="right">
 <p>
-GNU libextractor is a library used to extract meta-data from files of
-arbitrary type.
-It is designed to use helper-libraries to perform the actual
-extraction, and to be trivially extendable by linking against external
-extractors for additional file types.
-libextractor is a <a href="http://www.gnu.org/";>GNU</a> package.
-Our official GNU website can be found at <a 
href="http://www.gnu.org/software/libextractor/";>http://www.gnu.org/software/libextractor/</a>.
-libextractor can be downloaded from this site or the <a 
href="http://www.gnu.org/prep/ftp.html";>GNU mirrors</a>.
+GNU libextractor is a library used to extract meta data from files of
+arbitrary type.  It is designed to use helper-libraries to perform the
+actual extraction, and to be trivially extendable by linking against
+external extractors for additional file types.  libextractor is
+a <a href="http://www.gnu.org/";>GNU</a> package.  Our official GNU
+website can be found
+at <a 
href="http://www.gnu.org/software/libextractor/";>http://www.gnu.org/software/libextractor/</a>.
+libextractor can be downloaded from this site or
+the <a href="http://www.gnu.org/prep/ftp.html";>GNU mirrors</a>.
 </p>
 <p>
 The goal is to provide developers of file-sharing networks, browsers
 or WWW-indexing bots with a universal library to obtain simple
 keywords and meta data to match against queries and to show to users
-instead of only relying on filenames.  libextractor contains a
-shell-command <tt>extract</tt> that, similar to the
-well-known <tt>file</tt> command, can extract meta data from a file an
-print the results to stdout.
+instead of only relying on filenames.  libextractor contains a shell
+command <tt>extract</tt> that, similar to the well-known <tt>file</tt>
+command, can extract meta data from a file an print the results to
+stdout.
 </p>
 <p>
 Currently, libextractor supports the following formats:
@@ -103,20 +104,27 @@
 </p>
 <a name="news"></a><h2>Recent News</h2>
 <dl>
-<dt>Sat Oct 24 21:09:18 CEST 2009 | libextractor binding for Mono updated.</dt>
-<dd>You can find the updated binding for Mono in the download section.</dd>
-<dt>Sat Jul  4 11:45:08 CET 2009 | libextractor v0.5.23 released.</dt>
-<dd>This release makes the RPM extractor work with the latest librpm
-library and links against an external version of libexiv2 (instead of
-using an internal, outdated version of the code).</dd>
-<dt>Fri Feb 20 11:24:50 MST 2009 | libextractor v0.5.22 released.</dt>
-<dd>This release fixes various minor bugs in various plugins and the
-build system. We now use libtool 2.x which helps fix some issues with
-multiple threads loading and unloading certain plugins concurrently.</dd>
+ <dt>Wed Jan 13 16:22:09 CET 2010 | libextractor v0.6.0 released.</dt>
+  <dd>This release breaks backwards compatibility in terms of the APIs.
+    It adds support for out-of-process execution of plugins, improves
+    binary meta data extraction, reduces the footprint (in terms of
+    linking) of the main libextractor library, improves the quality
+    and quantity of the meta data extracted by most of the plugins,
+    drops some of the less-useful plugins (printable, hashing) and
+    finally includes a complete and extensive user and developer
+    manual.  The Java binding was also updated to work with the
+    new API, bindings for other languages are still pending.</dd>
+ <dt>Sat Oct 24 21:09:18 CEST 2009 | libextractor binding for Mono 
updated.</dt>
+  <dd>You can find the updated binding for Mono in the download section.</dd>
+ <dt>Sat Jul  4 11:45:08 CET 2009 | libextractor v0.5.23 released.</dt>
+  <dd>This release makes the RPM extractor work with the latest librpm
+   library and links against an external version of libexiv2 (instead of
+   using an internal, outdated version of the code).</dd>
+ <dt>Fri Feb 20 11:24:50 MST 2009 | libextractor v0.5.22 released.</dt>
+  <dd>This release fixes various minor bugs in various plugins and the
+   build system. We now use libtool 2.x which helps fix some issues with
+   multiple threads loading and unloading certain plugins concurrently.</dd>
 </dl>
-<p>
-<a href="oldnews.html">Older news archive</a>
-</p>
 <a name="links"></a><h2>Links</h2>
 <p>
 Related work:
@@ -137,16 +145,16 @@
 </ul>
 Projects that use libextractor:
 <ul>
-<li><a href="http://mediatomb.cc/";>MediaTomb, UPnP AV Mediaserver</a></li>
-<li><a href="http://witme.sourceforge.net/libferris.web/";>libferris, a virtual 
file system</a></li>
+<li><a href="http://launchpad.net/basenji";>Basenji, Portable volume 
indexer</a></li>
+<li><a href="http://grothoff.org/christian/doodle/";>doodle, index your 
disk</a></li>
 <li><a href="http://evidence.sf.net/";>Evidence, enlightened file 
manager</a></li>
+<li><a href="http://www.libferris.com/";>libferris, a virtual file 
system</a></li>
 <li><a href="http://fossology.org/";>FOSSology</a></li>
 <li><a href="http://gnunet.org/";>GNUnet, secure P2P file sharing</a></li>
-<li><a href="http://gnunet.org/doodle/";>doodle, index your disk</a></li>
-<li><a href="http://www.tracker-project.org/";>File indexer, uses embedded 
MySQL database (doodle uses home-grown suffix tree)</a></li>
 <li><a href="http://lobotomy-project.org/";>Lobotomy, experimental desktop 
environment</a></li>
+<li><a href="http://mediatomb.cc/";>MediaTomb, UPnP AV Mediaserver</a></li>
 <li><a href="http://www.edge-security.com/metagoofil.php";>Metagoofil, Metadata 
analyzer for information gathering</a></li>
-<li><a href="http://launchpad.net/basenji";>Portable volume indexer</a></li>
+<li><a href="http://projects.gnome.org/tracker/";>Tracker, file indexer, uses 
embedded MySQL database (doodle uses home-grown suffix tree)</a></li>
 </ul>
 </p>
 
@@ -169,7 +177,7 @@
 README</a> for information on coordinating and submitting translations
 of this article.</p>
 
-<p>Copyright &copy; 2009 Free Software Foundation, Inc.</p>
+<p>Copyright &copy; 2009, 2010 Free Software Foundation, Inc.</p>
 
 <p>Verbatim copying and distribution of this entire article are
 permitted worldwide, without royalty, in any medium, provided this





reply via email to

[Prev in Thread] Current Thread [Next in Thread]