Tidy tag soup, remove inlined styling, adjust formatting

Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/94d36a9f
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/94d36a9f
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/94d36a9f

Branch: refs/heads/master
Commit: 94d36a9fe7ba4f1bcb18a0501d57f72b75883d44
Parents: 66392ba
Author: Gintas Grigelionis <gin...@apache.org>
Authored: Thu Feb 8 16:59:52 2018 +0100
Committer: Gintas Grigelionis <gin...@apache.org>
Committed: Thu Feb 8 17:00:18 2018 +0100

----------------------------------------------------------------------
 manual/Types/antlib.html             |  24 +-
 manual/Types/assertions.html         |  31 +-
 manual/Types/classfileset.html       |  36 +-
 manual/Types/custom-programming.html |  15 +-
 manual/Types/description.html        |   8 +-
 manual/Types/dirset.html             |   6 +-
 manual/Types/extension.html          |  13 +-
 manual/Types/extensionset.html       |  12 +-
 manual/Types/filelist.html           |  29 +-
 manual/Types/fileset.html            |  11 +-
 manual/Types/filterchain.html        | 885 +++++++++++++++---------------
 manual/Types/filterset.html          | 116 ++--
 manual/Types/mapper.html             | 103 ++--
 manual/Types/multirootfileset.html   |   6 +-
 manual/Types/namespace.html          |  24 +-
 manual/Types/patternset.html         |  19 +-
 manual/Types/permissions.html        |  24 +-
 manual/Types/propertyset.html        |   9 +-
 manual/Types/redirector.html         |  12 +-
 manual/Types/regexp.html             |  13 +-
 manual/Types/resources.html          | 272 ++++-----
 manual/Types/selectors-program.html  |  16 +-
 manual/Types/selectors.html          | 339 ++++++------
 manual/Types/tarfileset.html         |  18 +-
 manual/Types/xmlcatalog.html         |  61 +-
 manual/Types/zipfileset.html         |  34 +-
 manual/stylesheets/style.css         |   9 +
 27 files changed, 1007 insertions(+), 1138 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/antlib.html
----------------------------------------------------------------------
diff --git a/manual/Types/antlib.html b/manual/Types/antlib.html
index 925320a..0e738c0 100644
--- a/manual/Types/antlib.html
+++ b/manual/Types/antlib.html
@@ -17,13 +17,13 @@
 <html>
 
   <head>
-    <meta http-equiv="Content-Language" content="en-us"></meta>
+    <meta http-equiv="Content-Language" content="en-us">
     <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
     <title>AntLib</title>
   </head>
 
   <body>
-    <h2><a name="antlib">Antlib</a></h2>
+    <h2 id="antlib">Antlib</h2>
 
 
     <h3>Description</h3>
@@ -108,7 +108,7 @@
     </blockquote>
 
 
-    <h3><a name="antlibnamespace">Antlib namespace</a></h3>
+    <h3 id="antlibnamespace">Antlib namespace</h3>
     <p>
       The name space URIs with the pattern <b>antlib:<i>java package</i></b>
       are given special treatment.
@@ -152,14 +152,14 @@
     </blockquote>
     <p>
       The requirement that the resource is in the default classpath
-      may be removed in future versions of Ant.</p>
+      may be removed in future versions of Ant.
     </p>
 
 
-       <h3><a name="loadFromInside">Load antlib from inside of the 
buildfile</a></h3>
+       <h3 id="loadFromInside">Load antlib from inside of the buildfile</h3>
        <p>
-         If you want to separate the antlib from your local Ant installation, 
e.g. because you 
-         want to hold that jar in your projects SCM system, you have to 
specify a classpath, so 
+         If you want to separate the antlib from your local Ant installation, 
e.g. because you
+         want to hold that jar in your projects SCM system, you have to 
specify a classpath, so
          that Ant could find that jar. The best solution is loading the antlib 
with <tt>&lt;taskdef&gt;</tt>.
        </p>
     <blockquote>
@@ -168,7 +168,7 @@
    &lt;taskdef uri="<font color="red">antlib:net.sf.antcontrib</font>"
             resource="net/sf/antcontrib/antlib.xml"
             classpath="path/to/ant-contrib.jar"/&gt;
-   
+
    &lt;target name="iterate"&gt;
       &lt;<font color="green">antcontrib</font>:for param="file"&gt;
          &lt;fileset dir="."/&gt;
@@ -181,10 +181,7 @@
       </pre>
     </blockquote>
 
-       
-       
-
-    <h3><a name="currentnamespace">Current namespace</a></h3>
+    <h3 id="currentnamespace">Current namespace</h3>
     <p>
       Definitions defined in antlibs may be used in antlibs. However
       the namespace that definitions are placed in are dependent on
@@ -258,9 +255,6 @@
 &lt;/project&gt;
       </pre>
     </blockquote>
-    
-
 
 </body>
 </html>
-

http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/assertions.html
----------------------------------------------------------------------
diff --git a/manual/Types/assertions.html b/manual/Types/assertions.html
index e168969..9942b4c 100644
--- a/manual/Types/assertions.html
+++ b/manual/Types/assertions.html
@@ -24,22 +24,22 @@
 
 <body>
 
-<h2><a name="assertions">Assertions</a></h2>
+<h2 id="assertions">Assertions</h2>
 <p>
 The <tt>assertions</tt> type enables or disables the Java 1.4 assertions 
feature,
 on a whole Java program, or components of a program. It can be used
 in <a href="../Tasks/java.html"><code>&lt;java&gt;</code></a> and
-<a href="../Tasks/junit.html"><code>&lt;junit&gt;</code></a> to add extra 
validation to code.  
+<a href="../Tasks/junit.html"><code>&lt;junit&gt;</code></a> to add extra 
validation to code.
 
 <p>
-Assertions are covered in the 
+Assertions are covered in the
 <a 
href="http://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html";>Java
 SE documentation</a>,
 and the
 <a 
href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.10";>Java
 Language Specification</a>.
 
 <p>
 The key points to note are that a <tt>java.lang.AssertionError</tt>
-is thrown when an assertion fails, and that the facility is only available 
+is thrown when an assertion fails, and that the facility is only available
 on Java 1.4 and later. To enable assertions one must set <tt>source="1.4"</tt>
 (or later) in <tt>&lt;javac&gt;</tt> when the source is being compiled, and
 that the code must contain <tt>assert</tt> statements to be tested. The
@@ -47,20 +47,16 @@ result of such an action is code that neither compiles or 
runs on earlier
 versions of Java. For this reason Apache Ant itself currently contains no 
assertions.
 <p>
 
-When assertions are enabled (or disabled) in a task through nested 
-assertions elements, the class loader or command line is modified with the 
+When assertions are enabled (or disabled) in a task through nested
+assertions elements, the class loader or command line is modified with the
 appropriate options. This means that the JVM executed must be a Java 1.4
 or later JVM, even if there are no assertions in the code. Attempting to
-enable assertions on earlier VMs will result in an "Unrecognized option" 
-error and the JVM will not start.  
+enable assertions on earlier VMs will result in an "Unrecognized option"
+error and the JVM will not start.
 
 <p>
 <h4>Attributes</h4>
-<p>
-
-
-</p>
-<table border="1" cellpadding="2" cellspacing="0">
+<table>
   <tr>
     <td valign="top"><b>Attribute</b></td>
     <td valign="top"><b>Description</b></td>
@@ -75,7 +71,7 @@ error and the JVM will not start.
 <p>
 When system assertions have been neither enabled nor disabled, then
 the JVM is not given any assertion information - the default action of the
- current JVMs is to disable system assertions. 
+ current JVMs is to disable system assertions.
 <p>
 Note also that there is no apparent documentation for what parts of the
 JRE come with useful assertions.
@@ -87,7 +83,7 @@ JRE come with useful assertions.
 Enable assertions in portions of code.
 If neither a package nor class is specified, assertions are turned on in 
<i>all</i> (user) code.
 </p>
-<table border="1" cellpadding="2" cellspacing="0">
+<table>
   <tr>
     <td valign="top"><b>Attribute</b></td>
     <td valign="top"><b>Description</b></td>
@@ -113,7 +109,7 @@ If neither a package nor class is specified, assertions are 
turned on in <i>all<
 Disable assertions in portions of code.
 
 </p>
-<table border="1" cellpadding="2" cellspacing="0">
+<table>
   <tr>
     <td valign="top"><b>Attribute</b></td>
     <td valign="top"><b>Description</b></td>
@@ -138,7 +134,6 @@ Disable assertions in portions of code.
 Because assertions are disabled by default, it only makes sense to disable
 assertions where they have been enabled in a parent package.
 
-
 <h4>Examples</h4>
 
 <h5>Example: enable assertions in all user classes</h5>
@@ -190,7 +185,6 @@ Disable system assertions; enable those in the anonymous 
package
 &lt;/assertions&gt;
 </pre>
 
-
 <h5>Example: referenced assertions</h5>
 
 This type is a datatype, so you can declare assertions and use them later
@@ -203,6 +197,5 @@ This type is a datatype, so you can declare assertions and 
use them later
 &lt;assertions refid="project.assertions"/&gt;
 </pre>
 
-
 </body>
 </html>

http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/classfileset.html
----------------------------------------------------------------------
diff --git a/manual/Types/classfileset.html b/manual/Types/classfileset.html
index a83d266..5e7642c 100644
--- a/manual/Types/classfileset.html
+++ b/manual/Types/classfileset.html
@@ -22,9 +22,9 @@
 </head>
 
 <body>
-<h2><a name="fileset">ClassFileSet</a></h2>
-<p>A classfileset is a specialized type of fileset which, given a set of 
-&quot;root&quot; classes, will include all of the class files upon which the 
+<h2 id="fileset">ClassFileSet</h2>
+<p>A classfileset is a specialized type of fileset which, given a set of
+&quot;root&quot; classes, will include all of the class files upon which the
 root classes depend. This is typically used to create a jar with all of the
 required classes for a particular application.
 </p>
@@ -37,14 +37,13 @@ is expected.
 This type requires the <code>BCEL</code> <a 
href="../install.html#librarydependencies">library</a>.
 </p>
 
-
 <h3>Attributes</h3>
 <p>The class fileset support the following attributes in addition
-to those supported by the 
-<a href="../Types/fileset.html">standard fileset</a>:
+to those supported by the
+<a href="fileset.html">standard fileset</a>:
 </p>
- 
-<table border="1" cellpadding="2" cellspacing="0">
+
+<table>
   <tr>
     <td valign="top"><b>Attribute</b></td>
     <td valign="top"><b>Description</b></td>
@@ -64,7 +63,7 @@ to those supported by the
 When more than one root class is required, multiple nested 
<code>&lt;root&gt;</code> elements
 may be used
 </p>
-<table border="1" cellpadding="2" cellspacing="0">
+<table>
   <tr>
     <td valign="top"><b>Attribute</b></td>
     <td valign="top"><b>Description</b></td>
@@ -79,9 +78,9 @@ may be used
 
 <h4>RootFileSet</h4>
 <p>
-A root fileset is used to add a set of root classes from a fileset. In this 
case the entries in 
-the fileset are expected to be Java class files. The name of the Java class is 
determined by the 
-relative location of the classfile in the fileset. So, the file 
+A root fileset is used to add a set of root classes from a fileset. In this 
case the entries in
+the fileset are expected to be Java class files. The name of the Java class is 
determined by the
+relative location of the classfile in the fileset. So, the file
 <code>org/apache/tools/ant/Project.class</code> corresponds to the Java class
 <code>org.apache.tools.ant.Project</code>.</p>
 
@@ -92,9 +91,9 @@ relative location of the classfile in the fileset. So, the 
file
 &lt;/classfileset&gt;
 </pre></blockquote>
 
-<p>This example creates a fileset containing all the class files upon which 
the 
-<code>org.apache.tools.ant.Project</code> class depends. This fileset could 
-then be used to create a jar. 
+<p>This example creates a fileset containing all the class files upon which the
+<code>org.apache.tools.ant.Project</code> class depends. This fileset could
+then be used to create a jar.
 </p>
 
 <blockquote><pre>
@@ -109,11 +108,8 @@ then be used to create a jar.
 &lt;/classfileset&gt;
 </pre></blockquote>
 
-<p>This example constructs the classfileset using all the class with names 
starting with Project 
-in the org.apache.tools.ant package</p> 
-
-
+<p>This example constructs the classfileset using all the class with names 
starting with Project
+in the org.apache.tools.ant package</p>
 
 </body>
 </html>
-

http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/custom-programming.html
----------------------------------------------------------------------
diff --git a/manual/Types/custom-programming.html 
b/manual/Types/custom-programming.html
index 96bade3..3010b83 100644
--- a/manual/Types/custom-programming.html
+++ b/manual/Types/custom-programming.html
@@ -16,7 +16,7 @@
 -->
 <html>
   <head>
-    <meta http-equiv="Content-Language" content="en-us"></meta>
+    <meta http-equiv="Content-Language" content="en-us">
 <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
 <title>Custom Components</title>
   </head>
@@ -57,7 +57,7 @@
       After the class has been written, it is added to the ant system
       by using <code>&lt;typedef&gt;</code>.
     </p>
-    <h3><a name="customconditions">Custom Conditions</a></h3>
+    <h3 id="customconditions">Custom Conditions</h3>
     <p>
       Custom conditions are datatypes that implement
       <code>org.apache.tools.ant.taskdefs.condition.Condition</code>.
@@ -112,7 +112,7 @@ public class AllUpperCaseCondition implements Condition {
 &lt;/condition&gt;
       </pre>
     </blockquote>
-    <h3><a name="customselectors">Custom Selectors</a></h3>
+    <h3 id="customselectors">Custom Selectors</h3>
     <p>
       Custom selectors are datatypes that implement
       <code>org.apache.tools.ant.types.selectors.FileSelector</code>.
@@ -265,12 +265,11 @@ public class MatchNumberSelectors extends 
BaseSelectorContainer {
         core selectors demonstrate how to do that because they can
         also be used as custom selectors.</p>
 
-
     <p>Once that is written, you include it in your build file by using
       the <code>&lt;custom&gt;</code> tag.
     </p>
 
-    <table border="1" cellpadding="2" cellspacing="0">
+    <table>
       <tr>
         <td valign="top"><b>Attribute</b></td>
         <td valign="top"><b>Description</b></td>
@@ -315,7 +314,6 @@ public class MatchNumberSelectors extends 
BaseSelectorContainer {
 &lt;/fileset&gt;
       </pre></blockquote>
 
-
     <p>The core selectors that can also be used as custom selectors
       are</p>
 
@@ -351,7 +349,7 @@ public class MatchNumberSelectors extends 
BaseSelectorContainer {
     <p>Selects all files in the base directory and one directory below
       that.</p>
 
-    <h3><a name="filterreaders">Custom Filter Readers</a></h3>
+    <h3 id="filterreaders">Custom Filter Readers</h3>
     <p>
       Custom filter readers selectors are datatypes that implement
       <code>org.apache.tools.ant.types.filters.ChainableReader</code>.
@@ -408,8 +406,5 @@ public class AddLineNumber extends ChainableReaderFilter {
       </pre>
     </blockquote>
 
-
-    <hr></hr>
   </body>
 </html>
-

http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/description.html
----------------------------------------------------------------------
diff --git a/manual/Types/description.html b/manual/Types/description.html
index 85942be..0445d61 100644
--- a/manual/Types/description.html
+++ b/manual/Types/description.html
@@ -24,7 +24,7 @@
 
 <body>
 
-<h2><a name="description">Description</a></h2>
+<h2 id="description">Description</h2>
 <h3>Description</h3>
 <p>Allows for a description of the project to be specified that
 will be included in the output of the <code>ant &#x2011;projecthelp</code>
@@ -33,14 +33,12 @@ command.</p>
 <h3>Parameters</h3>
 <p>(none)</p>
 <h3>Examples</h3>
-<pre>  
+<pre>
 &lt;description&gt;
-This buildfile is used to build the Foo subproject within 
+This buildfile is used to build the Foo subproject within
 the large, complex Bar project.
 &lt;/description&gt;
 </pre>
 
-
 </body>
 </html>
-

http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/dirset.html
----------------------------------------------------------------------
diff --git a/manual/Types/dirset.html b/manual/Types/dirset.html
index 0434e9c..24adf54 100644
--- a/manual/Types/dirset.html
+++ b/manual/Types/dirset.html
@@ -24,7 +24,7 @@
 
 <body>
 
-<h2><a name="dirset">DirSet</a></h2>
+<h2 id="dirset">DirSet</h2>
 <p>A DirSet is a group of directories. These directories can be found in a
 directory tree starting in a base directory and are matched by
 patterns taken from a number of <a href="patternset.html">PatternSets</a>
@@ -41,7 +41,7 @@ elements of <code>&lt;patternset&gt;</code> directly, as well 
as
 If any of the selectors within the DirSet do not select the directory, it
 is not considered part of the DirSet. This makes a DirSet
 equivalent to an <code>&lt;and&gt;</code> selector container.</p>
-<table border="1" cellpadding="2" cellspacing="0">
+<table>
   <tr>
     <td valign="top"><b>Attribute</b></td>
     <td valign="top"><b>Description</b></td>
@@ -148,7 +148,5 @@ using the same patterns as the above example.</p>
 <p>Selects all directories somewhere under <code>${workingdir}</code>
 which contain a <code>${markerfile}</code>.</p>
 
-
 </body>
 </html>
-

http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/extension.html
----------------------------------------------------------------------
diff --git a/manual/Types/extension.html b/manual/Types/extension.html
index b05c0a6..b54d899 100644
--- a/manual/Types/extension.html
+++ b/manual/Types/extension.html
@@ -22,7 +22,7 @@
 </head>
 
 <body>
-<h2><a name="fileset">Extension</a></h2>
+<h2 id="fileset">Extension</h2>
 <p>Utility type that represents either an available "Optional Package"
  (formerly known as "Standard Extension") as described in the manifest
  of a JAR file, or the requirement for such an optional package.</p>
@@ -32,14 +32,12 @@ works with extensions as defined by the "Optional Package" 
specification.
 <em>Optional Package Versioning</em> in the documentation bundle for your
 Java2 Standard Edition package, in file
 <code>guide/extensions/versioning.html</code> or the online
-<a 
href="http://docs.oracle.com/javase/7/docs/technotes/guides/versioning/spec/versioning2.html#wp90779";>
-Package Versioning documentation.</p>
+<a 
href="http://docs.oracle.com/javase/7/docs/technotes/guides/versioning/spec/versioning2.html#wp90779";>Package
 Versioning documentation.</a></p>
 
 <h3>Attributes</h3>
-<p>The extension type supports the following attributes</a>:
-</p>
+<p>The extension type supports the following attributes:</p>
 
-<table border="1" cellpadding="2" cellspacing="0">
+<table>
   <tr>
     <td valign="top"><b>Attribute</b></td>
     <td valign="top"><b>Description</b></td>
@@ -107,8 +105,5 @@ Package Versioning documentation.</p>
 
 <p>Extension object that just species the specification details.</p>
 
-
-
 </body>
 </html>
-

http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/extensionset.html
----------------------------------------------------------------------
diff --git a/manual/Types/extensionset.html b/manual/Types/extensionset.html
index f38c1ed..a42d8f4 100644
--- a/manual/Types/extensionset.html
+++ b/manual/Types/extensionset.html
@@ -30,8 +30,7 @@ works with extensions as defined by the "Optional Package" 
specification.
 <em>Optional Package Versioning</em> in the documentation bundle for your
 Java2 Standard Edition package, in file
 <code>guide/extensions/versioning.html</code> or online at
-<a 
href="http://docs.oracle.com/javase/7/docs/technotes/guides/versioning/spec/versioning2.html#wp90779";>
-Package Versioning documentation.</p>
+<a 
href="http://docs.oracle.com/javase/7/docs/technotes/guides/versioning/spec/versioning2.html#wp90779";>Package
 Versioning documentation.</a></p>
 
 <h3>Nested Elements</h3>
 
@@ -39,13 +38,13 @@ Package Versioning documentation.</p>
 <p><a href="extension.html">Extension</a> object to add to set.</p>
 
 <h4>fileset</h4>
- <p><a href="../Types/fileset.html">FileSet</a>s all files contained
+ <p><a href="fileset.html">FileSet</a>s all files contained
  contained within set that are jars and implement an extension are added
  to extension set.</p>
 
 <h4>LibFileSet</h4>
- <p>All files contained contained within set that are jars and implement 
- an extension are added to extension set. However the extension information 
+ <p>All files contained contained within set that are jars and implement
+ an extension are added to extension set. However the extension information
  may be modified by attributes of libfileset</p>
 
 <h4>Examples</h4>
@@ -76,8 +75,5 @@ Package Versioning documentation.</p>
 
 </pre></blockquote>
 
-
-
 </body>
 </html>
-

http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/filelist.html
----------------------------------------------------------------------
diff --git a/manual/Types/filelist.html b/manual/Types/filelist.html
index 57c981d..3a3f61c 100644
--- a/manual/Types/filelist.html
+++ b/manual/Types/filelist.html
@@ -24,7 +24,7 @@
 
 <body>
 
-<h2><a name="filelist">FileList</a></h2> 
+<h2 id="filelist">FileList</h2>
 
 <p>FileLists are explicitly named lists of files.  Whereas FileSets
 act as filters, returning only those files that exist in the file
@@ -36,7 +36,7 @@ included in the list unchanged).
 FileLists can appear inside tasks that support this feature or as stand-alone
 types.
 </p>
-<table border="1" cellpadding="2" cellspacing="0">
+<table>
   <tr>
     <td valign="top"><b>Attribute</b></td>
     <td valign="top"><b>Description</b></td>
@@ -61,7 +61,7 @@ types.
     white space and commas.
   </p>
   <p><em>Since Apache Ant 1.6.2</em></p>
-  <table border="1" cellpadding="2" cellspacing="0">
+  <table>
     <tr>
       <td valign="top"><b>Attribute</b></td>
       <td valign="top"><b>Description</b></td>
@@ -72,13 +72,13 @@ types.
       <td valign="top">The name of the file.</td>
       <td valign="top" align="center">Yes</td>
     </tr>
-</table>  
+</table>
 <h4>Examples</h4>
 <blockquote><pre>
-&lt;filelist 
-    id=&quot;docfiles&quot; 
+&lt;filelist
+    id=&quot;docfiles&quot;
     dir=&quot;${doc.src}&quot;
-    files=&quot;foo.xml,bar.xml&quot;/&gt; 
+    files=&quot;foo.xml,bar.xml&quot;/&gt;
 </pre></blockquote>
 
 <p>The files <code>${doc.src}/foo.xml</code> and
@@ -87,24 +87,24 @@ actually exist.
 </p>
 
 <blockquote><pre>
-&lt;filelist 
-    id=&quot;docfiles&quot; 
+&lt;filelist
+    id=&quot;docfiles&quot;
     dir=&quot;${doc.src}&quot;
     files=&quot;foo.xml
-           bar.xml&quot;/&gt; 
+           bar.xml&quot;/&gt;
 </pre></blockquote>
 
 <p>Same files as the example above.</p>
 
 <blockquote><pre>
-&lt;filelist refid=&quot;docfiles&quot;/&gt; 
+&lt;filelist refid=&quot;docfiles&quot;/&gt;
 </pre></blockquote>
 
 <p>Same files as the example above.</p>
 
 <blockquote><pre>
-&lt;filelist 
-    id=&quot;docfiles&quot; 
+&lt;filelist
+    id=&quot;docfiles&quot;
     dir=&quot;${doc.src}&quot;&gt;
     &lt;file name="foo.xml"/&gt;
     &lt;file name="bar.xml"/&gt;
@@ -113,8 +113,5 @@ actually exist.
 
 <p>Same files as the example above.</p>
 
-
-
 </body>
 </html>
-

http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/fileset.html
----------------------------------------------------------------------
diff --git a/manual/Types/fileset.html b/manual/Types/fileset.html
index 3d90172..47fcbec 100644
--- a/manual/Types/fileset.html
+++ b/manual/Types/fileset.html
@@ -24,7 +24,7 @@
 
 <body>
 
-<h2><a name="fileset">FileSet</a></h2>
+<h2 id="fileset">FileSet</h2>
 <p>A FileSet is a group of files. These files can be found in a
 directory tree starting in a base directory and are matched by
 patterns taken from a number of <a
@@ -41,7 +41,7 @@ attributes.</p>
 If any of the selectors within the FileSet do not select the file, the
 file is not considered part of the FileSet. This makes a FileSet
 equivalent to an <code>&lt;and&gt;</code> selector container.</p>
-<table border="1" cellpadding="2" cellspacing="0">
+<table>
   <tr>
     <td valign="top"><b>Attribute</b></td>
     <td valign="top"><b>Description</b></td>
@@ -115,7 +115,7 @@ equivalent to an <code>&lt;and&gt;</code> selector 
container.</p>
   </tr>
 </table>
 
-<p><a name="symlink"><b>Note</b></a>: All files/directories for which
+<p id="symlink"><b>Note</b>: All files/directories for which
 the canonical path is different from its path are considered symbolic
 links.  On Unix systems this usually means the file really is a
 symbolic link but it may lead to false results on other
@@ -176,11 +176,8 @@ selector container.</p>
 <blockquote><pre>
 &lt;fileset dir="src" includes="main/" /&gt;
 </pre></blockquote>
-<p>Selects all files in <i>src/main</i> (e.g. <i>src/main/Foo.java</i> or 
+<p>Selects all files in <i>src/main</i> (e.g. <i>src/main/Foo.java</i> or
 <i>src/main/application/Bar.java</i>).</p>
 
-
-
 </body>
 </html>
-

http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/filterchain.html
----------------------------------------------------------------------
diff --git a/manual/Types/filterchain.html b/manual/Types/filterchain.html
index 8f4066f..7159185 100644
--- a/manual/Types/filterchain.html
+++ b/manual/Types/filterchain.html
@@ -14,8 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
 <html>
 <head>
   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
@@ -124,11 +122,11 @@ nested elements.<br>
 <a href="#tailfilter">TailFilter</a><br>
 <a href="#deletecharacters">DeleteCharacters</a><br>
 <a href="#concatfilter">ConcatFilter</a><br>
+<a href="#sortfilter">SortFilter</a><br>
 <a href="#tokenfilter">TokenFilter</a><br>
 <a href="../Tasks/fixcrlf.html">FixCRLF</a><br>
-<a href="#sortfilter">SortFilter</a><br>
 
-<h3><a name="filterreader">FilterReader</a></h3>
+<h3 id="filterreader">FilterReader</h3>
 
 The filterreader element is the generic way to
 define a filter.  User defined filter elements are
@@ -142,16 +140,16 @@ extend java.io.FilterReader.  If the custom filter reader
 needs to be parameterized, it must implement
 org.apache.tools.type.Parameterizable.
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>classname</td>
-    <td vAlign=top>The class name of the filter reader.</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top">classname</td>
+    <td valign="top">The class name of the filter reader.</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
 </table>
 
@@ -164,7 +162,7 @@ attributes - name, type and value.
 The following FilterReaders are supplied with the default
 distribution.
 
-<h3><a name="classconstants">ClassConstants</a></h3>
+<h3 id="classconstants">ClassConstants</h3>
 <p>
   This filters basic constants defined in a Java Class,
   and outputs them in lines composed of the format <i>name</i>=<i>value</i>.
@@ -210,12 +208,12 @@ prepending the names with a prefix.
   &lt;/filterchain&gt;
 &lt;/loadproperties&gt;
 </pre></blockquote>
-<h3><a name="escapeunicode">EscapeUnicode</a></h3>
+<h3 id="escapeunicode">EscapeUnicode</h3>
 <p>
 This filter converts its input by changing all non US-ASCII characters
 into their equivalent unicode escape backslash u plus 4 digits.</p>
 
-<p><em>since Ant 1.6</em></p>
+<p><em>Since Ant 1.6</em></p>
 
 <h4>Example:</h4>
 
@@ -237,7 +235,7 @@ Convenience method:
 &lt;/loadproperties&gt;
 </pre></blockquote>
 
-<h3><a name="expandproperties">ExpandProperties</a></h3>
+<h3 id="expandproperties">ExpandProperties</h3>
 <p>
 If the data contains data that represents Ant
 properties (of the form ${...}), that is substituted
@@ -290,28 +288,28 @@ Convenience method:
 &lt;/loadfile&gt;
 </pre></blockquote>
 
-<h3><a name="headfilter">HeadFilter</a></h3>
+<h3 id="headfilter">HeadFilter</h3>
 
 This filter reads the first few lines from the data supplied to it.
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Parameter Name</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Parameter Name</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>lines</td>
-    <td vAlign=top align="center">Number of lines to be read.
+    <td valign="top">lines</td>
+    <td valign="top" align="center">Number of lines to be read.
     Defaults to &quot;10&quot; <br> A negative value means that all lines are
     passed (useful with <i>skip</i>)</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>skip</td>
-    <td vAlign=top align="center">Number of lines to be skipped (from the 
beginning).
+    <td valign="top">skip</td>
+    <td valign="top" align="center">Number of lines to be skipped (from the 
beginning).
     Defaults to &quot;0&quot;</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
 <p>
@@ -350,27 +348,27 @@ in the property src.file.head. (Means: lines 3-17)
 See the testcases for more examples 
(<i>src\etc\testcases\filters\head-tail.xml</i> in the
 source distribution).
 
-<h3><a name="linecontains">LineContains</a></h3>
+<h3 id="linecontains">LineContains</h3>
 
 This filter includes only those lines that contain all the user-specified
 strings.
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Parameter Type</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Parameter Type</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>contains</td>
-    <td vAlign=top align="center">Substring to be searched for.</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top">contains</td>
+    <td valign="top" align="center">Substring to be searched for.</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
   <tr>
-    <td vAlign=top>negate</td>
-    <td vAlign=top align="center">Whether to select
-      <i>non-</i>matching lines only. <b>Since Ant 1.7</b></td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top">negate</td>
+    <td valign="top" align="center">Whether to select
+      <i>non-</i>matching lines only. <em>Since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
 <p>
@@ -409,38 +407,38 @@ Negation:
 &lt;/linecontains&gt;
 </pre></blockquote>
 
-<h3><a name="linecontainsregexp">LineContainsRegExp</a></h3>
+<h3 id="linecontainsregexp">LineContainsRegExp</h3>
 
 Filter which includes only those lines that contain the user-specified
 regular expression matching strings.
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Parameter Type</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Parameter Type</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>regexp</td>
-    <td vAlign=top align="center">Regular expression to be searched for.<br>
+    <td valign="top">regexp</td>
+    <td valign="top" align="center">Regular expression to be searched for.<br>
       <em>Starting with 1.10.2 this also works as an attribute
         on <code>linecontainsregexp</code>, in earlier versions of Ant
         you must use a nested element when using the convenience
         method.</em>
     </td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
   <tr>
-    <td vAlign=top>negate</td>
-    <td vAlign=top align="center">Whether to select
-      <i>non-</i>matching lines only. <b>Since Ant 1.7</b></td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top">negate</td>
+    <td valign="top" align="center">Whether to select
+      <i>non-</i>matching lines only. <em>Since Ant 1.7</em></td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>casesensitive</td>
-    <td vAlign=top align="center">Perform a case sensitive
-      match. Default is true. <b>Since Ant 1.8.2</b></td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top">casesensitive</td>
+    <td valign="top" align="center">Perform a case sensitive
+      match. Default is true. <em>Since Ant 1.8.2</em></td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
 
@@ -476,20 +474,20 @@ Negation:
 &lt;/linecontainsregexp&gt;
 </pre></blockquote>
 
-<h3><a name="prefixlines">PrefixLines</a></h3>
+<h3 id="prefixlines">PrefixLines</h3>
 
 Attaches a prefix to every line.
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Parameter Name</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Parameter Name</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>prefix</td>
-    <td vAlign=top align="center">Prefix to be attached to lines.</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top">prefix</td>
+    <td valign="top" align="center">Prefix to be attached to lines.</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
 </table>
 <p>
@@ -507,22 +505,22 @@ Convenience method:
 &lt;prefixlines prefix=&quot;Foo&quot;/&gt;
 </pre></blockquote>
 
-<h3><a name="suffixlines">SuffixLines</a></h3>
+<h3 id="suffixlines">SuffixLines</h3>
 
 Attaches a suffix to every line.
 
 <p><em>since Ant 1.8.0</em></p>
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Parameter Name</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Parameter Name</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>suffix</td>
-    <td vAlign=top align="center">Suffix to be attached to lines.</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top">suffix</td>
+    <td valign="top" align="center">Suffix to be attached to lines.</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
 </table>
 <p>
@@ -540,59 +538,59 @@ Convenience method:
 &lt;suffixlines suffix=&quot;Foo&quot;/&gt;
 </pre></blockquote>
 
-<h3><a name="replacetokens">ReplaceTokens</a></h3>
+<h3 id="replacetokens">ReplaceTokens</h3>
 
 This filter reader replaces all strings that are
 sandwiched between begintoken and endtoken with
 user defined values.
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Parameter Type</b></td>
-    <td vAlign=top><b>Parameter Name</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Parameter Type</b></td>
+    <td valign="top"><b>Parameter Name</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>tokenchar</td>
-    <td vAlign=top>begintoken</td>
-    <td vAlign=top>String marking the
+    <td valign="top">tokenchar</td>
+    <td valign="top">begintoken</td>
+    <td valign="top">String marking the
     beginning of a token.  Defaults to @</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>tokenchar</td>
-    <td vAlign=top>endtoken</td>
-    <td vAlign=top>String marking the
+    <td valign="top">tokenchar</td>
+    <td valign="top">endtoken</td>
+    <td valign="top">String marking the
     end of a token.  Defaults to @</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>User defined String.</td>
-    <td vAlign=top>token</td>
-    <td vAlign=top>User defined search String.</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top">User defined String.</td>
+    <td valign="top">token</td>
+    <td valign="top">User defined search String.</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
   <tr>
-    <td vAlign=top>Not applicable.</td>
-    <td vAlign=top>propertiesfile</td>
-    <td vAlign=top>Properties file to take tokens from.</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top">Not applicable.</td>
+    <td valign="top">propertiesfile</td>
+    <td valign="top">Properties file to take tokens from.</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>Not applicable.</td>
-    <td vAlign=top>propertiesResource</td>
-    <td vAlign=top>Properties resource to take tokens from.
+    <td valign="top">Not applicable.</td>
+    <td valign="top">propertiesResource</td>
+    <td valign="top">Properties resource to take tokens from.
       Note this only works is you use the
       "convenience" <code>&lt;replacetokens&gt;</code> syntax.
       <em>since Ant 1.8.0</em></td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>User defined String.</td>
-    <td vAlign=top>value</td>
-    <td vAlign=top>Replace-value for the token</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top">User defined String.</td>
+    <td valign="top">value</td>
+    <td valign="top">Replace-value for the token</td>
+    <td valign="top" align="center">No</td>
   </tr></table>
 <p>
 
@@ -680,7 +678,7 @@ baz=xyzzy
 &lt;/loadfile&gt;
 </pre></blockquote>
 
-<h3><a name="stripjavacomments">StripJavaComments</a></h3>
+<h3 id="stripjavacomments">StripJavaComments</h3>
 
 This filter reader strips away comments from the data,
 using Java syntax guidelines.  This filter does not
@@ -705,22 +703,22 @@ Convenience method:
 &lt;/loadfile&gt;
 </pre></blockquote>
 
-<h3><a name="striplinebreaks">StripLineBreaks</a></h3>
+<h3 id="striplinebreaks">StripLineBreaks</h3>
 
 This filter reader strips away specific characters
 from the data supplied to it.
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Parameter Name</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Parameter Name</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>linebreaks</td>
-    <td vAlign=top align="center">Characters that are to
+    <td valign="top">linebreaks</td>
+    <td valign="top" align="center">Characters that are to
     be stripped out.  Defaults to &quot;\r\n&quot;</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
 <p>
@@ -756,22 +754,22 @@ strips them.
 &lt;/loadfile&gt;
 </pre></blockquote>
 
-<h3><a name="striplinecomments">StripLineComments</a></h3>
+<h3 id="striplinecomments">StripLineComments</h3>
 
 This filter removes all those lines that begin with strings
 that represent comments as specified by the user.
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Parameter Type</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Parameter Type</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>comment</td>
-    <td vAlign=top align="center">Strings that identify a line as a comment
+    <td valign="top">comment</td>
+    <td valign="top" align="center">Strings that identify a line as a comment
     when they appear at the start of the line.</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
 </table>
 <p>
@@ -799,20 +797,20 @@ Convenience method:
 &lt;/striplinecomments&gt;
 </pre></blockquote>
 
-<h3><a name="tabstospaces">TabsToSpaces</a></h3>
+<h3 id="tabstospaces">TabsToSpaces</h3>
 
 This filter replaces tabs with spaces
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Parameter Name</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Parameter Name</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>tablength</td>
-    <td vAlign=top align="center">Defaults to &quot;8&quot;</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top">tablength</td>
+    <td valign="top" align="center">Defaults to &quot;8&quot;</td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
 <p>
@@ -836,28 +834,28 @@ Convenience method:
 &lt;/loadfile&gt;
 </pre></blockquote>
 
-<h3><a name="tailfilter">TailFilter</a></h3>
+<h3 id="tailfilter">TailFilter</h3>
 
 This filter reads the last few lines from the data supplied to it.
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Parameter Name</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Parameter Name</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>lines</td>
-    <td vAlign=top align="center">Number of lines to be read.
+    <td valign="top">lines</td>
+    <td valign="top" align="center">Number of lines to be read.
     Defaults to &quot;10&quot; <br> A negative value means that all lines are
     passed (useful with <i>skip</i>)</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>skip</td>
-    <td vAlign=top align="center">Number of lines to be skipped (from the end).
+    <td valign="top">skip</td>
+    <td valign="top" align="center">Number of lines to be skipped (from the 
end).
     Defaults to &quot;0&quot; </td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
 <p>
@@ -866,93 +864,70 @@ This filter reads the last few lines from the data 
supplied to it.
 With HeadFilter and TailFilter you can extract each part of a text file you 
want.
 This graphic shows the dependencies:
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
 <tr>
- <th> Content </th>
- <th></th>
- <th></th>
- <th></th>
- <th> Filter </th>
+ <th>Content</th>
+ <th colspan="3">Filter</th>
 </tr>
 <tr>
- <td> Line 1 </td>
- <td rowspan="2" bgcolor="#C0C0C0">&nbsp;</td>
- <td rowspan="9" bgcolor="#FF00FF">&nbsp;</td>
- <td rowspan="4">&nbsp;</td>
- <td rowspan="11">
-    <table>
-    <tr>
-     <td bgcolor="#C0C0C0">&nbsp;</td>
-     <td><pre>&lt;filterchain&gt;
+ <td>Line 1</td>
+ <td rowspan="2" style="background:limegreen;">
+   <pre style="background:limegreen;">&lt;filterchain&gt;
     &lt;headfilter lines="2"/&gt;
 &lt;/filterchain&gt;</pre></td>
-    </tr>
-    <tr>
-     <td bgcolor="#FF00FF">&nbsp;</td>
-     <td><pre>&lt;filterchain&gt;
-    &lt;tailfilter lines="-1" skip="2"/&gt;
-&lt;/filterchain&gt;</pre></td>
-    </tr>
-    <tr>
-     <td bgcolor="#008000">&nbsp;</td>
-     <td><pre>&lt;filterchain&gt;
-    &lt;headfilter lines="-1" skip="2"/&gt;
-&lt;/filterchain&gt;</pre></td>
-    </tr>
-    <tr>
-     <td bgcolor="#0000FF">&nbsp;</td>
-     <td><pre>&lt;filterchain&gt;
-    &lt;headfilter lines="-1" skip="2"/&gt;
+ <td rowspan="9" style="background:fuchsia;">
+   <pre style="background:fuchsia;">&lt;filterchain&gt;
     &lt;tailfilter lines="-1" skip="2"/&gt;
-&lt;/filterchain&gt;</pre></td>
-    </tr>
-    <tr>
-     <td bgcolor="#00FF00">&nbsp;</td>
-     <td><pre>&lt;filterchain&gt;
-    &lt;tailfilter lines="2"/&gt;
-&lt;/filterchain&gt;</pre></td>
-    </tr>
-    </table>
+&lt;/filterchain&gt;</pre>
  </td>
+ <td rowspan="2">&nbsp;</td>
 </tr>
 <tr>
- <td> Line 2 </td>
+ <td>Line 2</td>
 </tr>
 <tr>
- <td> Line 3 </td>
- <td rowspan="9" bgcolor="#008000">&nbsp;</td>
+ <td>Line 3</td>
+ <td rowspan="9" style="background:tomato;">
+   <pre style="background:tomato;">&lt;filterchain&gt;
+    &lt;headfilter lines="-1" skip="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
+ <td rowspan="7" style="background:dodgerblue;">
+   <pre style="background:dodgerblue;">&lt;filterchain&gt;
+    &lt;headfilter lines="-1" skip="2"/&gt;
+    &lt;tailfilter lines="-1" skip="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
 </tr>
 <tr>
- <td> Line 4 </td>
+ <td>Line 4</td>
 </tr>
 <tr>
- <td> Line 5 </td>
- <td rowspan="3" bgcolor="#0000FF">&nbsp;</td>
+ <td>Line 5</td>
 </tr>
 <tr>
- <td> Lines ... </td>
+ <td>Lines ...</td>
 </tr>
 <tr>
- <td> Line 95 </td>
+ <td>Line 95</td>
 </tr>
 <tr>
- <td> Line 96 </td>
- <td rowspan="4">&nbsp;</td>
+ <td>Line 96</td>
 </tr>
 <tr>
- <td> Line 97 </td>
+ <td>Line 97</td>
 </tr>
 <tr>
- <td> Line 98 </td>
- <td rowspan="2" bgcolor="#00FF00">&nbsp;</td>
+ <td>Line 98</td>
+ <td rowspan="2" style="background:lime;">
+   <pre  style="background:lime;">&lt;filterchain&gt;
+    &lt;tailfilter lines="2"/&gt;
+&lt;/filterchain&gt;</pre></td>
+ <td rowspan="2">&nbsp;</td>
 </tr>
 <tr>
- <td> Line 99 </td>
+ <td>Line 99</td>
 </tr>
 </table>
 
-
-
 <h4>Examples:</h4>
 
 This stores the last 15 lines of the supplied data in the property 
${src.file.tail}
@@ -975,7 +950,6 @@ Convenience method:
 &lt;/loadfile&gt;
 </pre></blockquote>
 
-
 This stores the last 5 lines of the first 15 lines of the supplied
 data in the property ${src.file.mid}
 <blockquote><pre>
@@ -1001,7 +975,6 @@ Convenience method:
 &lt;/loadfile&gt;
 </pre></blockquote>
 
-
 This stores the last 10 lines, skipping the last 2 lines, of the supplied data
 in the property src.file.head. (Means: if supplied data contains 60 lines,
 lines 49-58 are extracted)
@@ -1013,25 +986,25 @@ lines 49-58 are extracted)
 &lt;/loadfile&gt;
 </pre></blockquote>
 
-<h3><a name="deletecharacters">DeleteCharacters</a></h3>
+<h3 id="deletecharacters">DeleteCharacters</h3>
 
   <p>This filter deletes specified characters.</p>
   <p><em>since Ant 1.6</em></p>
   <p>This filter is only available in the convenience form.</p>
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Parameter Name</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Parameter Name</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>chars</td>
-    <td vAlign=top>
+    <td valign="top">chars</td>
+    <td valign="top">
       The characters to delete. This attribute is
       <a href="#backslash">backslash enabled</a>.
     </td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
 </table>
 <p>
@@ -1042,28 +1015,28 @@ Delete tabs and returns from the data.
 &lt;deletecharacters chars="\t\r"/&gt;
 </pre></blockquote>
 
-<h3><a name="concatfilter">ConcatFilter</a></h3>
+<h3 id="concatfilter">ConcatFilter</h3>
   <p>This filter prepends or appends the content file to the filtered 
files.</p>
   <p><em>since Ant 1.6</em></p>
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Parameter Name</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Parameter Name</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>prepend</td>
-    <td vAlign=top>
+    <td valign="top">prepend</td>
+    <td valign="top">
       The name of the file which content should be prepended to the file.
     </td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>append</td>
-    <td vAlign=top>
+    <td valign="top">append</td>
+    <td valign="top">
       The name of the file which content should be appended to the file.
     </td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
 <p>
@@ -1084,14 +1057,125 @@ Adds a license text before each java source:
 &lt;/filterchain&gt;
 </pre></blockquote>
 
+<h3 id="sortfilter">SortFilter</h3>
+  <p><em>since Ant 1.8.0</em></p>
+
+<p>The sort filter reads all lines and sorts them.  The sort order can
+  be reversed and it is possible to specify a custom implementation of
+  the <code>java.util.Comparator</code> interface to get even more
+  control.</p>
 
+<table>
+  <tr>
+    <td valign="top"><b>Parameter Name</b></td>
+    <td valign="top"><b>Parameter Value</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">reverse</td>
+    <td valign="top" align="center">whether to reverse the sort order,
+      defaults to false.  <b>Note:</b> this parameter is ignored if
+      the comparator parameter is present as well.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">comparator</td>
+    <td valign="top" align="center">Class name of a class that
+      implements <code>java.util.Comparator</code> for Strings.  This
+      class will be used to determine the sort order of lines.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<p>This filter is also available using the
+  name <code>sortfilter</code>.  The <code>reverse</code> parameter
+  becomes an attribute, <code>comparator</code> can be specified by
+  using a nested element.</p>
+
+<h4>Examples:</h4>
+
+<blockquote><pre>
+  &lt;copy todir=&quot;build&quot;&gt;
+      &lt;fileset dir=&quot;input&quot; includes=&quot;*.txt&quot;/&gt;
+      &lt;filterchain&gt;
+          &lt;sortfilter/&gt;
+      &lt;/filterchain&gt;
+  &lt;/copy&gt;
+</pre></blockquote>
+
+<p>
+Sort all files <code>*.txt</code> from <i>src</i> location
+into <i>build</i> location. The lines of each file are sorted in
+ascendant order comparing the lines via the
+<code>String.compareTo(Object o)</code> method.
+</p>
+
+<blockquote><pre>
+  &lt;copy todir=&quot;build&quot;&gt;
+      &lt;fileset dir=&quot;input&quot; includes=&quot;*.txt&quot;/&gt;
+      &lt;filterchain&gt;
+          &lt;sortfilter reverse=&quot;true&quot;/&gt;
+      &lt;/filterchain&gt;
+  &lt;/copy&gt;
+</pre></blockquote>
+
+<p>
+Sort all files <code>*.txt</code> from <i>src</i> location into reverse
+order and copy them into <i>build</i> location.
+</p>
+
+<blockquote><pre>
+  &lt;copy todir=&quot;build&quot;&gt;
+      &lt;fileset dir=&quot;input&quot; includes=&quot;*.txt&quot;/&gt;
+      &lt;filterchain&gt;
+          &lt;filterreader 
classname=&quot;org.apache.tools.ant.filters.SortFilter&quot;&gt;
+            &lt;param name=&quot;comparator&quot; 
value=&quot;org.apache.tools.ant.filters.EvenFirstCmp&quot;/&gt;
+          &lt;/filterreader&gt;
+      &lt;/filterchain&gt;
+  &lt;/copy&gt;
+</pre></blockquote>
+
+<p>
+Sort all files <code>*.txt</code> from <i>src</i> location using as
+sorting criterium <code>EvenFirstCmp</code> class, that sorts the file
+lines putting even lines first then odd lines for example. The modified files
+are copied into <i>build</i> location. The <code>EvenFirstCmp</code>,
+has to an instanciable class via <code>Class.newInstance()</code>,
+therefore in case of inner class has to be <em>static</em>. It also has to
+implement <code>java.util.Comparator</code> interface, for example:
+</p>
+
+<pre>
+        package org.apache.tools.ant.filters;
+        ...(omitted)
+          public final class EvenFirstCmp implements 
&lt;b&gt;Comparator&lt;/b&gt; {
+            public int compare(Object o1, Object o2) {
+            ...(omitted)
+            }
+          }
+</pre>
+
+<p>The example above is equivalent to:</p>
+
+<blockquote><pre>
+  &lt;componentdef name=&quot;evenfirst&quot;
+                
classname=&quot;org.apache.tools.ant.filters.EvenFirstCmp&quot;/&gt;
+  &lt;copy todir=&quot;build&quot;&gt;
+      &lt;fileset dir=&quot;input&quot; includes=&quot;*.txt&quot;/&gt;
+      &lt;filterchain&gt;
+          &lt;sortfilter&gt;
+              &lt;evenfirst/&gt;
+          &lt;/sortfilter&gt;
+      &lt;/filterchain&gt;
+  &lt;/copy&gt;
+</pre></blockquote>
 
-<h3><a name="tokenfilter">TokenFilter</a></h3>
+<h3 id="tokenfilter">TokenFilter</h3>
 This filter tokenizes the inputstream into strings and passes these
 strings to filters of strings. Unlike the other filterreaders, this does
 not support params, only convenience methods are implemented.
 The tokenizer and the string filters are defined by nested elements.
-<p><em>since Ant 1.6</em></p>
+<p><em>Since Ant 1.6</em></p>
 <p>
 Only one tokenizer element may be used, the LineTokenizer is the
 default if none are specified.  A tokenizer
@@ -1106,32 +1190,32 @@ outputs with its associated token delimiter
 (if one is present).
 The trailing delimiter may be overridden by the <i>delimOutput</i>
 attribute.
+<h4 id="backslash">Backslash interpretation</h4>
 <p>
-<a name="backslash"><em>backslash interpretation</em></a>
 A number of attributes (including <i>delimOutput</i>) interpret
 backslash escapes. The following are understood: \n, \r, \f, \t
 and \\.
+</p>
 
-
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>delimOutput</td>
-    <td vAlign=top>
+    <td valign="top">delimOutput</td>
+    <td valign="top">
      This overrides the tokendelimiter
         returned by the tokenizer if it is not empty. This
      attribute is backslash enabled.
 </td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
 <p>
-
-    The following tokenizers are provided by the default distribution.
+  The following tokenizers are provided by the default distribution.
+</p>
     <p>
         <a href="#linetokenizer">LineTokenizer</a><br>
         <a href="#filetokenizer">FileTokenizer</a><br>
@@ -1155,42 +1239,45 @@ and \\.
     <p>
         <a href="#scriptfilter">ScriptFilter</a><br>
     </p>
-
+<p>
+  <a href="#custom">Custom</a> tokenizers and string filters can be
+  declared using <a href="../Tasks/typedef.html">typedef</a> task.
+</p>
+<p>
 Some of the filters may be used directly within a filter chain. In this
 case a tokenfilter is created implicitly. An extra attribute "byline"
 is added to the filter to specify whether to use a linetokenizer
 (byline="true") or a filetokenizer (byline="false"). The default
 is "true".
-<p>
+</p>
 
-<p><b><em><a name="linetokenizer">LineTokenizer</a></em></b></p>
+<h4 id="linetokenizer">LineTokenizer</h4>
 This tokenizer splits the input into lines.
 The tokenizer delimits lines
 by "\r", "\n" or "\r\n".
 This is the default tokenizer.
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>includeDelims</td>
-    <td vAlign=top>
+    <td valign="top">includeDelims</td>
+    <td valign="top">
       Include the line endings in the token.
       Default is false.
     </td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
-<h4>Examples:</h4>
+<h5>Examples:</h5>
 
 Convert input current line endings to unix style line endings.
 <blockquote><pre>
 &lt;tokenfilter delimoutput=&quot;\n&quot;/&gt;
 </pre></blockquote>
 
-
 Remove blank lines.
 <blockquote><pre>
 &lt;tokenfilter&gt;
@@ -1199,10 +1286,10 @@ Remove blank lines.
 
 </pre></blockquote>
 
-<p><b><em><a name="filetokenizer">FileTokenizer</a></em></b></p>
+<h4 id="filetokenizer">FileTokenizer</h4>
 This tokenizer treats <b>all</b> the input as a token. So be
 careful not to use this on very large input.
-<h4>Examples:</h4>
+<h5>Examples:</h5>
 
 Replace the first occurrence of package with //package.
 <blockquote><pre>
@@ -1214,7 +1301,7 @@ Replace the first occurrence of package with //package.
 &lt;/tokenfilter&gt;
 </pre></blockquote>
 
-<p><b><em><a name="stringtokenizer">StringTokenizer</a></em></b></p>
+<h4 id="stringtokenizer">StringTokenizer</h4>
 This tokenizer is based on java.util.StringTokenizer.
 It splits up the input into strings separated by white space, or
 by a specified list of delimiting characters.
@@ -1222,19 +1309,19 @@ If the stream starts with delimiter characters, the 
first
 token will be the empty string (unless the <i>delimsaretokens</i>
 attribute is used).
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>delims</td>
-    <td vAlign=top>The delimiter characters. White space
+    <td valign="top">delims</td>
+    <td valign="top">The delimiter characters. White space
       is used if this is not set. (White space is defined
       in this case by java.lang.Character.isWhitespace()).
     </td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
     <td valign="top">delimsaretokens</td>
@@ -1253,16 +1340,16 @@ attribute is used).
     <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>includeDelims</td>
-    <td vAlign=top>
+    <td valign="top">includeDelims</td>
+    <td valign="top">
       Include the delimiters in the token.
       Default is false.
     </td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
 
-<h4>Examples:</h4>
+<h5>Examples:</h5>
 
 Surround each non space token with a "[]".
 
@@ -1274,20 +1361,20 @@ Surround each non space token with a "[]".
 
 </pre></blockquote>
 
-<p><b><em><a name="replacestring">ReplaceString</a></em></b></p>
+<h4 id="replacestring">ReplaceString</h4>
 This is a simple filter to replace strings.
 This filter may be used directly within a filterchain.
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>from</td>
-    <td vAlign=top>The string that must be replaced.</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top">from</td>
+    <td valign="top">The string that must be replaced.</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
   <tr>
     <td valign="top">to</td>
@@ -1298,7 +1385,7 @@ This filter may be used directly within a filterchain.
   </tr>
 </table>
 
-<h4>Examples:</h4>
+<h5>Examples:</h5>
 
 Replace "sun" with "moon".
 
@@ -1308,24 +1395,24 @@ Replace "sun" with "moon".
 &lt;/tokenfilter&gt;
 </pre></blockquote>
 
-<p><b><em><a name="containsstring">ContainsString</a></em></b></p>
+<h4 id="containsstring">ContainsString</h4>
 This is a simple filter to filter tokens that contains
 a specified string.
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>contains</td>
-    <td vAlign=top>The string that the token must contain.</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top">contains</td>
+    <td valign="top">The string that the token must contain.</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
 </table>
 
-<h4>Examples:</h4>
+<h5>Examples:</h5>
 
 Include only lines that contain "foo";
 
@@ -1336,7 +1423,7 @@ Include only lines that contain "foo";
 
 </pre></blockquote>
 
-<p><b><em><a name="replaceregex">ReplaceRegex</a></em></b></p>
+<h4 id="replaceregex">ReplaceRegex</h4>
 This string filter replaces regular expressions.
 This filter may be used directly within a filterchain.
 <p>
@@ -1344,33 +1431,33 @@ This filter may be used directly within a filterchain.
 concerning the choice of the implementation.
 </p>
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>pattern</td>
-    <td vAlign=top>The regular expression pattern to match in
+    <td valign="top">pattern</td>
+    <td valign="top">The regular expression pattern to match in
       the token.</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
   <tr>
-    <td vAlign=top>replace</td>
-    <td vAlign=top>The substitution pattern to replace the matched
+    <td valign="top">replace</td>
+    <td valign="top">The substitution pattern to replace the matched
       regular expression. When omitted an empty string is used.</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>flags</td>
-    <td vAlign=top>See
+    <td valign="top">flags</td>
+    <td valign="top">See
 <a href="../Tasks/replaceregexp.html">ReplaceRegexp</a>
 for an explanation of regex flags.</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
-<h4>Examples:</h4>
+<h5>Examples:</h5>
 
 Replace all occurrences of "hello" with "world", ignoring case.
 
@@ -1381,7 +1468,7 @@ Replace all occurrences of "hello" with "world", ignoring 
case.
 
 </pre></blockquote>
 
-<p><b><em><a name="containsregex">ContainsRegex</a></em></b></p>
+<h4 id="containsregex">ContainsRegex</h4>
 This filters strings that match regular expressions.
 The filter may optionally replace the matched regular expression.
 This filter may be used directly within a filterchain.
@@ -1390,35 +1477,35 @@ See
 <a href="regexp.html#implementation">Regexp Type</a>
 concerning the choice of regular expression implementation.
 </p>
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>pattern</td>
-    <td vAlign=top>The regular expression pattern to match in
+    <td valign="top">pattern</td>
+    <td valign="top">The regular expression pattern to match in
       the token.</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
   <tr>
-    <td vAlign=top>replace</td>
-    <td vAlign=top>The substitution pattern to replace the matched
+    <td valign="top">replace</td>
+    <td valign="top">The substitution pattern to replace the matched
       regular expression. When omitted the original token is returned.
     </td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>flags</td>
-    <td vAlign=top>See
+    <td valign="top">flags</td>
+    <td valign="top">See
 <a href="../Tasks/replaceregexp.html">ReplaceRegexp</a>
 for an explanation of regex flags.</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
 
-<h4>Examples:</h4>
+<h5>Examples:</h5>
 
 Filter lines that contain "hello" or "world", ignoring case.
 
@@ -1440,31 +1527,33 @@ This example replaces lines like "SUITE(TestSuite, 
bits);" with
 &lt;/tokenfilter&gt;
 </pre></blockquote>
 
-<p><b><em><a name="trim">Trim</a></em></b></p>
+<h4 id="trim">Trim</h4>
 This filter trims whitespace from the start and end of
 tokens.
 This filter may be used directly within a filterchain.
-<p><b><em><a name="ignoreblank">IgnoreBlank</a></em></b></p>
+
+<h4 id="ignoreblank">IgnoreBlank</h4>
 This filter removes empty tokens.
 This filter may be used directly within a filterchain.
-<p><b><em><a name="filterdeletecharacters">DeleteCharacters</a></em></b></p>
+
+<h4 id="filterdeletecharacters">DeleteCharacters</h4>
 This filter deletes specified characters from tokens.
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>chars</td>
-    <td vAlign=top>The characters to delete. This attribute
+    <td valign="top">chars</td>
+    <td valign="top">The characters to delete. This attribute
       is backslash enabled.</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
 </table>
 
-<h4>Examples:</h4>
+<h5>Examples:</h5>
 
 Delete tabs from lines, trim the lines and removes empty lines.
 
@@ -1477,14 +1566,14 @@ Delete tabs from lines, trim the lines and removes 
empty lines.
 
 </pre></blockquote>
 
-<p><b><em><a name="uniqfilter">UniqFilter</a></em></b></p>
+<h4 id="uniqfilter">UniqFilter</h4>
 
 <p>Suppresses all tokens that match their ancestor token.  It is most
   useful if combined with a sort filter.</p>
 
 <p>This filter may be used directly within a filterchain.</p>
 
-<h4>Example:</h4>
+<h5>Example:</h5>
 
 This suppresses duplicate lines.
 <blockquote><pre>
@@ -1493,31 +1582,31 @@ This suppresses duplicate lines.
 &lt;/tokenfilter&gt;
 </pre></blockquote>
 
-<p><b><em><a name="native2asciifilter">Native2AsciiFilter</a></em></b></p>
+<h4 id="native2asciifilter">Native2AsciiFilter</h4>
 
 <p>Uses the "builtin" implementation of
   the <a href="../Tasks/native2ascii.html">native2ascii</a> task.</p>
 
 <p>Replaces non-ascii characters by their Unicode-escapes or
-  vice-versa.  <em>Since Ant 1.9.8</em>.</p>
+  vice-versa.  <em>Since Ant 1.9.8</em></p>
 
 <p>This filter may be used directly within a filterchain.</p>
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>reverse</td>
-    <td vAlign=top>Reverse the sense of the conversion,
+    <td valign="top">reverse</td>
+    <td valign="top">Reverse the sense of the conversion,
       i.e. convert from ASCII to native.</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
 
-<h4>Example:</h4>
+<h5>Example:</h5>
 
 <p>This replaces all non-ASCII characters by their Unicode-escapes.</p>
 <blockquote><pre>
@@ -1526,12 +1615,14 @@ This suppresses duplicate lines.
 &lt;/tokenfilter&gt;
 </pre></blockquote>
 
-<p><b><em><a name="scriptfilter">ScriptFilter</a></em></b></p>
+<h4 id="scriptfilter">ScriptFilter</h4>
+<p>
 This is an optional filter that executes a script in a
 <a href="http://jakarta.apache.org/bsf"; target="_top">Apache BSF</a>
   or
   <a href="https://scripting.dev.java.net";>JSR 223</a>
 supported language.</p>
+<p>
 See the <a href="../Tasks/script.html">Script</a> task for
 an explanation of scripts and dependencies.
 </p>
@@ -1543,17 +1634,17 @@ method replaces the current token.
 </p>
 
 This filter may be used directly within a filterchain.<p>
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>language</td>
-    <td vAlign=top> The programming language the script is written in.
+    <td valign="top">language</td>
+    <td valign="top"> The programming language the script is written in.
 Must be a supported Apache BSF or JSR 223 language</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
   <tr>
     <td valign="top">manager</td>
@@ -1565,20 +1656,20 @@ Must be a supported Apache BSF or JSR 223 language</td>
     <td valign="top" align="center">No - default is "auto"</td>
   </tr>
   <tr>
-    <td vAlign=top>src</td>
-    <td vAlign=top>The location of the script as a file, if not inline
+    <td valign="top">src</td>
+    <td valign="top">The location of the script as a file, if not inline
     </td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
     <td valign="top">encoding</td>
-    <td valign="top">The encoding of the script as a file. <em>since Ant 
1.10.2.</em></td>
+    <td valign="top">The encoding of the script as a file. <em>Since Ant 
1.10.2</em></td>
     <td valign="top" align="center">No - defaults to default JVM encoding</td>
   </tr>
   <tr>
     <td valign="top">setbeans</td>
     <td valign="top">whether to have all properties, references and targets as
-      global variables in the script.  <em>since Ant 1.8.0</em></td>
+      global variables in the script.  <em>Since Ant 1.8.0</em></td>
     <td valign="top" align="center">No, default is "true".</td>
   </tr>
   <tr>
@@ -1600,7 +1691,7 @@ Must be a supported Apache BSF or JSR 223 language</td>
     See the <a href="../Tasks/script.html">script</a> task
     on how to use this element.
   </p>
-<h4>Examples:</h4>
+<h5>Examples:</h5>
 
 Convert to uppercase:
 <blockquote><pre>
@@ -1628,13 +1719,13 @@ copying text files:
     </pre>
   </blockquote>
 
-<h4>Custom tokenizers and string filters</h4>
+<h4 id="custom">Custom tokenizers and string filters</h4>
 
 Custom string filters and tokenizers may be plugged in by
 extending the interfaces org.apache.tools.ant.filters.TokenFilter.Filter
 and org.apache.tools.ant.util.Tokenizer respectly.
 
-They are defined the build file using <code>&lt;typedef/&gt;</code>. For
+They are defined in the build file using <code>&lt;typedef/&gt;</code>. For
 example a string filter that capitalizes words may be declared as:
 <blockquote><pre>
 package my.customant;
@@ -1666,118 +1757,4 @@ This may be used as follows:
   &lt;/copy&gt;
 </pre></blockquote>
 
-
-<h3><a name="sortfilter">SortFilter</a></h3>
-  <p><em>since Ant 1.8.0</em></p>
-
-<p>The sort filter reads all lines and sorts them.  The sort order can
-  be reversed and it is possible to specify a custom implementation of
-  the <code>java.util.Comparator</code> interface to get even more
-  control.</p>
-
-<table cellSpacing=0 cellPadding=2 border=1>
-  <tr>
-    <td vAlign=top><b>Parameter Name</b></td>
-    <td vAlign=top><b>Parameter Value</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td vAlign=top>reverse</td>
-    <td vAlign=top align="center">whether to reverse the sort order,
-      defaults to false.  <b>Note:</b> this parameter is ignored if
-      the comparator parameter is present as well.</td>
-    <td vAlign=top align="center">No</td>
-  </tr>
-  <tr>
-    <td vAlign=top>comparator</td>
-    <td vAlign=top align="center">Class name of a class that
-      implements <code>java.util.Comparator</code> for Strings.  This
-      class will be used to determine the sort order of lines.</td>
-    <td vAlign=top align="center">No</td>
-  </tr>
-</table>
-
-<p>This filter is also available using the
-  name <code>sortfilter</code>.  The <code>reverse</code> parameter
-  becomes an attribute, <code>comparator</code> can be specified by
-  using a nested element.</p>
-
-<h4>Examples:</h4>
-
-<blockquote><pre>
-  &lt;copy todir=&quot;build&quot;&gt;
-      &lt;fileset dir=&quot;input&quot; includes=&quot;*.txt&quot;/&gt;
-      &lt;filterchain&gt;
-          &lt;sortfilter/&gt;
-      &lt;/filterchain&gt;
-  &lt;/copy&gt;
-</pre></blockquote>
-
-<p>
-Sort all files <code>*.txt</code> from <i>src</i> location
-into <i>build</i> location. The lines of each file are sorted in
-ascendant order comparing the lines via the
-<code>String.compareTo(Object o)</code> method.
-</p>
-
-<blockquote><pre>
-  &lt;copy todir=&quot;build&quot;&gt;
-      &lt;fileset dir=&quot;input&quot; includes=&quot;*.txt&quot;/&gt;
-      &lt;filterchain&gt;
-          &lt;sortfilter reverse=&quot;true&quot;/&gt;
-      &lt;/filterchain&gt;
-  &lt;/copy&gt;
-</pre></blockquote>
-
-<p>
-Sort all files <code>*.txt</code> from <i>src</i> location into reverse
-order and copy them into <i>build</i> location.
-</p>
-
-<blockquote><pre>
-  &lt;copy todir=&quot;build&quot;&gt;
-      &lt;fileset dir=&quot;input&quot; includes=&quot;*.txt&quot;/&gt;
-      &lt;filterchain&gt;
-          &lt;filterreader 
classname=&quot;org.apache.tools.ant.filters.SortFilter&quot;&gt;
-            &lt;param name=&quot;comparator&quot; 
value=&quot;org.apache.tools.ant.filters.EvenFirstCmp&quot;/&gt;
-          &lt;/filterreader&gt;
-      &lt;/filterchain&gt;
-  &lt;/copy&gt;
-</pre></blockquote>
-
-<p>
-Sort all files <code>*.txt</code> from <i>src</i> location using as
-sorting criterium <code>EvenFirstCmp</code> class, that sorts the file
-lines putting even lines first then odd lines for example. The modified files
-are copied into <i>build</i> location. The <code>EvenFirstCmp</code>,
-has to an instanciable class via <code>Class.newInstance()</code>,
-therefore in case of inner class has to be <em>static</em>. It also has to
-implement <code>java.util.Comparator</code> interface, for example:
-</p>
-
-<pre>
-        package org.apache.tools.ant.filters;
-        ...(omitted)
-          public final class EvenFirstCmp implements 
&lt;b&gt;Comparator&lt;/b&gt; {
-            public int compare(Object o1, Object o2) {
-            ...(omitted)
-            }
-          }
-</pre>
-
-<p>The example above is equivalent to:</p>
-
-<blockquote><pre>
-  &lt;componentdef name="evenfirst"
-                classname="org.apache.tools.ant.filters.EvenFirstCmp&quot;/&gt;
-  &lt;copy todir=&quot;build&quot;&gt;
-      &lt;fileset dir=&quot;input&quot; includes=&quot;*.txt&quot;/&gt;
-      &lt;filterchain&gt;
-          &lt;sortfilter&gt;
-              &lt;evenfirst/&gt;
-          &lt;/sortfilter&gt;
-      &lt;/filterchain&gt;
-  &lt;/copy&gt;
-</pre></blockquote>
-
 </body></html>

http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/filterset.html
----------------------------------------------------------------------
diff --git a/manual/Types/filterset.html b/manual/Types/filterset.html
index 8b0dfe1..a50d750 100644
--- a/manual/Types/filterset.html
+++ b/manual/Types/filterset.html
@@ -14,8 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
 <html>
 <head>
   <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
@@ -23,13 +21,13 @@
 </head>
 
 <body>
-<h2><a name="filterset">FilterSet</a></h2>
+<h2 id="filterset">FilterSet</h2>
 
 <p>FilterSets are groups of filters. Filters can be defined as token-value
-pairs 
-or be read in from a file. FilterSets can appear inside tasks that support 
this 
+pairs
+or be read in from a file. FilterSets can appear inside tasks that support this
 feature or at the same level as <code>&lt;target&gt;</code> - i.e., as
-children of 
+children of
 <code>&lt;project&gt;</code>.</p>
 
 <p>FilterSets support the <code>id</code> and <code>refid</code>
@@ -40,9 +38,9 @@ filtersets into filtersets to get a set union of the contained
 filters.</p>
 
 <p>In addition, FilterSets can specify
-<code>begintoken</code> and/or 
+<code>begintoken</code> and/or
 <code>endtoken</code> attributes to define what to match.</p>
-<p>Filtersets are used for doing 
+<p>Filtersets are used for doing
 replacements in tasks such as <code>&lt;copy&gt;</code>, etc.</p>
 
 <p>Filters can also by specified by one or more nested propertysets, the
@@ -52,96 +50,96 @@ replacements in tasks such as <code>&lt;copy&gt;</code>, 
etc.</p>
   defined within a filterset will be used.</p>
 
 <p>
-<strong>Note: </strong>When a filterset is used in an operation, the files are 
+<strong>Note: </strong>When a filterset is used in an operation, the files are
 processed in text mode and the filters applied line by line. This means that
 the copy operations will typically corrupt binary files. When applying filters
 you should ensure that the set of files being filtered are all text files.
 </p>
 
-<h2>Filterset</h2>
+<h3>Filterset</h3>
 
-<table cellSpacing=0 cellPadding=2 border=1>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top><b>Default</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top"><b>Default</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>begintoken</td>
-    <td vAlign=top>The string marking the beginning of a token (eg.,
+    <td valign="top">begintoken</td>
+    <td valign="top">The string marking the beginning of a token (eg.,
       <code>&#64;DATE&#64;</code>).</td>
-    <td vAlign=top>@</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top">@</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>endtoken</td>
-    <td vAlign=top>The string marking the end of a token (eg.,
+    <td valign="top">endtoken</td>
+    <td valign="top">The string marking the end of a token (eg.,
       <code>&#64;DATE&#64;</code>).</td>
-    <td vAlign=top>@</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top">@</td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>filtersfile</td>
-    <td vAlign=top>Specify a single filtersfile.</td>
-    <td vAlign=top><i>none</i></td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top">filtersfile</td>
+    <td valign="top">Specify a single filtersfile.</td>
+    <td valign="top"><i>none</i></td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>recurse</td>
-    <td vAlign=top>Indicates whether the replacement text of tokens
-      should be searched for more tokens. <b>Since Ant 1.6.3</b></td>
-    <td vAlign=top><i>true</i></td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top">recurse</td>
+    <td valign="top">Indicates whether the replacement text of tokens
+      should be searched for more tokens. <em>Since Ant 1.6.3</em></td>
+    <td valign="top"><i>true</i></td>
+    <td valign="top" align="center">No</td>
   </tr>
   <tr>
-    <td vAlign=top>onmissingfiltersfile</td>
-    <td vAlign=top>Indicate behavior when a nonexistent <i>filtersfile</i>
-      is specified.  One of "fail", "warn", "ignore". <b>Since Ant 1.7</b></td>
-    <td vAlign=top>"fail"</td>
-    <td vAlign=top align="center">No</td>
+    <td valign="top">onmissingfiltersfile</td>
+    <td valign="top">Indicate behavior when a nonexistent <i>filtersfile</i>
+      is specified.  One of "fail", "warn", "ignore". <em>Since Ant 
1.7</em></td>
+    <td valign="top">"fail"</td>
+    <td valign="top" align="center">No</td>
   </tr>
 </table>
 
-<h2>Filter</h2>
-<table cellSpacing=0 cellPadding=2 border=1>
+<h3>Filter</h3>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>token</td>
-    <td vAlign=top>The token to replace (eg., <code>&#64;DATE&#64;</code>)</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top">token</td>
+    <td valign="top">The token to replace (eg., 
<code>&#64;DATE&#64;</code>)</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
   <tr>
-    <td vAlign=top>value</td>
-    <td vAlign=top>The value to replace it with
+    <td valign="top">value</td>
+    <td valign="top">The value to replace it with
      (eg., <code>Thursday, April 26, 2001</code>).</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
 </table>
 
-<h2>Filtersfile</h2>
-<table cellSpacing=0 cellPadding=2 border=1>
+<h3>Filtersfile</h3>
+<table>
   <tr>
-    <td vAlign=top><b>Attribute</b></td>
-    <td vAlign=top><b>Description</b></td>
-    <td vAlign=top align="center"><b>Required</b></td>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td valign="top" align="center"><b>Required</b></td>
   </tr>
   <tr>
-    <td vAlign=top>file</td>
-    <td vAlign=top>A properties file of 
+    <td valign="top">file</td>
+    <td valign="top">A properties file of
       name-value pairs from which to load the tokens.</td>
-    <td vAlign=top align="center">Yes</td>
+    <td valign="top" align="center">Yes</td>
   </tr>
 </table>
 
 <h4>Examples</h4>
 
 <p>You are copying the <code>version.txt</code> file to the <code>dist</code>
-directory from the <code>build</code> directory 
+directory from the <code>build</code> directory
 but wish to replace the token <code>&#64;DATE&#64;</code> with today's 
date.</p>
 <blockquote><pre>
 &lt;copy file=&quot;${build.dir}/version.txt&quot; 
toFile=&quot;${dist.dir}/version.txt&quot;&gt;
@@ -152,7 +150,7 @@ but wish to replace the token <code>&#64;DATE&#64;</code> 
with today's date.</p>
 </pre></blockquote>
 
 <p>You are copying the <code>version.txt</code> file to the <code>dist</code>
-directory from the build directory 
+directory from the build directory
 but wish to replace the token <code>%DATE*</code> with today's date.</p>
 <blockquote><pre>
 &lt;copy file=&quot;${build.dir}/version.txt&quot; 
toFile=&quot;${dist.dir}/version.txt&quot;&gt;
@@ -186,7 +184,7 @@ but wish to replace the token <code>%DATE*</code> with 
today's date.</p>
 </pre></blockquote>
 
 <p>You are copying the <code>version.txt</code> file to the <code>dist</code>
-directory from the <code>build</code> directory 
+directory from the <code>build</code> directory
 but wish to replace the token <code>&#64;project.date&#64;</code> with the 
property of the same name.</p>
 <blockquote><pre>
 &lt;copy file=&quot;${build.dir}/version.txt&quot; 
toFile=&quot;${dist.dir}/version.txt&quot;&gt;

Reply via email to