*******************************************************************************
* Developers                                                                  *
*                                                                             *
* Do not update this change log manually.                                     *
* Instead, make your commit messages informative, and these will be harvested *
* at integration time by the cvs2cl.pl script and added here.                 *
* For details on this script see:                                             *
*    http://www.red-bean.com/cvs2cl/                                          *
*                                                                             *
* For guidelines on what to put in commit messages see:                       *
*    http://www.red-bean.com/cvs2cl/changelogs.html                           *
*                                                                             *
*******************************************************************************

Release Build 1.4 - 20040314
--------------------------------

2004-03-14 10:53  derrickoswald

	* src/org/htmlparser/beans/LinkBean.java:

	Add retry on EncodingChangeException, just like StringBean.
	
2004-03-14 10:42  derrickoswald

	* src/org/htmlparser/: tests/lexerTests/AttributeTests.java,
	lexer/nodes/PageAttribute.java:

	Fix bug #911565 isValued() and isNull() don't work.
	Rework predicates. Add testPredicates() to attribute tests.
	Don't rely on value of quote character when getting assignment string. Add testSetQuote().

Integration Build 1.4 - 20040229
--------------------------------

2004-02-29 10:09  derrickoswald

	* build.xml, src/doc-files/overview.html,
	src/org/htmlparser/parserapplications/StringExtractor.java,
	src/org/htmlparser/nodeDecorators/package.html,
	src/org/htmlparser/tags/CompositeTag.java:

	Javadoc changes.
	Fix the "low hanging fruit" javadoc issues.
	
2004-02-29 09:16  derrickoswald

	* src/org/htmlparser/: scanners/StyleScanner.java,
	tags/StyleTag.java, tests/tagTests/StyleTagTest.java:

	Fix bug #900125 Style Tag Children not grouped
	Added StyleScanner, a near copy of ScriptScanner.
	Added testStyleChildren() in StyleTagTest to check it's operation.
	
2004-02-29 07:52  derrickoswald

	* src/org/htmlparser/: lexer/nodes/RemarkNode.java,
	lexer/nodes/StringNode.java, tags/ImageTag.java, tags/LinkTag.java,
	tests/ParserTest.java:

	Fix bug #900128 RemarkNode.setText() does not set Text
	Add override setText() to StringNode and RemarkNode.
	Add unit tests to excercise the new code.
	Remove remaining XX_FILTER constants.
	
2004-02-28 20:38  derrickoswald

	* src/org/htmlparser/tags/ScriptTag.java:

	Correct booboo in ScriptTag toHtml() injected by fix to bug #902121.
	
2004-02-28 10:52  derrickoswald

	* src/org/htmlparser/: beans/StringBean.java, filters/package.html,
	lexer/nodes/TagNode.java, scanners/ScriptDecoder.java,
	scanners/ScriptScanner.java, tags/ScriptTag.java, tags/Tag.java,
	tests/ParserTestCase.java,
	tests/scannersTests/ScriptScannerTest.java:

	Fix bug #902121 StringBean throws NullPointerException.
	Added ScriptDecoder to handle Microsoft Script Encoder encrypted tags.
	Added accessor to ScriptTag's scriptCode property to be able to override it.
	Ensured that a Tag always has a non-null name.
	Skip STYLE tags in StringBean, just like SCRIPT.
	
2004-02-18 07:34  derrickoswald

	* src/org/htmlparser/: lexer/Lexer.java,
	tests/lexerTests/LexerTests.java:

	Fix bug #899413 bug in javascript end detection.
	Patch submitted by Gernot Fricke handles escaped quotes in strings when
	lexing with smartquote turned on. Added test case in LexerTests.

Integration Build 1.4 - 20040216
--------------------------------

2004-02-11 07:37  derrickoswald

	* docs/contributors.html, src/org/htmlparser/beans/StringBean.java:

	Incorporate patch from Nick Burch to make StringBean a NodeVisistor for other parsers.
	See task #93155 StringBean driven by visitor.
	
2004-02-08 21:09  derrickoswald

	* build.xml, src/org/htmlparser/lexer/nodes/Attribute.java,
	src/org/htmlparser/lexer/nodes/TagNode.java,
	src/org/htmlparser/tests/tagTests/TagTest.java,
	src/org/htmlparser/tests/utilTests/CharacterTranslationTest.java,
	bin/translate, bin/translate.bat,
	src/org/htmlparser/util/CharacterReference.java,
	src/org/htmlparser/util/Generate.java,
	src/org/htmlparser/util/Translate.java,
	src/org/htmlparser/util/package.html:

	Rework character entity translation.
	See task 58599  enhance character reference translation.
	Decode now handles missing semi colons, encoding is more efficient,
	hexadecimal numeric character entity references are handled and
	both encoding and decoding make minimal use of substring().
	Augmented the tests in CharacterTranslationTest significantly, and
	merged the Generate class into the tests.
	Added translate command scripts in bin, which read from stdin and write to stdout.
	
2004-02-07 07:53  derrickoswald

	* src/org/htmlparser/: lexer/Lexer.java,
	tests/lexerTests/AttributeTests.java:

	Fix bug #891058 Bug in lexer.
	Patch submitted by Gernot Fricke.
	This change causes attribute parsing to be more 'greedy' resulting in 'empty' attributes
	consuming the next attribute. This brings the lexer parsing more in line with other
	(browser) interpretations and simplifies it immensely.
	
2004-01-31 15:51  derrickoswald

	* src/org/htmlparser/lexer/Page.java:

	Compare encoding names without case sensitivity.
	From HTML spec (http://www.w3.org/TR/html4/charset.html section 5.2.1):
	  Names for character encodings are case-insensitive, so that for
	  example "SHIFT_JIS", "Shift_JIS", and "shift_jis" are equivalent.
	and from to IANA(http://www.iana.org/assignments/character-sets):
	  The character set names may be up to 40 characters taken from the
	  printable characters of US-ASCII.  However, no distinction is made
	  between use of upper and lower case letters.
	
2004-01-31 11:31  derrickoswald

	* src/doc-files/: overview.html, todo.html:

	Move ToDo list to SourceForge trackers and tasks.

Integration Build 1.4 - 20040125
--------------------------------

2004-01-25 19:27  derrickoswald

	* src/org/htmlparser/Parser.java:

	Fix RFE #817723 enhancement: add user-agent
	Add get/setDefaultRequestProperties() which is used when creating a new connection
	to condition the connection prior to connecting.
	Currently, the only request property is  "User-Agent", which is set to "HTMLParser/1.4".
	Sophisticated users may set other properties to tailor the parser behaviour.
	
2004-01-25 16:32  derrickoswald

	* src/org/htmlparser/: PrototypicalNodeFactory.java,
	filters/HasAttributeFilter.java, filters/StringFilter.java,
	filters/TagNameFilter.java, lexer/nodes/TagNode.java,
	tags/CompositeTag.java, tags/FrameSetTag.java, tags/ImageTag.java,
	tests/FunctionalTests.java, tests/ParserTest.java,
	visitors/LinkFindingVisitor.java,
	visitors/StringFindingVisitor.java:

	Fix bug #883664 toUpperCase on tag names and attributes depends on locale
	Added locale information to all relevant toUpperCase() calls, with an English locale
	for tag names and attribute names, or developers choice of locale for methods that
	do uppercase conversion as part of their algorithms.
	
2004-01-24 18:57  derrickoswald

	* src/org/htmlparser/: filters/HasChildFilter.java,
	filters/HasParentFilter.java, filters/IsEqualFilter.java,
	tags/AppletTag.java, tags/CompositeTag.java, tags/FormTag.java,
	tags/SelectTag.java, tags/TableRow.java, tags/TableTag.java,
	tests/tagTests/BulletListTagTest.java,
	tests/tagTests/DivTagTest.java, tests/tagTests/SpanTagTest.java:

	Fix bug #882940 empty applet tag contents causes NullPointerException
	Also found and fixed other similar problems where getChildren() could
	return null.
	Then changed table row and column handling to handle rows and
	columns embedded within other tags.
	
2004-01-24 13:12  derrickoswald

	* src/org/htmlparser/: tags/TableRow.java, tags/TableHeader.java,
	PrototypicalNodeFactory.java:

	Add TableHeaderTag submitted by Pim Schrama.
	Robustify TableRow against null getChildren().
	
2004-01-24 12:41  derrickoswald

	* src/org/htmlparser/tags/CompositeTag.java:

	Fix StackOverflowError similar to the previous one.
	Recursion in the collectInto() wasn't checking for an end tag the same as 'this'.
	Scanned for other similar occurances, and fixed it in visitor code too.
	
2004-01-24 12:13  derrickoswald

	* src/org/htmlparser/: lexer/Lexer.java,
	tests/lexerTests/LexerTests.java, tests/tagTests/JspTagTest.java,
	tests/ParserTest.java:

	Fix bug #880283 Character ">" erroneously inserted by Lexer.
	Some jsp tags are now handled in a separate jsp parse in the lexer.
	Jsp tags embedded as attributes are still not handled.
	Refer to bug #772700 Jsp Tags are not parsed correctly when in quoted attributes,
	which is now reversed (i.e. in quotes are OK, outside of quotes causes problems),
	but this points out a deficiency in the data structure holding tag contents (attribute lists)
	that doesn't provide for tags within attributes.
	
Integration Build 1.4 - 20040119
--------------------------------

2004-01-19 17:44  derrickoswald

	* src/org/htmlparser/tags/CompositeTag.java:

	Fix CompositeTag.toString() which caused java.lang.StackOverflowError for tags of the form <td width="69"/>.
	In this case the end tag is 'this' tag which wasn't handled by the output code.
	Added testXMLTypeToString() to ParserTest.
	
2004-01-13 21:53  derrickoswald

	* build.xml, src/doc-files/todo.html,
	src/org/htmlparser/Parser.java,
	src/org/htmlparser/PrototypicalNodeFactory.java,
	src/org/htmlparser/RemarkNode.java,
	src/org/htmlparser/StringNode.java,
	src/org/htmlparser/lexer/nodes/TagNode.java,
	src/org/htmlparser/parserapplications/SiteCapturer.java,
	src/org/htmlparser/scanners/CompositeTagScanner.java,
	src/org/htmlparser/scanners/ScriptScanner.java,
	src/org/htmlparser/tags/BaseHrefTag.java,
	src/org/htmlparser/tags/FormTag.java,
	src/org/htmlparser/tags/FrameTag.java,
	src/org/htmlparser/tags/ImageTag.java,
	src/org/htmlparser/tags/JspTag.java,
	src/org/htmlparser/tags/SelectTag.java,
	src/org/htmlparser/tags/Tag.java,
	src/org/htmlparser/tags/TextareaTag.java,
	src/org/htmlparser/tests/FunctionalTests.java,
	src/org/htmlparser/tests/ParserTest.java,
	src/org/htmlparser/tests/ParserTestCase.java,
	src/org/htmlparser/tests/lexerTests/AttributeTests.java,
	src/org/htmlparser/tests/lexerTests/KitTest.java,
	src/org/htmlparser/tests/lexerTests/LexerTests.java,
	src/org/htmlparser/tests/lexerTests/PageTests.java,
	src/org/htmlparser/tests/lexerTests/SourceTests.java,
	src/org/htmlparser/tests/lexerTests/StreamTests.java,
	src/org/htmlparser/tests/scannersTests/CompositeTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/JspScannerTest.java,
	src/org/htmlparser/tests/scannersTests/ScriptScannerTest.java,
	src/org/htmlparser/tests/scannersTests/TagScannerTest.java,
	src/org/htmlparser/tests/tagTests/BaseHrefTagTest.java,
	src/org/htmlparser/tests/tagTests/BulletTagTest.java,
	src/org/htmlparser/tests/tagTests/ImageTagTest.java,
	src/org/htmlparser/tests/tagTests/JspTagTest.java,
	src/org/htmlparser/tests/tagTests/LinkTagTest.java,
	src/org/htmlparser/tests/tagTests/ScriptTagTest.java,
	src/org/htmlparser/tests/utilTests/CharacterTranslationTest.java,
	src/org/htmlparser/util/ParserUtils.java,
	src/org/htmlparser/util/sort/Sort.java,
	src/org/htmlparser/visitors/HtmlPage.java,
	src/org/htmlparser/visitors/TextExtractingVisitor.java:

	Remove unneeded imports.
	
2004-01-10 10:23  derrickoswald

	* src/org/htmlparser/: beans/StringBean.java, lexer/Page.java,
	tests/lexerTests/LexerTests.java,
	util/EncodingChangeException.java, util/IteratorImpl.java:

	Fix bug #874175 StringBean doesn't handle charset change well
	Add EncodingChangeException to distinguish a recoverable character set change
	occuring after the lexer has already coughed up some characters using the wrong
	encoding. Added testEncodingChange in LexerTests to excercise it.
	Changed IteratorImpl to not wrap a ParserException with another ParserException.
	Changed StringBean to retry the URL when an encoding change exception is caught.
	
2004-01-09 19:06  derrickoswald

	* src/org/htmlparser/: filters/HasAttributeFilter.java,
	parserapplications/SiteCapturer.java,
	parserapplications/WikiCapturer.java, util/NodeList.java:

	First pass at the wiki capturer.
	Added useful extensions to the HasAttributeFilter, SiteCapturer and NodeList

Integration Build 1.4 - 20040104
--------------------------------

2004-01-03 22:23  derrickoswald

	* build.xml, docs/bug.html, docs/contributors.html,
	docs/index.html, docs/joinus.html, docs/mailinglists.html,
	docs/main.html, docs/panel.html, docs/samples.html,
	docs/support.html, docs/articles/index.html,
	docs/articles/quest.html, docs/samples/index.html, bin/beanybaby,
	bin/beanybaby.bat, bin/stringextractor, bin/stringextractor.bat,
	src/org/htmlparser/Parser.java,
	src/org/htmlparser/beans/LinkBean.java,
	src/org/htmlparser/parserapplications/LinkExtractor.java,
	src/org/htmlparser/parserapplications/SiteCapturer.java:

	Web site revamp, phase 1.
	Main and first level pages are refurbished. The wiki is still to do.
	Fixed bug #865279 Documentation
	The samples directory is now orphaned and no longer shipped.
	
2004-01-02 14:32  derrickoswald

	* build.xml, src/org/htmlparser/Parser.java,
	src/org/htmlparser/lexer/Cursor.java,
	src/org/htmlparser/scanners/package.html:

	Gey keyword substitution working.
	In the future, could developers ensure source files are initially check in with keyword substitution (-kkv) turned on.
	
2004-01-02 11:24  derrickoswald

	* build.xml, docs/docs/FrequentlyAskedQuestions.html,
	docs/docs/ParsingXml.html, docs/docs/ReviewerInformation.html,
	docs/docs/TextExtractingVisitor.html, docs/docs/WebCrawler.html,
	docs/docs/index.html, src/org/htmlparser/AbstractNode.java,
	src/org/htmlparser/Node.java, src/org/htmlparser/Parser.java,
	src/org/htmlparser/RemarkNode.java,
	src/org/htmlparser/StringNode.java,
	src/org/htmlparser/StringNodeFactory.java,
	src/org/htmlparser/package.html,
	src/org/htmlparser/beans/BeanyBaby.java,
	src/org/htmlparser/beans/HTMLLinkBean.java,
	src/org/htmlparser/beans/HTMLTextBean.java,
	src/org/htmlparser/beans/LinkBean.java,
	src/org/htmlparser/beans/StringBean.java,
	src/org/htmlparser/beans/package.html,
	src/org/htmlparser/filters/package.html,
	src/org/htmlparser/lexer/Cursor.java,
	src/org/htmlparser/lexer/Lexer.java,
	src/org/htmlparser/lexer/Page.java,
	src/org/htmlparser/lexer/PageIndex.java,
	src/org/htmlparser/lexer/Source.java,
	src/org/htmlparser/lexer/Stream.java,
	src/org/htmlparser/lexer/package.html,
	src/org/htmlparser/lexer/nodes/Attribute.java,
	src/org/htmlparser/lexer/nodes/PageAttribute.java,
	src/org/htmlparser/lexer/nodes/RemarkNode.java,
	src/org/htmlparser/lexer/nodes/StringNode.java,
	src/org/htmlparser/lexer/nodes/TagNode.java,
	src/org/htmlparser/lexer/nodes/package.html,
	src/org/htmlparser/lexerapplications/tabby/package.html,
	src/org/htmlparser/lexerapplications/thumbelina/package.html,
	src/org/htmlparser/nodeDecorators/AbstractNodeDecorator.java,
	src/org/htmlparser/nodeDecorators/DecodingNode.java,
	src/org/htmlparser/nodeDecorators/EscapeCharacterRemovingNode.java,
	src/org/htmlparser/nodeDecorators/NonBreakingSpaceConvertingNode.java,
	src/org/htmlparser/parserapplications/StringExtractor.java,
	src/org/htmlparser/parserapplications/package.html,
	src/org/htmlparser/scanners/package.html,
	src/org/htmlparser/tags/AppletTag.java,
	src/org/htmlparser/tags/BaseHrefTag.java,
	src/org/htmlparser/tags/BodyTag.java,
	src/org/htmlparser/tags/Bullet.java,
	src/org/htmlparser/tags/BulletList.java,
	src/org/htmlparser/tags/CompositeTag.java,
	src/org/htmlparser/tags/Div.java,
	src/org/htmlparser/tags/DoctypeTag.java,
	src/org/htmlparser/tags/FormTag.java,
	src/org/htmlparser/tags/FrameSetTag.java,
	src/org/htmlparser/tags/FrameTag.java,
	src/org/htmlparser/tags/HeadTag.java,
	src/org/htmlparser/tags/Html.java,
	src/org/htmlparser/tags/ImageTag.java,
	src/org/htmlparser/tags/InputTag.java,
	src/org/htmlparser/tags/JspTag.java,
	src/org/htmlparser/tags/LabelTag.java,
	src/org/htmlparser/tags/LinkTag.java,
	src/org/htmlparser/tags/MetaTag.java,
	src/org/htmlparser/tags/OptionTag.java,
	src/org/htmlparser/tags/ScriptTag.java,
	src/org/htmlparser/tags/SelectTag.java,
	src/org/htmlparser/tags/Span.java,
	src/org/htmlparser/tags/StyleTag.java,
	src/org/htmlparser/tags/TableColumn.java,
	src/org/htmlparser/tags/TableRow.java,
	src/org/htmlparser/tags/TableTag.java,
	src/org/htmlparser/tags/Tag.java,
	src/org/htmlparser/tags/TextareaTag.java,
	src/org/htmlparser/tags/TitleTag.java,
	src/org/htmlparser/tags/package.html,
	src/org/htmlparser/tests/AllTests.java,
	src/org/htmlparser/tests/AssertXmlEqualsTest.java,
	src/org/htmlparser/tests/BadTagIdentifier.java,
	src/org/htmlparser/tests/FunctionalTests.java,
	src/org/htmlparser/tests/InstanceofPerformanceTest.java,
	src/org/htmlparser/tests/LineNumberAssignedByNodeReaderTest.java,
	src/org/htmlparser/tests/ParserTest.java,
	src/org/htmlparser/tests/ParserTestCase.java,
	src/org/htmlparser/tests/PerformanceTest.java,
	src/org/htmlparser/tests/package.html,
	src/org/htmlparser/tests/codeMetrics/LineCounter.java,
	src/org/htmlparser/tests/lexerTests/AllTests.java,
	src/org/htmlparser/tests/lexerTests/AttributeTests.java,
	src/org/htmlparser/tests/lexerTests/LexerTests.java,
	src/org/htmlparser/tests/lexerTests/PageIndexTests.java,
	src/org/htmlparser/tests/lexerTests/PageTests.java,
	src/org/htmlparser/tests/lexerTests/SourceTests.java,
	src/org/htmlparser/tests/lexerTests/StreamTests.java,
	src/org/htmlparser/tests/lexerTests/TagTests.java,
	src/org/htmlparser/tests/nodeDecoratorTests/AllTests.java,
	src/org/htmlparser/tests/nodeDecoratorTests/DecodingNodeTest.java,
	src/org/htmlparser/tests/nodeDecoratorTests/EscapeCharacterRemovingNodeTest.java,
	src/org/htmlparser/tests/nodeDecoratorTests/NonBreakingSpaceConvertingNodeTest.java,
	src/org/htmlparser/tests/parserHelperTests/AllTests.java,
	src/org/htmlparser/tests/parserHelperTests/CompositeTagScannerHelperTest.java,
	src/org/htmlparser/tests/parserHelperTests/RemarkNodeParserTest.java,
	src/org/htmlparser/tests/parserHelperTests/StringParserTest.java,
	src/org/htmlparser/tests/scannersTests/AllTests.java,
	src/org/htmlparser/tests/scannersTests/CompositeTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/JspScannerTest.java,
	src/org/htmlparser/tests/scannersTests/ScriptScannerTest.java,
	src/org/htmlparser/tests/scannersTests/TagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/XmlEndTagScanningTest.java,
	src/org/htmlparser/tests/scannersTests/package.html,
	src/org/htmlparser/tests/tagTests/AllTests.java,
	src/org/htmlparser/tests/tagTests/AppletTagTest.java,
	src/org/htmlparser/tests/tagTests/BaseHrefTagTest.java,
	src/org/htmlparser/tests/tagTests/BodyTagTest.java,
	src/org/htmlparser/tests/tagTests/CompositeTagTest.java,
	src/org/htmlparser/tests/tagTests/DoctypeTagTest.java,
	src/org/htmlparser/tests/tagTests/EndTagTest.java,
	src/org/htmlparser/tests/tagTests/FormTagTest.java,
	src/org/htmlparser/tests/tagTests/FrameSetTagTest.java,
	src/org/htmlparser/tests/tagTests/FrameTagTest.java,
	src/org/htmlparser/tests/tagTests/ImageTagTest.java,
	src/org/htmlparser/tests/tagTests/InputTagTest.java,
	src/org/htmlparser/tests/tagTests/JspTagTest.java,
	src/org/htmlparser/tests/tagTests/LinkTagTest.java,
	src/org/htmlparser/tests/tagTests/MetaTagTest.java,
	src/org/htmlparser/tests/tagTests/ObjectCollectionTest.java,
	src/org/htmlparser/tests/tagTests/OptionTagTest.java,
	src/org/htmlparser/tests/tagTests/ScriptTagTest.java,
	src/org/htmlparser/tests/tagTests/SelectTagTest.java,
	src/org/htmlparser/tests/tagTests/StyleTagTest.java,
	src/org/htmlparser/tests/tagTests/TagTest.java,
	src/org/htmlparser/tests/tagTests/TextareaTagTest.java,
	src/org/htmlparser/tests/tagTests/TitleTagTest.java,
	src/org/htmlparser/tests/tagTests/package.html,
	src/org/htmlparser/tests/utilTests/AllTests.java,
	src/org/htmlparser/tests/utilTests/BeanTest.java,
	src/org/htmlparser/tests/utilTests/CharacterTranslationTest.java,
	src/org/htmlparser/tests/utilTests/HTMLLinkProcessorTest.java,
	src/org/htmlparser/tests/utilTests/HTMLParserUtilsTest.java,
	src/org/htmlparser/tests/utilTests/NodeListTest.java,
	src/org/htmlparser/tests/utilTests/SortTest.java,
	src/org/htmlparser/tests/utilTests/package.html,
	src/org/htmlparser/tests/visitorsTests/AllTests.java,
	src/org/htmlparser/tests/visitorsTests/CompositeTagFindingVisitorTest.java,
	src/org/htmlparser/tests/visitorsTests/HtmlPageTest.java,
	src/org/htmlparser/tests/visitorsTests/LinkFindingVisitorTest.java,
	src/org/htmlparser/tests/visitorsTests/NodeVisitorTest.java,
	src/org/htmlparser/tests/visitorsTests/StringFindingVisitorTest.java,
	src/org/htmlparser/tests/visitorsTests/TagFindingVisitorTest.java,
	src/org/htmlparser/tests/visitorsTests/TextExtractingVisitorTest.java,
	src/org/htmlparser/tests/visitorsTests/UrlModifyingVisitorTest.java,
	src/org/htmlparser/util/ChainedException.java,
	src/org/htmlparser/util/CommandLine.java,
	src/org/htmlparser/util/DefaultParserFeedback.java,
	src/org/htmlparser/util/FeedbackManager.java,
	src/org/htmlparser/util/Generate.java,
	src/org/htmlparser/util/IteratorImpl.java,
	src/org/htmlparser/util/LinkProcessor.java,
	src/org/htmlparser/util/NodeIterator.java,
	src/org/htmlparser/util/NodeList.java,
	src/org/htmlparser/util/ParserException.java,
	src/org/htmlparser/util/ParserFeedback.java,
	src/org/htmlparser/util/ParserUtils.java,
	src/org/htmlparser/util/PeekingIterator.java,
	src/org/htmlparser/util/SimpleNodeIterator.java,
	src/org/htmlparser/util/SpecialHashtable.java,
	src/org/htmlparser/util/Translate.java,
	src/org/htmlparser/util/package.html,
	src/org/htmlparser/util/sort/Ordered.java,
	src/org/htmlparser/util/sort/Sort.java,
	src/org/htmlparser/util/sort/Sortable.java,
	src/org/htmlparser/util/sort/package.html,
	src/org/htmlparser/visitors/HtmlPage.java,
	src/org/htmlparser/visitors/LinkFindingVisitor.java,
	src/org/htmlparser/visitors/NodeVisitor.java,
	src/org/htmlparser/visitors/ObjectFindingVisitor.java,
	src/org/htmlparser/visitors/StringFindingVisitor.java,
	src/org/htmlparser/visitors/TagFindingVisitor.java,
	src/org/htmlparser/visitors/TextExtractingVisitor.java,
	src/org/htmlparser/visitors/UrlModifyingVisitor.java,
	src/org/htmlparser/visitors/package.html:

	Update the integration procedure to use a CVS tag,
	rather than changing the version in every file header.
	
2004-01-02 00:01  derrickoswald

	* src/org/htmlparser/tests/: ParserTest.java,
	lexerTests/AttributeTests.java, lexerTests/LexerTests.java,
	parserHelperTests/RemarkNodeParserTest.java,
	scannersTests/ScriptScannerTest.java, tagTests/DoctypeTagTest.java,
	tagTests/FormTagTest.java, tagTests/ImageTagTest.java,
	tagTests/JspTagTest.java, tagTests/LinkTagTest.java:

	Added testcases but was unable to reproduce the following bugs in the version 1.4 codebase:
	839264 toHtml() parse error in Javascripts with "form" keyword
	833592 DOCTYPE element is not parsed correctly
	826764 ParserException occurs only when using setInputHTML() instea
	825820 Words conjoined
	825645 <input> not getting parsed inside table
	813838 links not parsed correctly
	and
	#851882 zero length alt tag causes bug in ImageScanner
	#832530 empty attribute causes parser to fail
	#805598 attribute src in tag img sometimes not correctly parsed
	(these 3 are all the same bug, duplicates of the following):
	#753012 IMG SRC not parsed v1.3 & v1.4
	#755929 Empty string attr. value causes attr parsing to be stopped
	#778781 SRC-attribute suppression in IMG-tags
	Also reviewed these test cases, again, with none reproducible in 1.4:
	#788746 parser crashes on comments like <!-- foobar --!>
	#772700 Jsp Tags are not parsed correctly when in quoted attributes.
	
2004-01-01 12:16  derrickoswald

	* src/org/htmlparser/visitors/UrlModifyingVisitor.java:

	Fix support request #824989 UrlModifyingVisitor taking out HTML comments.
	Added remark node handling to preserve comments.
	
2004-01-01 11:54  derrickoswald

	* src/org/htmlparser/tests/tagTests/FormTagTest.java:

	Added test case for investigation of support request #772998 Cannot extract input tags.
	Not reproducible.
	
2003-12-31 09:40  derrickoswald

	* src/org/htmlparser/: lexer/Lexer.java,
	tests/lexerTests/LexerTests.java:

	Fix bug #789439 Japanese page causes OutOfMemory Exception
	Modified the lexer to skip over JIS escape sequences.
	
2003-12-30 23:03  derrickoswald

	* src/org/htmlparser/tests/lexerTests/SourceTests.java:

	Fix Source 'SameChars' test.
	
2003-12-30 21:50  derrickoswald

	* docs/banner.html, docs/bar.gif, docs/docsindex.html,
	docs/panel.html, docs/sample.html, src/doc-files/todo.html,
	bin/crawler.bat, bin/linkextractor, bin/linkextractor.bat,
	bin/ripper.bat, src/org/htmlparser/lexer/Stream.java,
	src/org/htmlparser/parserapplications/LinkExtractor.java,
	src/org/htmlparser/parserapplications/MailRipper.java,
	src/org/htmlparser/parserapplications/Robot.java,
	src/org/htmlparser/tests/lexerTests/StreamTests.java,
	src/org/htmlparser/util/NodeList.java:

	Add filter support to NodeList.
	Rework LinkExtractor and remove MailRipper and Robot example programs.
	Clean out docs directory.
	
2003-12-29 09:18  derrickoswald

	* src/org/htmlparser/: lexer/Page.java, tags/BaseHrefTag.java,
	parserapplications/SiteCapturer.java, tags/FrameTag.java,
	tests/tagTests/BaseHrefTagTest.java:

	Add simplistic web site capture example application.
	Demonstration of using custom tags in the NodeFactory.
	Fixed various issues with URL rewriting.
	
2003-12-20 18:47  derrickoswald

	* src/: doc-files/todo.html,
	org/htmlparser/scanners/CompositeTagScanner.java,
	org/htmlparser/scanners/JspScanner.java,
	org/htmlparser/scanners/Scanner.java,
	org/htmlparser/scanners/ScriptScanner.java,
	org/htmlparser/scanners/TagScanner.java,
	org/htmlparser/scanners/package.html,
	org/htmlparser/tags/CompositeTag.java,
	org/htmlparser/tests/scannersTests/CompositeTagScannerTest.java,
	org/htmlparser/util/IteratorImpl.java,
	org/htmlparser/util/NodeList.java,
	org/htmlparser/util/PeekingIteratorImpl.java:

	Reduce recursion on the JVM stack in CompositeTagScanner.
	Pass a stack of open tags to the scanner.
	Add smarter tag closing by walking up the stack on encountering an unopened end tag.
	Avoids a problem with bad HTML such as that found at
	http://scores.nba.com/games/20031029/scoreboard.html by Shaun Roach.
	Added testInvalidNesting to CompositeTagScanner Test based on the above.
	
2003-12-15 21:29  derrickoswald

	* build.xml, src/org/htmlparser/lexer/Page.java,
	resources/HtmlTaglet.java, resources/stylesheet.css,
	src/doc-files/building.html, src/doc-files/overview.html,
	src/doc-files/todo.html,
	src/org/htmlparser/lexerapplications/thumbelina/Picture.java,
	src/org/htmlparser/lexerapplications/thumbelina/ThumbelinaFrame.java,
	src/org/htmlparser/tags/CompositeTag.java:

	Javadoc changes and additions. Stylesheet, overview, build instructions and todo list.
	Added HTMLTaglet, an inline Javadoc taglet for embedding HTML into javadocs.
	
2003-12-08 08:13  derrickoswald

	* src/org/htmlparser/: AbstractNode.java, Node.java, Parser.java,
	PrototypicalNodeFactory.java, StringNodeFactory.java,
	lexer/nodes/PageAttribute.java, scanners/CompositeTagScanner.java,
	scanners/TagScanner.java, tags/DoctypeTag.java, tags/FormTag.java,
	tags/FrameSetTag.java, tags/ImageTag.java,
	tests/scannersTests/CompositeTagScannerTest.java:

	Eliminate deprecation warnings.
	Clean up javadoc warnings.

Integration Build 1.4 - 20031207
--------------------------------

2003-12-07 18:41  derrickoswald

	* src/org/htmlparser/: Parser.java, PrototypicalNodeFactory.java,
	RemarkNode.java, StringNode.java, StringNodeFactory.java,
	beans/LinkBean.java, beans/StringBean.java, lexer/Lexer.java,
	lexer/Page.java, lexer/nodes/Attribute.java,
	lexer/nodes/RemarkNode.java, lexer/nodes/StringNode.java,
	lexer/nodes/TagNode.java, parserapplications/LinkExtractor.java,
	parserapplications/MailRipper.java, parserapplications/Robot.java,
	scanners/AppletScanner.java, scanners/BaseHrefScanner.java,
	scanners/BodyScanner.java, scanners/BulletListScanner.java,
	scanners/BulletScanner.java, scanners/DivScanner.java,
	scanners/DoctypeScanner.java, scanners/FormScanner.java,
	scanners/FrameScanner.java, scanners/FrameSetScanner.java,
	scanners/HeadScanner.java, scanners/HtmlScanner.java,
	scanners/ImageScanner.java, scanners/InputTagScanner.java,
	scanners/LabelScanner.java, scanners/LinkScanner.java,
	scanners/MetaTagScanner.java, scanners/OptionTagScanner.java,
	scanners/ScriptScanner.java, scanners/SelectTagScanner.java,
	scanners/SpanScanner.java, scanners/StyleScanner.java,
	scanners/TableColumnScanner.java, scanners/TableRowScanner.java,
	scanners/TableScanner.java, scanners/TextareaTagScanner.java,
	scanners/TitleScanner.java, tags/CompositeTag.java,
	tags/FormTag.java, tags/ImageTag.java, tags/InputTag.java,
	tags/LabelTag.java, tags/LinkTag.java, tags/MetaTag.java,
	tags/SelectTag.java, tags/TableColumn.java, tags/TableRow.java,
	tags/TextareaTag.java, tests/FunctionalTests.java,
	tests/InstanceofPerformanceTest.java,
	tests/LineNumberAssignedByNodeReaderTest.java,
	tests/ParserTest.java, tests/ParserTestCase.java,
	tests/PerformanceTest.java, tests/filterTests/FilterTest.java,
	tests/lexerTests/AttributeTests.java,
	tests/lexerTests/TagTests.java,
	tests/nodeDecoratorTests/DecodingNodeTest.java,
	tests/nodeDecoratorTests/EscapeCharacterRemovingNodeTest.java,
	tests/nodeDecoratorTests/NonBreakingSpaceConvertingNodeTest.java,
	tests/parserHelperTests/RemarkNodeParserTest.java,
	tests/parserHelperTests/StringParserTest.java,
	tests/scannersTests/AllTests.java,
	tests/scannersTests/AppletScannerTest.java,
	tests/scannersTests/BaseHREFScannerTest.java,
	tests/scannersTests/BodyScannerTest.java,
	tests/scannersTests/BulletListScannerTest.java,
	tests/scannersTests/BulletScannerTest.java,
	tests/scannersTests/CompositeTagScannerTest.java,
	tests/scannersTests/DivScannerTest.java,
	tests/scannersTests/FormScannerTest.java,
	tests/scannersTests/FrameScannerTest.java,
	tests/scannersTests/FrameSetScannerTest.java,
	tests/scannersTests/HeadScannerTest.java,
	tests/scannersTests/HtmlTest.java,
	tests/scannersTests/ImageScannerTest.java,
	tests/scannersTests/InputTagScannerTest.java,
	tests/scannersTests/JspScannerTest.java,
	tests/scannersTests/LabelScannerTest.java,
	tests/scannersTests/LinkScannerTest.java,
	tests/scannersTests/MetaTagScannerTest.java,
	tests/scannersTests/OptionTagScannerTest.java,
	tests/scannersTests/ScriptScannerTest.java,
	tests/scannersTests/SelectTagScannerTest.java,
	tests/scannersTests/SpanScannerTest.java,
	tests/scannersTests/StyleScannerTest.java,
	tests/scannersTests/TableScannerTest.java,
	tests/scannersTests/TextareaTagScannerTest.java,
	tests/scannersTests/TitleScannerTest.java,
	tests/scannersTests/XmlEndTagScanningTest.java,
	tests/tagTests/AllTests.java, tests/tagTests/AppletTagTest.java,
	tests/tagTests/BaseHrefTagTest.java,
	tests/tagTests/BodyTagTest.java,
	tests/tagTests/BulletListTagTest.java,
	tests/tagTests/BulletTagTest.java,
	tests/tagTests/CompositeTagTest.java,
	tests/tagTests/DivTagTest.java, tests/tagTests/DoctypeTagTest.java,
	tests/tagTests/EndTagTest.java, tests/tagTests/FormTagTest.java,
	tests/tagTests/FrameSetTagTest.java,
	tests/tagTests/FrameTagTest.java, tests/tagTests/HeadTagTest.java,
	tests/tagTests/HtmlTagTest.java, tests/tagTests/ImageTagTest.java,
	tests/tagTests/InputTagTest.java, tests/tagTests/JspTagTest.java,
	tests/tagTests/LabelTagTest.java, tests/tagTests/LinkTagTest.java,
	tests/tagTests/MetaTagTest.java,
	tests/tagTests/ObjectCollectionTest.java,
	tests/tagTests/OptionTagTest.java,
	tests/tagTests/ScriptTagTest.java,
	tests/tagTests/SelectTagTest.java, tests/tagTests/SpanTagTest.java,
	tests/tagTests/StyleTagTest.java, tests/tagTests/TableTagTest.java,
	tests/tagTests/TagTest.java, tests/tagTests/TextareaTagTest.java,
	tests/tagTests/TitleTagTest.java, tests/utilTests/BeanTest.java,
	tests/utilTests/HTMLLinkProcessorTest.java,
	tests/visitorsTests/HtmlPageTest.java,
	tests/visitorsTests/LinkFindingVisitorTest.java,
	tests/visitorsTests/TextExtractingVisitorTest.java,
	util/Generate.java, util/ParserUtils.java, util/Translate.java,
	visitors/HtmlPage.java, visitors/NodeVisitor.java,
	visitors/UrlModifyingVisitor.java:

	Remove most of the scanners.
	The only scanners left are ones that really do something different (script and jsp).
	Instead of registering a scanner to enable returning a specific tag you now add a
	tag to the a PrototypicalNodeFactory. All known tags are 'registered' by default
	in a new Parser which is similar to having called the old 'registerDOMScanners()',
	so tags are fully nested. This is different behaviour, and specifically,
	you will need to recurse into returned nodes to get at what you want.
	I've tried to adjust the applications accordingly, but worked examples are still scarce.
	If you want to return only some of the derived tags while keeping most as generic tags,
	there are various constructors and manipulators on the factory. See the javadocs
	and examples in the tests package.
	Nearly all the old scanner tests are folded into the tag tests.
	
	toString() has been revamped.
	This means that the default Parser mainline now returns an indented listing of tags,
	making it easy to see the structure of a page. The downside is the text of the page
	had to have newlines, tabs etc. turned into escape sequences. But if you were really
	interested in content you would be using toHtml() or toPlainTextString().
	
Integration Build 1.4 - 20031109
--------------------------------

2003-11-09 07:52  derrickoswald

	* src/org/htmlparser/util/Translate.java:

	Integrate optimization suggested by Christian Ullenboom C.Ullenboom@java-tutor.com.
	
2003-11-08 16:30  derrickoswald

	* build.xml, src/org/htmlparser/AbstractNode.java,
	src/org/htmlparser/Node.java, src/org/htmlparser/NodeFilter.java,
	src/org/htmlparser/Parser.java, src/org/htmlparser/RemarkNode.java,
	src/org/htmlparser/StringNode.java,
	src/org/htmlparser/lexer/Page.java,
	src/org/htmlparser/lexer/nodes/RemarkNode.java,
	src/org/htmlparser/lexer/nodes/StringNode.java,
	src/org/htmlparser/lexer/nodes/TagNode.java,
	src/org/htmlparser/nodeDecorators/AbstractNodeDecorator.java,
	src/org/htmlparser/scanners/LinkScanner.java,
	src/org/htmlparser/tags/BaseHrefTag.java,
	src/org/htmlparser/tags/CompositeTag.java,
	src/org/htmlparser/tags/LinkTag.java,
	src/org/htmlparser/tags/MetaTag.java,
	src/org/htmlparser/tags/ScriptTag.java,
	src/org/htmlparser/tags/Tag.java,
	src/org/htmlparser/tests/AllTests.java,
	src/org/htmlparser/tests/ParserTest.java,
	src/org/htmlparser/tests/ParserTestCase.java,
	src/org/htmlparser/tests/lexerTests/TagTests.java,
	src/org/htmlparser/tests/scannersTests/BodyScannerTest.java,
	src/org/htmlparser/tests/scannersTests/FormScannerTest.java,
	src/org/htmlparser/tests/scannersTests/HtmlTest.java,
	src/org/htmlparser/tests/scannersTests/InputTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/LabelScannerTest.java,
	src/org/htmlparser/tests/scannersTests/LinkScannerTest.java,
	src/org/htmlparser/tests/scannersTests/MetaTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/OptionTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/SelectTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/TextareaTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/TitleScannerTest.java,
	src/org/htmlparser/tests/tagTests/CompositeTagTest.java,
	src/org/htmlparser/tests/tagTests/ImageTagTest.java,
	src/org/htmlparser/tests/tagTests/ObjectCollectionTest.java,
	src/org/htmlparser/tests/utilTests/NodeListTest.java,
	src/org/htmlparser/util/IteratorImpl.java,
	src/org/htmlparser/util/ParserUtils.java,
	src/org/htmlparser/util/PeekingIterator.java,
	src/org/htmlparser/util/PeekingIteratorImpl.java,
	src/org/htmlparser/filters/AndFilter.java,
	src/org/htmlparser/filters/HasAttributeFilter.java,
	src/org/htmlparser/filters/HasChildFilter.java,
	src/org/htmlparser/filters/NodeClassFilter.java,
	src/org/htmlparser/filters/NotFilter.java,
	src/org/htmlparser/filters/OrFilter.java,
	src/org/htmlparser/filters/StringFilter.java,
	src/org/htmlparser/filters/TagNameFilter.java,
	src/org/htmlparser/filters/package.html,
	src/org/htmlparser/tests/filterTests/FilterTest.java:

	Implement generic node filtering.
	Added the NodeFilter interface and the filter package.
	Sideline tag specific scanners; tags now use only one scanner of each type,
	TagScanner or CompositeTagScanner (except for ScriptScanner).
	Obviated PeekingIterator by moving the META tag semantics to doSemanticAction,
	much simpler, old IteratorImpl is now PeekingIteratorImpl but deprecated.
	
2003-11-05 22:00  derrickoswald

	* src/org/htmlparser/: scanners/CompositeTagScanner.java,
	scanners/ScriptScanner.java, scanners/TagScanner.java,
	tags/AppletTag.java, tags/BaseHrefTag.java, tags/BodyTag.java,
	tags/Bullet.java, tags/BulletList.java, tags/CompositeTag.java,
	tags/Div.java, tags/DoctypeTag.java, tags/FormTag.java,
	tags/FrameSetTag.java, tags/FrameTag.java, tags/HeadTag.java,
	tags/Html.java, tags/ImageTag.java, tags/InputTag.java,
	tags/JspTag.java, tags/LabelTag.java, tags/LinkTag.java,
	tags/MetaTag.java, tags/OptionTag.java, tags/ScriptTag.java,
	tags/SelectTag.java, tags/Span.java, tags/StyleTag.java,
	tags/TableColumn.java, tags/TableRow.java, tags/TableTag.java,
	tags/Tag.java, tags/TextareaTag.java, tags/TitleTag.java,
	tests/scannersTests/CompositeTagScannerTest.java,
	util/IteratorImpl.java:

	The tags now own their ids, enders and end tag enders.
	The isTagToBeEndedFor logic is now uses information from the tags, not the scanners.
	The kludge to get the scanner from the NodeFactory is now gone too,
	this also comes from the tag.
	
2003-11-03 20:25  derrickoswald

	* src/org/htmlparser/: beans/BeanyBaby.java, beans/StringBean.java,
	lexer/Lexer.java, lexer/Page.java, lexer/PageIndex.java,
	lexerapplications/thumbelina/Thumbelina.java,
	tags/CompositeTag.java, visitors/ObjectFindingVisitor.java,
	visitors/UrlModifyingVisitor.java:

	Made visiting order the same order as on the page.
	The 'shouldRecurseSelf' boolean of NodeVisitor could probably
	be removed since it doesn't make much sense any more.
	Fixed StringBean, which was still looking for end tags with names starting with
	a slash, i.e. "/SCRIPT", silly beany.
	Added some debugging support to the lexer, you can easily base a breakpoint on
	line number.
	
2003-11-01 16:55  derrickoswald

	* src/org/htmlparser/: AbstractNode.java, Node.java, Parser.java,
	lexer/nodes/TagNode.java,
	nodeDecorators/AbstractNodeDecorator.java,
	scanners/BaseHrefScanner.java, scanners/CompositeTagScanner.java,
	scanners/DoctypeScanner.java, scanners/FrameScanner.java,
	scanners/ImageScanner.java, scanners/InputTagScanner.java,
	scanners/JspScanner.java, scanners/MetaTagScanner.java,
	scanners/ScriptScanner.java, scanners/TagScanner.java,
	tags/BaseHrefTag.java, tags/CompositeTag.java, tags/FormTag.java,
	tags/ImageTag.java, tags/LinkTag.java, tags/Tag.java,
	tests/FunctionalTests.java,
	tests/LineNumberAssignedByNodeReaderTest.java,
	tests/ParserTestCase.java,
	tests/scannersTests/CompositeTagScannerTest.java,
	tests/scannersTests/FormScannerTest.java,
	tests/tagTests/ScriptTagTest.java,
	visitors/UrlModifyingVisitor.java:

	Create nodes by cloning from a list of prototypes in the Parser (NodeFactory).
	So now, the startTag() is the CompositeTag, and the CompositeTagScanner just adds children.
	This is an intermediate code drop on the way to integrating the scanners with the tags;
	the scanners no longer create the tags (but they still create the prototypical ones).
	
2003-10-31 23:03  derrickoswald

	* src/org/htmlparser/tests/: ParserTestCase.java,
	lexerTests/TagTests.java,
	scannersTests/CompositeTagScannerTest.java,
	scannersTests/LabelScannerTest.java,
	scannersTests/ScriptScannerTest.java,
	tagTests/BaseHrefTagTest.java, tagTests/BodyTagTest.java,
	tagTests/OptionTagTest.java, tagTests/TitleTagTest.java:

	Fixed all tests failing if case sensitivity was turned on.
	Mostly this involved comparing the output from toHtml() with the string passed to the parser.
	Now ParserTestCase does case sensitive comparisons.
	
2003-10-31 21:22  derrickoswald

	* src/org/htmlparser/tests/:
	nodeDecoratorTests/DecodingNodeTest.java, tagTests/TagTest.java,
	utilTests/CharacterTranslationTest.java:

	Convert native characters in tests to unicode.
	Mostly this was the division sign (\u00f7) used in tests of character entity reference
	translation, but other accented characters in TagTest were also problematic.
	This only covers the files observed to cause failed testcases when compiled and run
	under the en_US.UTF-8 native encoding, i.e. non ASCII.
	Files were converted with the native2ascii tool supplied wth the JDK.
	
2003-10-31 20:36  derrickoswald

	* src/org/htmlparser/: RemarkNode.java, StringNode.java,
	lexer/nodes/RemarkNode.java, lexer/nodes/StringNode.java,
	lexer/nodes/TagNode.java, scanners/CompositeTagScanner.java,
	scanners/ScriptScanner.java, scanners/TagScanner.java,
	tags/DoctypeTag.java, tags/FormTag.java, tags/FrameSetTag.java,
	tags/FrameTag.java, tags/ImageTag.java, tags/JspTag.java,
	tags/LinkTag.java,
	tests/scannersTests/CompositeTagScannerTest.java,
	tests/tagTests/EndTagTest.java, tests/tagTests/ScriptTagTest.java:

	Remove deprecated method calls:
	elementBegin()->getStartPosition()
	elementEnd()->getEndPosition()
	
2003-10-31 07:56  derrickoswald

	* src/org/htmlparser/: scanners/AppletScanner.java,
	scanners/BodyScanner.java, scanners/BulletListScanner.java,
	scanners/BulletScanner.java, scanners/CompositeTagScanner.java,
	scanners/DivScanner.java, scanners/FormScanner.java,
	scanners/FrameSetScanner.java, scanners/HeadScanner.java,
	scanners/HtmlScanner.java, scanners/LabelScanner.java,
	scanners/LinkScanner.java, scanners/OptionTagScanner.java,
	scanners/ScriptScanner.java, scanners/SelectTagScanner.java,
	scanners/SpanScanner.java, scanners/StyleScanner.java,
	scanners/TableColumnScanner.java, scanners/TableRowScanner.java,
	scanners/TableScanner.java, scanners/TextareaTagScanner.java,
	scanners/TitleScanner.java,
	tests/scannersTests/CompositeTagScannerTest.java:

	Remove unused nameOfTagToMatch member in CompositeTag.
	This is the job of getID() on superclass TagScanner.
	
2003-10-28 22:31  derrickoswald

	* build.xml, src/org/htmlparser/Parser.java,
	src/org/htmlparser/lexer/Page.java,
	src/org/htmlparser/scanners/BaseHrefScanner.java,
	src/org/htmlparser/scanners/FormScanner.java,
	src/org/htmlparser/scanners/ImageScanner.java,
	src/org/htmlparser/scanners/LinkScanner.java,
	src/org/htmlparser/tags/BaseHrefTag.java,
	src/org/htmlparser/tags/FormTag.java,
	src/org/htmlparser/tags/ImageTag.java,
	src/org/htmlparser/tags/LinkTag.java,
	src/org/htmlparser/tests/FunctionalTests.java,
	src/org/htmlparser/tests/scannersTests/BaseHREFScannerTest.java,
	src/org/htmlparser/tests/scannersTests/ImageScannerTest.java,
	src/org/htmlparser/tests/scannersTests/LinkScannerTest.java,
	src/org/htmlparser/tests/tagTests/ImageTagTest.java,
	src/org/htmlparser/visitors/UrlModifyingVisitor.java:

	Move LinkProcess out of scanners and into Page, untangling A, IMG and BASE scanners.
	Move form action determination to tag.
	The scanners have no special actions on behalf of tags anymore.
	
2003-10-28 07:54  derrickoswald

	* src/org/htmlparser/: Parser.java,
	scanners/CompositeTagScanner.java, scanners/FormScanner.java,
	scanners/ScriptScanner.java, scanners/TagScanner.java,
	tests/scannersTests/TagScannerTest.java, util/IteratorImpl.java:

	Remove TagScanner cruft.
	
2003-10-28 05:31  derrickoswald

	* src/org/htmlparser/: scanners/BodyScanner.java,
	scanners/BulletScanner.java, scanners/CompositeTagScanner.java,
	scanners/FormScanner.java, scanners/HeadScanner.java,
	scanners/LabelScanner.java, scanners/LinkScanner.java,
	scanners/OptionTagScanner.java, scanners/SelectTagScanner.java,
	scanners/TableColumnScanner.java, scanners/TableRowScanner.java,
	scanners/TableScanner.java, scanners/TextareaTagScanner.java,
	scanners/TitleScanner.java,
	tests/scannersTests/CompositeTagScannerTest.java:

	Replaced isAllowSelfChildren() using tagEnders set.
	
2003-10-27 22:04  derrickoswald

	* src/org/htmlparser/: Parser.java, lexer/Lexer.java,
	lexer/nodes/NodeFactory.java, scanners/BulletListScanner.java,
	scanners/BulletScanner.java, scanners/CompositeTagScanner.java,
	scanners/FormScanner.java, scanners/OptionTagScanner.java,
	scanners/ScriptScanner.java, scanners/SelectTagScanner.java,
	scanners/TextareaTagScanner.java,
	tests/scannersTests/CompositeTagScannerTest.java,
	tests/scannersTests/OptionTagScannerTest.java,
	tests/scannersTests/SelectTagScannerTest.java,
	tests/scannersTests/TextareaTagScannerTest.java,
	tests/tagTests/OptionTagTest.java,
	tests/tagTests/SelectTagTest.java,
	tests/tagTests/TextareaTagTest.java, util/IteratorImpl.java:

	Moved the recursion from the NodeFactory to the CompositeTagScanner where it belongs.
	Also needed to kick off the recursion in IteratorImpl.
	The scnner is obtained in a kludgy way -- just 'til tags know their own scanners.
	Also fixed the other NodeFactory signatures to have a Page rather than a Lexer.
	
2003-10-26 21:18  derrickoswald

	* src/org/htmlparser/: Parser.java, lexer/Page.java,
	lexer/nodes/TagNode.java, scanners/FormScanner.java,
	scanners/LinkScanner.java, scanners/TagScanner.java,
	scanners/TitleScanner.java,
	tests/scannersTests/AppletScannerTest.java,
	tests/scannersTests/BaseHREFScannerTest.java,
	tests/scannersTests/FormScannerTest.java,
	tests/scannersTests/FrameSetScannerTest.java,
	tests/scannersTests/ImageScannerTest.java,
	tests/scannersTests/LinkScannerTest.java,
	tests/scannersTests/ScriptScannerTest.java,
	tests/scannersTests/StyleScannerTest.java,
	tests/scannersTests/TagScannerTest.java:

	Some speed improvements; passing tags to evaluate, creating strings without string buffers, etc.

Integration Build 1.4 - 20031026
--------------------------------
2003-10-26 12:58  derrickoswald

	* src/org/htmlparser/lexer/: PageIndex.java, package.html,
	nodes/PageAttribute.java, nodes/package.html:

	Doco update. Move the lexer from future tense to current.
	
2003-10-26 11:44  derrickoswald

	* src/org/htmlparser/lexerapplications/thumbelina/Thumbelina.java:

	Get thumbelina working again. The tag.getName() method doesn't include the / of end tags.
	
2003-10-26 11:04  derrickoswald

	* src/org/htmlparser/: scanners/CompositeTagScanner.java,
	tests/parserHelperTests/CompositeTagScannerHelperTest.java:

	Oops, remove references to CompositeTagScannerHelper.
	
2003-10-26 10:50  derrickoswald

	* src/org/htmlparser/scanners/CompositeTagScanner.java:

	Removed the need for CompositeTagScannerHelper, finally getting rid of the parserHelper package.
	
2003-10-25 23:53  derrickoswald

	* src/org/htmlparser/: lexer/Page.java, tags/AppletTag.java,
	tests/ParserTest.java, tests/ParserTestCase.java,
	tests/lexerTests/StreamTests.java,
	tests/scannersTests/BulletScannerTest.java,
	tests/tagTests/OptionTagTest.java,
	visitors/LinkFindingVisitor.java:

	Quiet down the test output.
	
2003-10-25 16:19  derrickoswald

	* src/org/htmlparser/: tags/CompositeTag.java,
	tests/parserHelperTests/CompositeTagScannerHelperTest.java,
	tests/parserHelperTests/StringParserTest.java,
	tests/scannersTests/CompositeTagScannerTest.java,
	tests/scannersTests/LinkScannerTest.java,
	tests/tagTests/JspTagTest.java, tests/tagTests/OptionTagTest.java,
	tests/tagTests/SelectTagTest.java, tests/tagTests/TagTest.java:

	Clean up the last few failing tests.
	*** The bar is green again ***
	
2003-10-25 11:46  derrickoswald

	* src/org/htmlparser/: lexer/Lexer.java,
	lexer/nodes/RemarkNode.java, scanners/TitleScanner.java,
	tests/scannersTests/TitleScannerTest.java:

	Handle some broken end tags.
	Handle some pathological remark nodes.
	
2003-10-25 08:03  derrickoswald

	* build.xml, bin/parser:

	Fix htmllexer.jar, add parser linux/unix script.
	
2003-10-20 22:24  derrickoswald

	* src/org/htmlparser/tests/: AllTests.java,
	AssertXmlEqualsTest.java, FunctionalTests.java,
	LineNumberAssignedByNodeReaderTest.java, ParserTest.java,
	ParserTestCase.java, lexerTests/AllTests.java,
	lexerTests/AttributeTests.java, lexerTests/LexerTests.java,
	lexerTests/PageIndexTests.java, lexerTests/PageTests.java,
	lexerTests/SourceTests.java, lexerTests/StreamTests.java,
	lexerTests/TagTests.java, nodeDecoratorTests/AllTests.java,
	nodeDecoratorTests/DecodingNodeTest.java,
	nodeDecoratorTests/EscapeCharacterRemovingNodeTest.java,
	nodeDecoratorTests/NonBreakingSpaceConvertingNodeTest.java,
	parserHelperTests/AllTests.java,
	parserHelperTests/CompositeTagScannerHelperTest.java,
	parserHelperTests/RemarkNodeParserTest.java,
	parserHelperTests/StringParserTest.java,
	scannersTests/AllTests.java, scannersTests/AppletScannerTest.java,
	scannersTests/BaseHREFScannerTest.java,
	scannersTests/BodyScannerTest.java,
	scannersTests/BulletListScannerTest.java,
	scannersTests/BulletScannerTest.java,
	scannersTests/CompositeTagScannerTest.java,
	scannersTests/DivScannerTest.java,
	scannersTests/FormScannerTest.java,
	scannersTests/FrameScannerTest.java,
	scannersTests/FrameSetScannerTest.java,
	scannersTests/HeadScannerTest.java, scannersTests/HtmlTest.java,
	scannersTests/ImageScannerTest.java,
	scannersTests/InputTagScannerTest.java,
	scannersTests/JspScannerTest.java,
	scannersTests/LabelScannerTest.java,
	scannersTests/LinkScannerTest.java,
	scannersTests/MetaTagScannerTest.java,
	scannersTests/OptionTagScannerTest.java,
	scannersTests/ScriptScannerTest.java,
	scannersTests/SelectTagScannerTest.java,
	scannersTests/SpanScannerTest.java,
	scannersTests/StyleScannerTest.java,
	scannersTests/TableScannerTest.java,
	scannersTests/TagScannerTest.java,
	scannersTests/TextareaTagScannerTest.java,
	scannersTests/TitleScannerTest.java,
	scannersTests/XmlEndTagScanningTest.java, tagTests/AllTests.java,
	tagTests/AppletTagTest.java, tagTests/BaseHrefTagTest.java,
	tagTests/BodyTagTest.java, tagTests/CompositeTagTest.java,
	tagTests/DoctypeTagTest.java, tagTests/EndTagTest.java,
	tagTests/FormTagTest.java, tagTests/FrameSetTagTest.java,
	tagTests/FrameTagTest.java, tagTests/ImageTagTest.java,
	tagTests/InputTagTest.java, tagTests/JspTagTest.java,
	tagTests/LinkTagTest.java, tagTests/MetaTagTest.java,
	tagTests/ObjectCollectionTest.java, tagTests/OptionTagTest.java,
	tagTests/ScriptTagTest.java, tagTests/SelectTagTest.java,
	tagTests/StyleTagTest.java, tagTests/TagTest.java,
	tagTests/TextareaTagTest.java, tagTests/TitleTagTest.java,
	utilTests/AllTests.java, utilTests/BeanTest.java,
	utilTests/CharacterTranslationTest.java,
	utilTests/HTMLLinkProcessorTest.java,
	utilTests/HTMLParserUtilsTest.java, utilTests/NodeListTest.java,
	utilTests/SortTest.java, visitorsTests/AllTests.java,
	visitorsTests/CompositeTagFindingVisitorTest.java,
	visitorsTests/HtmlPageTest.java,
	visitorsTests/LinkFindingVisitorTest.java,
	visitorsTests/NodeVisitorTest.java,
	visitorsTests/StringFindingVisitorTest.java,
	visitorsTests/TagFindingVisitorTest.java,
	visitorsTests/TextExtractingVisitorTest.java,
	visitorsTests/UrlModifyingVisitorTest.java:

	Consolidated the various testing main() methods into ParserTestCase.
	All unit test classes in the org.htmlparser.tests heirarchy should now be executable.
	
2003-10-19 21:28  derrickoswald

	* src/org/htmlparser/: AbstractNode.java, Parser.java,
	lexer/Lexer.java, lexer/nodes/AbstractNode.java,
	lexer/nodes/NodeFactory.java, lexer/nodes/RemarkNode.java,
	lexer/nodes/StringNode.java, lexer/nodes/TagNode.java,
	scanners/AppletScanner.java, scanners/BaseHrefScanner.java,
	scanners/BodyScanner.java, scanners/BulletListScanner.java,
	scanners/BulletScanner.java, scanners/CompositeTagScanner.java,
	scanners/DivScanner.java, scanners/DoctypeScanner.java,
	scanners/FormScanner.java, scanners/FrameScanner.java,
	scanners/FrameSetScanner.java, scanners/HeadScanner.java,
	scanners/HtmlScanner.java, scanners/ImageScanner.java,
	scanners/InputTagScanner.java, scanners/JspScanner.java,
	scanners/LabelScanner.java, scanners/LinkScanner.java,
	scanners/MetaTagScanner.java, scanners/OptionTagScanner.java,
	scanners/ScriptScanner.java, scanners/SelectTagScanner.java,
	scanners/SpanScanner.java, scanners/StyleScanner.java,
	scanners/TableColumnScanner.java, scanners/TableRowScanner.java,
	scanners/TableScanner.java, scanners/TagScanner.java,
	scanners/TextareaTagScanner.java, scanners/TitleScanner.java,
	tags/AppletTag.java, tags/BaseHrefTag.java, tags/BodyTag.java,
	tags/Bullet.java, tags/BulletList.java, tags/CompositeTag.java,
	tags/Div.java, tags/DoctypeTag.java, tags/FormTag.java,
	tags/FrameSetTag.java, tags/FrameTag.java, tags/HeadTag.java,
	tags/Html.java, tags/ImageTag.java, tags/InputTag.java,
	tags/JspTag.java, tags/LabelTag.java, tags/LinkTag.java,
	tags/MetaTag.java, tags/OptionTag.java, tags/ScriptTag.java,
	tags/SelectTag.java, tags/Span.java, tags/StyleTag.java,
	tags/TableColumn.java, tags/TableRow.java, tags/TableTag.java,
	tags/Tag.java, tags/TextareaTag.java, tags/TitleTag.java,
	tests/FunctionalTests.java,
	tests/LineNumberAssignedByNodeReaderTest.java,
	tests/ParserTestCase.java, tests/lexerTests/AttributeTests.java,
	tests/lexerTests/KitTest.java,
	tests/parserHelperTests/CompositeTagScannerHelperTest.java,
	tests/scannersTests/CompositeTagScannerTest.java,
	tests/scannersTests/ImageScannerTest.java,
	tests/scannersTests/LinkScannerTest.java,
	tests/scannersTests/TableScannerTest.java,
	tests/scannersTests/TagScannerTest.java,
	tests/tagTests/BaseHrefTagTest.java,
	tests/tagTests/LinkTagTest.java, tests/tagTests/ScriptTagTest.java,
	tests/utilTests/NodeListTest.java,
	tests/visitorsTests/UrlModifyingVisitorTest.java,
	util/LinkProcessor.java, util/NodeList.java:

	Removed lexer level AbstractNode.
	Removed data package from parser level tags.
	Separated tag creation from recursion in NodeFactory interface.
	
2003-10-18 16:50  derrickoswald

	* src/org/htmlparser/: lexer/Lexer.java,
	lexer/nodes/Attribute.java, lexer/nodes/PageAttribute.java,
	lexer/nodes/TagNode.java, tags/AppletTag.java,
	tests/lexerTests/AttributeTests.java,
	tests/scannersTests/FormScannerTest.java,
	tests/scannersTests/LinkScannerTest.java,
	tests/tagTests/AppletTagTest.java, tests/tagTests/FormTagTest.java,
	tests/tagTests/JspTagTest.java, tests/tagTests/ScriptTagTest.java,
	tests/tagTests/TagTest.java, tests/utilTests/AllTests.java,
	tests/utilTests/HTMLTagParserTest.java, util/NodeList.java:

	Partition Attribute into a base class and PageAttribute class for the Lexer.
	Fixed the AppletTag.setAppletParams in a cheesy manner.
	Clear out the released NodeList entry on remove().
	Dropped the HTMLTagParserTest tests, because they really weren't relevant any more.
	
2003-10-13 17:48  derrickoswald

	* src/org/htmlparser/: Parser.java, lexer/Cursor.java,
	lexer/Lexer.java, lexer/Page.java, lexer/nodes/Attribute.java,
	lexer/nodes/TagNode.java, scanners/ScriptScanner.java,
	tests/AllTests.java, tests/lexerTests/AllTests.java,
	tests/lexerTests/AttributeTests.java,
	tests/lexerTests/TagTests.java,
	tests/scannersTests/JspScannerTest.java,
	tests/scannersTests/MetaTagScannerTest.java,
	tests/scannersTests/ScriptScannerTest.java,
	tests/tagTests/FormTagTest.java, tests/tagTests/InputTagTest.java,
	tests/tagTests/JspTagTest.java, tests/tagTests/MetaTagTest.java,
	tests/tagTests/TagTest.java, tests/tagTests/TextareaTagTest.java:

	Eliminated ParserHelper static class.
	Add fixAttributes() to handle bad tags.
	Provide for more than just an equals sign between the attribute name and the value.
	Unquote the values in getAttributes() hashtable.
	Fixed a bug regarding factory creation in script scanner.
	Returned temporaryFailures classes to servicability.
	Skip JSP testing, fix tests broken because of unquoted attribute values.
	Some JavaDoc cleanup.
	
2003-10-05 21:43  derrickoswald

	* src/org/htmlparser/: tags/JspTag.java,
	tests/parserHelperTests/RemarkNodeParserTest.java,
	tests/parserHelperTests/StringParserTest.java,
	tests/scannersTests/BodyScannerTest.java,
	tests/scannersTests/BulletListScannerTest.java,
	tests/scannersTests/CompositeTagScannerTest.java,
	tests/scannersTests/FormScannerTest.java,
	tests/scannersTests/LabelScannerTest.java,
	tests/scannersTests/LinkScannerTest.java,
	tests/scannersTests/MetaTagScannerTest.java,
	tests/scannersTests/StyleScannerTest.java,
	tests/scannersTests/TableScannerTest.java,
	tests/scannersTests/TitleScannerTest.java,
	tests/tagTests/AppletTagTest.java,
	tests/tagTests/BaseHrefTagTest.java,
	tests/tagTests/EndTagTest.java, tests/tagTests/FormTagTest.java,
	tests/tagTests/FrameSetTagTest.java,
	tests/tagTests/FrameTagTest.java, tests/tagTests/ImageTagTest.java,
	tests/tagTests/InputTagTest.java, tests/tagTests/LinkTagTest.java,
	tests/tagTests/MetaTagTest.java, tests/tagTests/OptionTagTest.java,
	tests/tagTests/ScriptTagTest.java,
	tests/tagTests/SelectTagTest.java,
	tests/tagTests/StyleTagTest.java, tests/tagTests/TagTest.java,
	tests/tagTests/TextareaTagTest.java:

	Updated tests to correspond to new behaviour.
	Mostly due to changes in order and case of tag contents.
	Of the forty odd remaining failing tests, the majority comprise altered functionality that needs to be resolved.
	
2003-10-05 09:49  derrickoswald

	* src/org/htmlparser/: AbstractNode.java, Node.java,
	lexer/Cursor.java, lexer/Lexer.java, lexer/nodes/Attribute.java,
	lexer/nodes/TagNode.java,
	nodeDecorators/AbstractNodeDecorator.java,
	scanners/CompositeTagScanner.java, scanners/ImageScanner.java,
	scanners/LinkScanner.java, scanners/ScriptScanner.java,
	scanners/TagScanner.java, tests/ParserTest.java,
	tests/ParserTestCase.java,
	tests/scannersTests/AppletScannerTest.java,
	tests/scannersTests/FormScannerTest.java,
	tests/scannersTests/FrameScannerTest.java,
	tests/scannersTests/ImageScannerTest.java,
	tests/scannersTests/JspScannerTest.java,
	tests/scannersTests/LabelScannerTest.java,
	tests/scannersTests/LinkScannerTest.java,
	tests/scannersTests/MetaTagScannerTest.java,
	tests/scannersTests/OptionTagScannerTest.java,
	tests/scannersTests/ScriptScannerTest.java,
	tests/scannersTests/TagScannerTest.java,
	tests/scannersTests/TitleScannerTest.java,
	tests/tagTests/AppletTagTest.java,
	tests/tagTests/DoctypeTagTest.java, tests/tagTests/JspTagTest.java,
	tests/tagTests/LinkTagTest.java, tests/tagTests/MetaTagTest.java,
	tests/tagTests/ScriptTagTest.java, util/IteratorImpl.java,
	util/NodeList.java:

	Add bean like accessors for positions on Node, AbstractNode and AbstractNodeDecorator.
	Handle null page in Cursor.
	Add smartquotes mode in Lexer and CompositeTagScannerHelper.
	Add simple name constructor in Attribute.
	Remove emptyxmltag member, replace with computing accessors in TagNode.
	Removed ScriptScannerHelper and moved scanning logic to ScriptScanner.
	Reworked extractImageLocn in ImageScanner
	Implement extractXMLData in TagScanner.
	Made virtual tags zero length in TagData.
	Added push() to IteratorImpl.
	Added single node constructor to NodeList.
	Numerous and various test adjustments. Still 133 failures.
	
2003-10-02 22:15  derrickoswald

	* src/org/htmlparser/: lexer/nodes/StringNode.java,
	tags/CompositeTag.java, tags/FrameSetTag.java, tags/SelectTag.java,
	tests/AllTests.java, tests/ParserTestCase.java:

	Fix all testcases generating exceptions. Still 160 failures.
	
2003-10-02 20:20  derrickoswald

	* src/org/htmlparser/: Parser.java, lexer/nodes/TagNode.java,
	tests/LineNumberAssignedByNodeReaderTest.java:

	Updated tag line numbers test.
	***** Line numbers reported by tags are now zero based, not one based. *****
	Strip off possible ending slash in tag name.
	
2003-10-02 19:48  derrickoswald

	* src/org/htmlparser/: lexer/nodes/Attribute.java,
	lexer/nodes/TagNode.java, tags/Tag.java, tests/ParserTestCase.java,
	tests/tagTests/TagTest.java, util/ParserUtils.java,
	util/SpecialHashtable.java:

	Moved SpecialHashTable to util.
	Fixed some attribute bugs and some test cases.
	
2003-09-29 22:12  derrickoswald

	* src/org/htmlparser/: lexer/Page.java, tags/Tag.java:

	Doco update. Privatize tag fields leading up to removal.
	
2003-09-28 20:00  derrickoswald

	* src/org/htmlparser/: Parser.java, lexer/Cursor.java,
	lexer/Lexer.java, lexer/Page.java, lexer/PageIndex.java,
	lexer/Source.java, tests/utilTests/BeanTest.java:

	Fix broken serializability.
	
2003-09-28 15:30  derrickoswald

	* src/org/htmlparser/: Parser.java, RemarkNode.java,
	StringNode.java, beans/StringBean.java, tags/CompositeTag.java,
	tags/ImageTag.java, tags/LinkTag.java, tags/Tag.java,
	tags/TitleTag.java,
	tests/visitorsTests/UrlModifyingVisitorTest.java,
	util/LinkProcessor.java, visitors/HtmlPage.java,
	visitors/NodeVisitor.java, visitors/TagFindingVisitor.java,
	visitors/TextExtractingVisitor.java,
	visitors/UrlModifyingVisitor.java:

	Fixed up the broken visitor logic.
	Added some docos on NodeVisitor.
	
2003-09-28 11:33  derrickoswald

	* src/org/htmlparser/: AbstractNode.java, NodeReader.java,
	Parser.java, RemarkNode.java, RemarkNodeParser.java,
	StringNode.java, beans/StringBean.java, lexer/Cursor.java,
	lexer/Lexer.java, lexer/Page.java, lexer/Source.java,
	lexer/nodes/StringNode.java, lexer/nodes/TagNode.java,
	lexer/nodes/NodeFactory.java, scanners/CompositeTagScanner.java,
	scanners/DoctypeScanner.java, scanners/ImageScanner.java,
	scanners/JspScanner.java, scanners/ScriptScanner.java,
	scanners/TagScanner.java, tags/AppletTag.java,
	tags/CompositeTag.java, tags/DoctypeTag.java, tags/EndTag.java,
	tags/ImageTag.java, tags/JspTag.java, tags/StyleTag.java,
	tags/Tag.java, tests/ParserTest.java, tests/ParserTestCase.java,
	tests/lexerTests/LexerTests.java,
	tests/parserHelperTests/CompositeTagScannerHelperTest.java,
	tests/scannersTests/CompositeTagScannerTest.java,
	tests/scannersTests/ImageScannerTest.java,
	tests/scannersTests/LinkScannerTest.java,
	tests/scannersTests/MetaTagScannerTest.java,
	tests/scannersTests/TagScannerTest.java,
	tests/tagTests/BaseHrefTagTest.java,
	tests/tagTests/EndTagTest.java, tests/tagTests/LinkTagTest.java,
	tests/tagTests/ScriptTagTest.java, tests/tagTests/TagTest.java,
	tests/utilTests/HTMLTagParserTest.java, util/Generate.java,
	util/IteratorImpl.java, util/ParserUtils.java,
	visitors/HtmlPage.java, visitors/NodeVisitor.java,
	visitors/TagFindingVisitor.java,
	visitors/TextExtractingVisitor.java,
	visitors/UrlModifyingVisitor.java:

	Lexer Integration
	Removed old Parser classes.
	Removed EndTag,  this class was replaced by a call to the new isEndTag() method on the Tag class
	The StringNode, RemarkNode and tags.Tag class now derive from their lexeme counterparts in lexer.nodes instead of the other way around.
	The beginnings of a node factory interface are included. This was added so the lexer could return 'visitable' nodes to the parser. The parser acts as it's own node factory, as does the Lexer.
	The node count for parsing goes up in most cases because every whitespace (i.e. newline) now counts as a StringNode. This has whacked out a lot of the tests that were expecting fewer nodes or a certain type of node at a particular index.
	Attributes now maintain their order and case. The count of attributes also went up because whitespace is maintained within tags too. The storage in a Vector means the element 0 Attribute is actually the name of the tag, rather than having the $TAGNAME entry in a HashTable.
	
2003-09-22 23:41  derrickoswald

	* build.xml, cvs2cl.pl, htmlparser_checks.xml, java.header,
	src/org/htmlparser/lexer/nodes/TagNode.java,
	src/org/htmlparser/tags/AppletTag.java, bin/crawler.bat, bin/lexer,
	bin/lexer.bat, bin/parser.bat, bin/ripper.bat, bin/thumbelina,
	bin/thumbelina.bat, lib/fit.jar, resources/cvs2cl.pl,
	resources/fit.jar, resources/htmlparser_checks.xml,
	resources/java.header, resources/lexer, resources/runCrawler.bat,
	resources/runLexer.bat, resources/runParser.bat,
	resources/runRipper.bat, resources/runThumbelina.bat,
	resources/thumbelina:

	Distribution cleanup.
	
	- Removed duplicate documentation files from src.zip.
	- Jars are now built in lib, and stay there, rather than being deleting in the clean task.
	*** NOTE *** No more release directory.
	- Added checkstyle-all-3.1.jar to the lib directory, so others can run it too.
	- Moved executable scripts from resources to a new bin directory
	so they can be executed in a development environment.
	- Moved fit.jar from resources to the lib directory.
	  This left the resources directory empty, but...
	- Moved cvs2cl and checkstyle files into the resources directory.
	- Eliminated staging of source files and release files just to construct a
	zip. These are now aggregated by their respective zip tasks.
	- Changed name of changeLog task to changelog.
	- Fixed a few javadoc warnings.
	- Removed the spurious 'run' from the front of all the names of the DOS batch files.
	
	The only files that aren't shipped now are the results, specs and .ssh directory,
	(whatever they are), and the development environment is identical to the unpacked
	zips except for maybe the built directories (distribution, javadocs).

Integration Build 1.4 - 20030921
--------------------------------

2003-09-21 20:44  derrickoswald

	* build.xml, resources/runThumbelina.bat, resources/thumbelina:

	Integrate Thumbelina into the release.
	Added executables and alter Release target to add thumbelina.jar.
	
2003-09-21 14:22  derrickoswald

	* src/org/htmlparser/lexer/Page.java:

	Remove 'oops' from thrown ParserExceptions.
	
2003-09-21 14:20  derrickoswald

	* build.xml,
	src/org/htmlparser/lexerapplications/thumbelina/Picture.java,
	src/org/htmlparser/lexerapplications/thumbelina/PicturePanel.java,
	src/org/htmlparser/lexerapplications/thumbelina/Sequencer.java,
	src/org/htmlparser/lexerapplications/thumbelina/Thumbelina.java,
	src/org/htmlparser/lexerapplications/thumbelina/ThumbelinaFrame.java,
	src/org/htmlparser/lexerapplications/thumbelina/TileSet.java,
	src/org/htmlparser/lexerapplications/thumbelina/package.html:

	Thumbelina
	Created a lexer GUI application to extract images behind thumbnails.
	Added a task in the ant build script - thumbelina - to create the jar file.
	You need JDK 1.4.x to build it.  It can be run on JDK 1.3.x in crippled mode.
	Usage: java -Xmx256M thumbelina.jar [URL]
	
2003-09-21 14:06  derrickoswald

	* java.header:

	Re-add java.header to get the keyword substitution turned off.
	
2003-09-21 14:03  derrickoswald

	* java.header:

	Re-add java.header to get the keyword substitution turned off.
	
2003-09-09 23:48  derrickoswald

	* java.header:

	Forgot the Java header template file. Oops.
	
2003-09-09 23:38  derrickoswald

	* build.xml, htmlparser_checks.xml,
	src/org/htmlparser/AbstractNode.java, src/org/htmlparser/Node.java,
	src/org/htmlparser/NodeReader.java, src/org/htmlparser/Parser.java,
	src/org/htmlparser/RemarkNode.java,
	src/org/htmlparser/RemarkNodeParser.java,
	src/org/htmlparser/StringNode.java,
	src/org/htmlparser/StringNodeFactory.java,
	src/org/htmlparser/package.html,
	src/org/htmlparser/beans/BeanyBaby.java,
	src/org/htmlparser/beans/HTMLLinkBean.java,
	src/org/htmlparser/beans/HTMLTextBean.java,
	src/org/htmlparser/beans/LinkBean.java,
	src/org/htmlparser/beans/StringBean.java,
	src/org/htmlparser/beans/package.html,
	src/org/htmlparser/lexer/Cursor.java,
	src/org/htmlparser/lexer/Lexer.java,
	src/org/htmlparser/lexer/Page.java,
	src/org/htmlparser/lexer/PageIndex.java,
	src/org/htmlparser/lexer/Source.java,
	src/org/htmlparser/lexer/Stream.java,
	src/org/htmlparser/lexer/package.html,
	src/org/htmlparser/lexer/nodes/AbstractNode.java,
	src/org/htmlparser/lexer/nodes/Attribute.java,
	src/org/htmlparser/lexer/nodes/RemarkNode.java,
	src/org/htmlparser/lexer/nodes/StringNode.java,
	src/org/htmlparser/lexer/nodes/TagNode.java,
	src/org/htmlparser/lexer/nodes/package.html,
	src/org/htmlparser/nodeDecorators/AbstractNodeDecorator.java,
	src/org/htmlparser/nodeDecorators/DecodingNode.java,
	src/org/htmlparser/nodeDecorators/EscapeCharacterRemovingNode.java,
	src/org/htmlparser/nodeDecorators/NonBreakingSpaceConvertingNode.java,
	src/org/htmlparser/parserHelper/AttributeParser.java,
	src/org/htmlparser/parserHelper/CompositeTagScannerHelper.java,
	src/org/htmlparser/parserHelper/ParserHelper.java,
	src/org/htmlparser/parserHelper/ScriptScannerHelper.java,
	src/org/htmlparser/parserHelper/StringParser.java,
	src/org/htmlparser/parserHelper/TagParser.java,
	src/org/htmlparser/parserapplications/LinkExtractor.java,
	src/org/htmlparser/parserapplications/MailRipper.java,
	src/org/htmlparser/parserapplications/Robot.java,
	src/org/htmlparser/parserapplications/StringExtractor.java,
	src/org/htmlparser/parserapplications/package.html,
	src/org/htmlparser/scanners/AppletScanner.java,
	src/org/htmlparser/scanners/BaseHrefScanner.java,
	src/org/htmlparser/scanners/BodyScanner.java,
	src/org/htmlparser/scanners/BulletListScanner.java,
	src/org/htmlparser/scanners/BulletScanner.java,
	src/org/htmlparser/scanners/CompositeTagScanner.java,
	src/org/htmlparser/scanners/DivScanner.java,
	src/org/htmlparser/scanners/DoctypeScanner.java,
	src/org/htmlparser/scanners/FormScanner.java,
	src/org/htmlparser/scanners/FrameScanner.java,
	src/org/htmlparser/scanners/FrameSetScanner.java,
	src/org/htmlparser/scanners/HeadScanner.java,
	src/org/htmlparser/scanners/HtmlScanner.java,
	src/org/htmlparser/scanners/ImageScanner.java,
	src/org/htmlparser/scanners/InputTagScanner.java,
	src/org/htmlparser/scanners/JspScanner.java,
	src/org/htmlparser/scanners/LabelScanner.java,
	src/org/htmlparser/scanners/LinkScanner.java,
	src/org/htmlparser/scanners/MetaTagScanner.java,
	src/org/htmlparser/scanners/OptionTagScanner.java,
	src/org/htmlparser/scanners/ScriptScanner.java,
	src/org/htmlparser/scanners/SelectTagScanner.java,
	src/org/htmlparser/scanners/SpanScanner.java,
	src/org/htmlparser/scanners/StyleScanner.java,
	src/org/htmlparser/scanners/TableColumnScanner.java,
	src/org/htmlparser/scanners/TableRowScanner.java,
	src/org/htmlparser/scanners/TableScanner.java,
	src/org/htmlparser/scanners/TagScanner.java,
	src/org/htmlparser/scanners/TextareaTagScanner.java,
	src/org/htmlparser/scanners/TitleScanner.java,
	src/org/htmlparser/scanners/package.html,
	src/org/htmlparser/tags/AppletTag.java,
	src/org/htmlparser/tags/BaseHrefTag.java,
	src/org/htmlparser/tags/BodyTag.java,
	src/org/htmlparser/tags/Bullet.java,
	src/org/htmlparser/tags/BulletList.java,
	src/org/htmlparser/tags/CompositeTag.java,
	src/org/htmlparser/tags/Div.java,
	src/org/htmlparser/tags/DoctypeTag.java,
	src/org/htmlparser/tags/EndTag.java,
	src/org/htmlparser/tags/FormTag.java,
	src/org/htmlparser/tags/FrameSetTag.java,
	src/org/htmlparser/tags/FrameTag.java,
	src/org/htmlparser/tags/HeadTag.java,
	src/org/htmlparser/tags/Html.java,
	src/org/htmlparser/tags/ImageTag.java,
	src/org/htmlparser/tags/InputTag.java,
	src/org/htmlparser/tags/JspTag.java,
	src/org/htmlparser/tags/LabelTag.java,
	src/org/htmlparser/tags/LinkTag.java,
	src/org/htmlparser/tags/MetaTag.java,
	src/org/htmlparser/tags/OptionTag.java,
	src/org/htmlparser/tags/ScriptTag.java,
	src/org/htmlparser/tags/SelectTag.java,
	src/org/htmlparser/tags/Span.java,
	src/org/htmlparser/tags/StyleTag.java,
	src/org/htmlparser/tags/TableColumn.java,
	src/org/htmlparser/tags/TableRow.java,
	src/org/htmlparser/tags/TableTag.java,
	src/org/htmlparser/tags/Tag.java,
	src/org/htmlparser/tags/TextareaTag.java,
	src/org/htmlparser/tags/TitleTag.java,
	src/org/htmlparser/tags/package.html,
	src/org/htmlparser/tags/data/CompositeTagData.java,
	src/org/htmlparser/tags/data/FormData.java,
	src/org/htmlparser/tags/data/LinkData.java,
	src/org/htmlparser/tags/data/TagData.java,
	src/org/htmlparser/tests/AllTests.java,
	src/org/htmlparser/tests/AssertXmlEqualsTest.java,
	src/org/htmlparser/tests/BadTagIdentifier.java,
	src/org/htmlparser/tests/FunctionalTests.java,
	src/org/htmlparser/tests/InstanceofPerformanceTest.java,
	src/org/htmlparser/tests/LineNumberAssignedByNodeReaderTest.java,
	src/org/htmlparser/tests/ParserTest.java,
	src/org/htmlparser/tests/ParserTestCase.java,
	src/org/htmlparser/tests/PerformanceTest.java,
	src/org/htmlparser/tests/package.html,
	src/org/htmlparser/tests/codeMetrics/LineCounter.java,
	src/org/htmlparser/tests/lexerTests/AllTests.java,
	src/org/htmlparser/tests/lexerTests/KitTest.java,
	src/org/htmlparser/tests/lexerTests/LexerTests.java,
	src/org/htmlparser/tests/lexerTests/PageIndexTests.java,
	src/org/htmlparser/tests/lexerTests/PageTests.java,
	src/org/htmlparser/tests/lexerTests/SourceTests.java,
	src/org/htmlparser/tests/lexerTests/StreamTests.java,
	src/org/htmlparser/tests/nodeDecoratorTests/AllTests.java,
	src/org/htmlparser/tests/nodeDecoratorTests/DecodingNodeTest.java,
	src/org/htmlparser/tests/nodeDecoratorTests/EscapeCharacterRemovingNodeTest.java,
	src/org/htmlparser/tests/nodeDecoratorTests/NonBreakingSpaceConvertingNodeTest.java,
	src/org/htmlparser/tests/parserHelperTests/AllTests.java,
	src/org/htmlparser/tests/parserHelperTests/CompositeTagScannerHelperTest.java,
	src/org/htmlparser/tests/parserHelperTests/RemarkNodeParserTest.java,
	src/org/htmlparser/tests/parserHelperTests/StringParserTest.java,
	src/org/htmlparser/tests/scannersTests/AllTests.java,
	src/org/htmlparser/tests/scannersTests/AppletScannerTest.java,
	src/org/htmlparser/tests/scannersTests/BaseHREFScannerTest.java,
	src/org/htmlparser/tests/scannersTests/BodyScannerTest.java,
	src/org/htmlparser/tests/scannersTests/BulletListScannerTest.java,
	src/org/htmlparser/tests/scannersTests/BulletScannerTest.java,
	src/org/htmlparser/tests/scannersTests/CompositeTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/DivScannerTest.java,
	src/org/htmlparser/tests/scannersTests/FormScannerTest.java,
	src/org/htmlparser/tests/scannersTests/FrameScannerTest.java,
	src/org/htmlparser/tests/scannersTests/FrameSetScannerTest.java,
	src/org/htmlparser/tests/scannersTests/HeadScannerTest.java,
	src/org/htmlparser/tests/scannersTests/HtmlTest.java,
	src/org/htmlparser/tests/scannersTests/ImageScannerTest.java,
	src/org/htmlparser/tests/scannersTests/InputTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/JspScannerTest.java,
	src/org/htmlparser/tests/scannersTests/LabelScannerTest.java,
	src/org/htmlparser/tests/scannersTests/LinkScannerTest.java,
	src/org/htmlparser/tests/scannersTests/MetaTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/OptionTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/ScriptScannerTest.java,
	src/org/htmlparser/tests/scannersTests/SelectTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/SpanScannerTest.java,
	src/org/htmlparser/tests/scannersTests/StyleScannerTest.java,
	src/org/htmlparser/tests/scannersTests/TableScannerTest.java,
	src/org/htmlparser/tests/scannersTests/TagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/TextareaTagScannerTest.java,
	src/org/htmlparser/tests/scannersTests/TitleScannerTest.java,
	src/org/htmlparser/tests/scannersTests/XmlEndTagScanningTest.java,
	src/org/htmlparser/tests/scannersTests/package.html,
	src/org/htmlparser/tests/tagTests/AllTests.java,
	src/org/htmlparser/tests/tagTests/AppletTagTest.java,
	src/org/htmlparser/tests/tagTests/BaseHrefTagTest.java,
	src/org/htmlparser/tests/tagTests/BodyTagTest.java,
	src/org/htmlparser/tests/tagTests/CompositeTagTest.java,
	src/org/htmlparser/tests/tagTests/DoctypeTagTest.java,
	src/org/htmlparser/tests/tagTests/EndTagTest.java,
	src/org/htmlparser/tests/tagTests/FormTagTest.java,
	src/org/htmlparser/tests/tagTests/FrameSetTagTest.java,
	src/org/htmlparser/tests/tagTests/FrameTagTest.java,
	src/org/htmlparser/tests/tagTests/ImageTagTest.java,
	src/org/htmlparser/tests/tagTests/InputTagTest.java,
	src/org/htmlparser/tests/tagTests/JspTagTest.java,
	src/org/htmlparser/tests/tagTests/LinkTagTest.java,
	src/org/htmlparser/tests/tagTests/MetaTagTest.java,
	src/org/htmlparser/tests/tagTests/ObjectCollectionTest.java,
	src/org/htmlparser/tests/tagTests/OptionTagTest.java,
	src/org/htmlparser/tests/tagTests/ScriptTagTest.java,
	src/org/htmlparser/tests/tagTests/SelectTagTest.java,
	src/org/htmlparser/tests/tagTests/StyleTagTest.java,
	src/org/htmlparser/tests/tagTests/TagTest.java,
	src/org/htmlparser/tests/tagTests/TextareaTagTest.java,
	src/org/htmlparser/tests/tagTests/TitleTagTest.java,
	src/org/htmlparser/tests/tagTests/package.html,
	src/org/htmlparser/tests/temporaryFailures/AttributeParserTest.java,
	src/org/htmlparser/tests/temporaryFailures/TagParserTest.java,
	src/org/htmlparser/tests/utilTests/AllTests.java,
	src/org/htmlparser/tests/utilTests/BeanTest.java,
	src/org/htmlparser/tests/utilTests/CharacterTranslationTest.java,
	src/org/htmlparser/tests/utilTests/HTMLLinkProcessorTest.java,
	src/org/htmlparser/tests/utilTests/HTMLParserUtilsTest.java,
	src/org/htmlparser/tests/utilTests/HTMLTagParserTest.java,
	src/org/htmlparser/tests/utilTests/NodeListTest.java,
	src/org/htmlparser/tests/utilTests/SortTest.java,
	src/org/htmlparser/tests/utilTests/package.html,
	src/org/htmlparser/tests/visitorsTests/AllTests.java,
	src/org/htmlparser/tests/visitorsTests/CompositeTagFindingVisitorTest.java,
	src/org/htmlparser/tests/visitorsTests/HtmlPageTest.java,
	src/org/htmlparser/tests/visitorsTests/LinkFindingVisitorTest.java,
	src/org/htmlparser/tests/visitorsTests/NodeVisitorTest.java,
	src/org/htmlparser/tests/visitorsTests/StringFindingVisitorTest.java,
	src/org/htmlparser/tests/visitorsTests/TagFindingVisitorTest.java,
	src/org/htmlparser/tests/visitorsTests/TextExtractingVisitorTest.java,
	src/org/htmlparser/tests/visitorsTests/UrlModifyingVisitorTest.java,
	src/org/htmlparser/util/ChainedException.java,
	src/org/htmlparser/util/CommandLine.java,
	src/org/htmlparser/util/DefaultParserFeedback.java,
	src/org/htmlparser/util/FeedbackManager.java,
	src/org/htmlparser/util/Generate.java,
	src/org/htmlparser/util/IteratorImpl.java,
	src/org/htmlparser/util/LinkProcessor.java,
	src/org/htmlparser/util/NodeIterator.java,
	src/org/htmlparser/util/NodeList.java,
	src/org/htmlparser/util/ParserException.java,
	src/org/htmlparser/util/ParserFeedback.java,
	src/org/htmlparser/util/ParserUtils.java,
	src/org/htmlparser/util/PeekingIterator.java,
	src/org/htmlparser/util/SimpleNodeIterator.java,
	src/org/htmlparser/util/Translate.java,
	src/org/htmlparser/util/package.html,
	src/org/htmlparser/util/sort/Ordered.java,
	src/org/htmlparser/util/sort/Sort.java,
	src/org/htmlparser/util/sort/Sortable.java,
	src/org/htmlparser/util/sort/package.html,
	src/org/htmlparser/visitors/HtmlPage.java,
	src/org/htmlparser/visitors/LinkFindingVisitor.java,
	src/org/htmlparser/visitors/NodeVisitor.java,
	src/org/htmlparser/visitors/ObjectFindingVisitor.java,
	src/org/htmlparser/visitors/StringFindingVisitor.java,
	src/org/htmlparser/visitors/TagFindingVisitor.java,
	src/org/htmlparser/visitors/TextExtractingVisitor.java,
	src/org/htmlparser/visitors/UrlModifyingVisitor.java,
	src/org/htmlparser/visitors/package.html,
	lib/checkstyle-all-3.1.jar,
	src/org/htmlparser/lexerapplications/tabby/Tabby.java,
	src/org/htmlparser/lexerapplications/tabby/package.html:

	Add style checking target to ant build script:
	    ant checkstyle
	It uses a jar from http://checkstyle.sourceforge.net which is dropped in the lib directory.
	The rules are in the file htmlparser_checks.xml in the src directory.
	
	Added lexerapplications package with Tabby as the first app. It performs whitespace manipulation
	on source files to follow the style rules. This reduced the number of style violations to roughly 14,000.
	
	There are a few issues with the style checker that need to be resolved before it should be taken too seriously.
	For example:
	It thinks all method arguments should be final, even if they are modified by the code (which the compiler frowns on).
	It complains about long lines, even when there is no possibility of wrapping the line, i.e. a URL in a comment
	that's more than 80 characters long.
	It considers all naked integers as 'magic numbers', even when they are obvious, i.e. the 4 corners of a box.
	It complains about whitespace following braces, even in array initializers, i.e. X[][] = { {a, b} { } }
	
	But it points out some really interesting things, even if you don't agree with the style guidelines,
	so it's worth a look.

Integration Build 1.4 - 20030907
--------------------------------

2003-09-07 17:28  derrickoswald

	* src/org/htmlparser/lexer/nodes/: Attribute.java, TagNode.java:

	Fix setAttribute and optimize getAttribute for speed.
	
2003-09-03 19:36  derrickoswald

	* src/org/htmlparser/: AbstractNode.java, Node.java,
	NodeReader.java, RemarkNode.java, StringNode.java,
	StringNodeFactory.java, lexer/Page.java, lexer/PageIndex.java,
	lexer/nodes/AbstractNode.java, lexer/nodes/RemarkNode.java,
	lexer/nodes/StringNode.java, lexer/nodes/TagNode.java,
	nodeDecorators/AbstractNodeDecorator.java,
	nodeDecorators/DecodingNode.java,
	nodeDecorators/EscapeCharacterRemovingNode.java,
	nodeDecorators/NonBreakingSpaceConvertingNode.java,
	parserHelper/AttributeParser.java,
	parserHelper/CompositeTagScannerHelper.java,
	parserHelper/ParserHelper.java,
	parserHelper/ScriptScannerHelper.java,
	parserHelper/StringParser.java, parserHelper/TagParser.java,
	parserapplications/MailRipper.java, parserapplications/Robot.java,
	scanners/AppletScanner.java, scanners/BaseHrefScanner.java,
	scanners/BodyScanner.java, scanners/BulletListScanner.java,
	scanners/BulletScanner.java, scanners/CompositeTagScanner.java,
	scanners/DivScanner.java, scanners/DoctypeScanner.java,
	scanners/FormScanner.java, scanners/FrameScanner.java,
	scanners/FrameSetScanner.java, scanners/HeadScanner.java,
	scanners/HtmlScanner.java, scanners/ImageScanner.java,
	scanners/InputTagScanner.java, scanners/JspScanner.java,
	scanners/LabelScanner.java, scanners/LinkScanner.java,
	scanners/MetaTagScanner.java, scanners/OptionTagScanner.java,
	scanners/ScriptScanner.java, scanners/SelectTagScanner.java,
	scanners/SpanScanner.java, scanners/StyleScanner.java,
	scanners/TableColumnScanner.java, scanners/TableRowScanner.java,
	scanners/TableScanner.java, scanners/TagScanner.java,
	scanners/TextareaTagScanner.java, scanners/TitleScanner.java,
	tags/BaseHrefTag.java, tags/BodyTag.java, tags/Bullet.java,
	tags/BulletList.java, tags/CompositeTag.java, tags/Div.java,
	tags/DoctypeTag.java, tags/EndTag.java, tags/FormTag.java,
	tags/FrameSetTag.java, tags/FrameTag.java, tags/HeadTag.java,
	tags/Html.java, tags/ImageTag.java, tags/InputTag.java,
	tags/JspTag.java, tags/LabelTag.java, tags/MetaTag.java,
	tags/OptionTag.java, tags/ScriptTag.java, tags/SelectTag.java,
	tags/Span.java, tags/StyleTag.java, tags/TableColumn.java,
	tags/TableRow.java, tags/TableTag.java, tags/Tag.java,
	tags/TextareaTag.java, tags/TitleTag.java,
	tags/data/CompositeTagData.java, tags/data/FormData.java,
	tags/data/LinkData.java, tags/data/TagData.java,
	tests/AllTests.java, tests/AssertXmlEqualsTest.java,
	tests/BadTagIdentifier.java, tests/FunctionalTests.java,
	tests/InstanceofPerformanceTest.java,
	tests/LineNumberAssignedByNodeReaderTest.java,
	tests/ParserTest.java, tests/ParserTestCase.java,
	tests/PerformanceTest.java, tests/codeMetrics/LineCounter.java,
	tests/lexerTests/AllTests.java, tests/lexerTests/LexerTests.java,
	tests/lexerTests/PageIndexTests.java,
	tests/lexerTests/PageTests.java, tests/lexerTests/SourceTests.java,
	tests/lexerTests/StreamTests.java,
	tests/nodeDecoratorTests/AllTests.java,
	tests/nodeDecoratorTests/DecodingNodeTest.java,
	tests/nodeDecoratorTests/EscapeCharacterRemovingNodeTest.java,
	tests/nodeDecoratorTests/NonBreakingSpaceConvertingNodeTest.java,
	tests/parserHelperTests/AllTests.java,
	tests/parserHelperTests/CompositeTagScannerHelperTest.java,
	tests/parserHelperTests/StringParserTest.java,
	tests/scannersTests/AllTests.java,
	tests/scannersTests/BaseHREFScannerTest.java,
	tests/scannersTests/BodyScannerTest.java,
	tests/scannersTests/BulletListScannerTest.java,
	tests/scannersTests/BulletScannerTest.java,
	tests/scannersTests/CompositeTagScannerTest.java,
	tests/scannersTests/DivScannerTest.java,
	tests/scannersTests/FormScannerTest.java,
	tests/scannersTests/FrameScannerTest.java,
	tests/scannersTests/FrameSetScannerTest.java,
	tests/scannersTests/HeadScannerTest.java,
	tests/scannersTests/HtmlTest.java,
	tests/scannersTests/ImageScannerTest.java,
	tests/scannersTests/InputTagScannerTest.java,
	tests/scannersTests/JspScannerTest.java,
	tests/scannersTests/LabelScannerTest.java,
	tests/scannersTests/LinkScannerTest.java,
	tests/scannersTests/MetaTagScannerTest.java,
	tests/scannersTests/OptionTagScannerTest.java,
	tests/scannersTests/ScriptScannerTest.java,
	tests/scannersTests/SelectTagScannerTest.java,
	tests/scannersTests/SpanScannerTest.java,
	tests/scannersTests/StyleScannerTest.java,
	tests/scannersTests/TableScannerTest.java,
	tests/scannersTests/TagScannerTest.java,
	tests/scannersTests/TextareaTagScannerTest.java,
	tests/scannersTests/TitleScannerTest.java,
	tests/scannersTests/XmlEndTagScanningTest.java,
	tests/tagTests/AllTests.java, tests/tagTests/BaseHrefTagTest.java,
	tests/tagTests/BodyTagTest.java,
	tests/tagTests/CompositeTagTest.java,
	tests/tagTests/DoctypeTagTest.java, tests/tagTests/EndTagTest.java,
	tests/tagTests/FormTagTest.java,
	tests/tagTests/FrameSetTagTest.java,
	tests/tagTests/FrameTagTest.java, tests/tagTests/InputTagTest.java,
	tests/tagTests/MetaTagTest.java,
	tests/tagTests/ObjectCollectionTest.java,
	tests/tagTests/OptionTagTest.java,
	tests/tagTests/ScriptTagTest.java,
	tests/tagTests/SelectTagTest.java,
	tests/tagTests/StyleTagTest.java, tests/tagTests/TagTest.java,
	tests/tagTests/TextareaTagTest.java,
	tests/tagTests/TitleTagTest.java,
	tests/temporaryFailures/AttributeParserTest.java,
	tests/temporaryFailures/TagParserTest.java,
	tests/utilTests/AllTests.java, tests/utilTests/BeanTest.java,
	tests/utilTests/CharacterTranslationTest.java,
	tests/utilTests/HTMLLinkProcessorTest.java,
	tests/utilTests/HTMLParserUtilsTest.java,
	tests/utilTests/HTMLTagParserTest.java,
	tests/utilTests/NodeListTest.java,
	tests/visitorsTests/AllTests.java,
	tests/visitorsTests/CompositeTagFindingVisitorTest.java,
	tests/visitorsTests/HtmlPageTest.java,
	tests/visitorsTests/LinkFindingVisitorTest.java,
	tests/visitorsTests/NodeVisitorTest.java,
	tests/visitorsTests/StringFindingVisitorTest.java,
	tests/visitorsTests/TagFindingVisitorTest.java,
	tests/visitorsTests/TextExtractingVisitorTest.java,
	tests/visitorsTests/UrlModifyingVisitorTest.java,
	util/DefaultParserFeedback.java, util/LinkProcessor.java,
	util/NodeIterator.java, util/NodeList.java, util/ParserUtils.java,
	util/PeekingIterator.java, util/SimpleNodeIterator.java,
	util/Translate.java, util/sort/Ordered.java, util/sort/Sort.java,
	util/sort/Sortable.java, visitors/HtmlPage.java,
	visitors/LinkFindingVisitor.java, visitors/NodeVisitor.java,
	visitors/ObjectFindingVisitor.java,
	visitors/StringFindingVisitor.java,
	visitors/TagFindingVisitor.java,
	visitors/TextExtractingVisitor.java,
	visitors/UrlModifyingVisitor.java:

	Change tabs to spaces in all source files.
	
2003-09-01 20:41  derrickoswald

	* docs/samples/index.html:

	Further to bug #786869 LinkExtractor Sample not working,
	The original samples directory on the web page either needs to be revamped or removed
	and the missing pieces moved to the wiki pages:
	http://htmlparser.sourceforge.net/docs/index.php/SamplePrograms
	
	Until then I've flagged the samples directory as out of date in the index.html file.
	I'll add the task to the list of requests for feature enhancements.
	
2003-09-01 18:02  derrickoswald

	* src/org/htmlparser/tests/scannersTests/AppletScannerTest.java:

	Further to bug #798554 Applet Tag does not update codebase data, fix test case.
	
	********************
	Note:
	AppletTag getAttribute() no longer retrieves the parameter, it returns the Tag.getAttribute() value like it should.
	Use AttributeTag.getParameter() to access the list of parameters of the applet tag.,
	********************
	
2003-09-01 17:53  derrickoswald

	* src/org/htmlparser/tests/tagTests/JspTagTest.java:

	Incorporated test cases from bug #772700 Jsp Tags are not parsed correctly when in quoted attributes.
	This should be resolved when the lexer package is integrated.
	Commented out the one that fails.
	
2003-09-01 17:41  derrickoswald

	* src/org/htmlparser/tests/tagTests/ImageTagTest.java:

	Add test case text from bug bug #778781  SRC-attribute suppression in IMG-tags.
	
2003-09-01 17:28  derrickoswald

	* src/org/htmlparser/: tags/LinkTag.java,
	tests/tagTests/LinkTagTest.java:

	Fix bug #784767 irc://server/channel urls are HTTPLike?
	Added an isIRCLink() method, but,
	I'm not sure that isHTTPLikeLink() should use the gainsaying of all know link types.
	This needs review.
	
2003-09-01 16:48  derrickoswald

	* docs/samples/links.html:

	Fix bug #786869 LinkExtractor Sample not working.
	
2003-09-01 16:24  derrickoswald

	* src/org/htmlparser/parserapplications/LinkExtractor.java:

	Fix bug #786869 LinkExtractor Sample not working.
	
2003-09-01 15:55  derrickoswald

	* src/org/htmlparser/: RemarkNodeParser.java,
	tests/parserHelperTests/RemarkNodeParserTest.java:

	Workaround for bug #788746 parser crashes on comments like <!-- foobar --!>.
	No real solution because the codebase assumes remarks end with -->, so this
	just avoids the crash, but the toHtml() output will output --!-->, which isn't really correct.
	Added the test case as RemarkNodeParserTest.testExclamationComment().
	
2003-09-01 15:20  derrickoswald

	* src/org/htmlparser/Parser.java:

	Fixed bug #798553 setInputHtml does not set text.
	Added ! (not) to the guard.
	
2003-09-01 15:11  derrickoswald

	* src/org/htmlparser/: tags/AppletTag.java,
	tests/tagTests/AppletTagTest.java:

	Fixed bug #798554 Applet Tag does not update codebase data.
	Rewrote the AppletTag class to honour setting codebase, archive, applet class and applet params.
	Added 4 new test cases in AppletTagTest.
	
2003-09-01 09:53  derrickoswald

	* src/org/htmlparser/Parser.java:

	Fix bug #798552 Sample for node iterator incorrect
	DocComment changes only.
	Tabs converted to spaces.
	
2003-08-26 22:40  derrickoswald

	* src/org/htmlparser/tests/lexerTests/KitTest.java:

	Testing cvs keyword substitution.

Integration Build 1.4 - 20030824
--------------------------------

2003-08-24 17:07  derrickoswald

	* build.xml:

	Update groups list.
	
2003-08-24 16:49  derrickoswald

	* src/org/htmlparser/: StringNode.java, scanners/TagScanner.java,
	tags/AppletTag.java, tags/CompositeTag.java, tags/DoctypeTag.java,
	tags/EndTag.java, tags/JspTag.java, tags/ScriptTag.java,
	tags/StyleTag.java, tags/Tag.java:

	Cure javadoc warnings about invalid parameters and broken links, take two.
	
2003-08-24 16:30  derrickoswald

	* src/org/htmlparser/beans/StringBean.java:

	Fix extra carriage returns in text output.
	
2003-08-24 15:40  derrickoswald

	* src/org/htmlparser/: AbstractNode.java, Node.java, Parser.java,
	RemarkNode.java, beans/HTMLLinkBean.java, beans/HTMLTextBean.java,
	beans/LinkBean.java, beans/StringBean.java,
	parserHelper/AttributeParser.java, scanners/FormScanner.java,
	scanners/FrameScanner.java, scanners/ImageScanner.java,
	tags/Tag.java:

	Cure javadoc warnings about invalid parameters and broken links.
	
2003-08-24 14:54  somik

	* src/org/htmlparser/visitors/CompositeTagFindingVisitor.java:

	removed unused class
	
2003-08-24 14:53  somik

	* src/org/htmlparser/util/ParserUtils.java:

	removed dead code
	
2003-08-24 14:50  somik

	* src/org/htmlparser/util/: Generate.java, IteratorImpl.java,
	LinkProcessor.java:

	removed unused local variables
	
2003-08-24 14:47  somik

	* src/org/htmlparser/tests/utilTests/: BeanTest.java,
	NodeListTest.java:

	removed unused imports
	
2003-08-24 14:46  somik

	* src/org/htmlparser/tests/: tagTests/TagTest.java,
	temporaryFailures/AttributeParserTest.java,
	utilTests/HTMLLinkProcessorTest.java:

	removed unused local variables
	
2003-08-24 14:44  somik

	* src/org/htmlparser/tests/scannersTests/TableScannerTest.java:

	reformatted
	
2003-08-24 14:44  derrickoswald

	* build.xml, docs/docs/BlockFeedback.html,
	docs/docs/CollectingParameter.html,
	docs/docs/CompositePattern.html,
	docs/docs/CustomTagExtraction.html, docs/docs/EmailExtraction.html,
	docs/docs/EnableFeedback.html, docs/docs/ExternalIterators.html,
	docs/docs/FactoryMethod.html, docs/docs/FeedbackMechanism.html,
	docs/docs/FirstName.html, docs/docs/FrequentlyAskedQuestions.html,
	docs/docs/FullName.html, docs/docs/ImageExtraction.html,
	docs/docs/InternalIterators.html, docs/docs/IteratorPattern.html,
	docs/docs/JavaBeans.html, docs/docs/LastName.html,
	docs/docs/LinkExtraction.html, docs/docs/ParserDesign.html,
	docs/docs/ParsingXml.html, docs/docs/PatternStories.html,
	docs/docs/PostOperation.html, docs/docs/ReverseHtml.html,
	docs/docs/SamplePrograms.html, docs/docs/SearchingForData.html,
	docs/docs/SomikRaha.html, docs/docs/StrategyPattern.html,
	docs/docs/StringExtraction.html, docs/docs/TagFindingVisitor.html,
	docs/docs/TagScanner.html, docs/docs/TemplateMethod.html,
	docs/docs/TestDrivenDevelopment.html,
	docs/docs/TextExtractingVisitor.html,
	docs/docs/UnitTestingPdf.html, docs/docs/UnitTestingXsl.html,
	docs/docs/UsingCookiesWithParser.html,
	docs/docs/VisitorPattern.html, docs/docs/WebCrawler.html,
	docs/docs/WebRipper.html, docs/docs/WritingYourOwnScanners.html,
	docs/docs/index.html:

	update Wiki image
	
2003-08-24 14:43  somik

	* src/org/htmlparser/tests/scannersTests/ScriptScannerTest.java:

	removed unused assertion
	
2003-08-24 14:42  somik

	* src/org/htmlparser/tests/scannersTests/: HeadScannerTest.java,
	ImageScannerTest.java, TagScannerTest.java:

	removed unused local variables
	
2003-08-24 14:39  somik

	* src/org/htmlparser/tests/: ParserTest.java, ParserTestCase.java,
	utilTests/BeanTest.java,
	scannersTests/CompositeTagScannerTest.java:

	removed unused local variables
	
2003-08-24 14:35  somik

	* src/org/htmlparser/tests/BadTagIdentifier.java:

	improved identify()
	
2003-08-24 14:34  somik

	* src/org/htmlparser/scanners/FrameScanner.java:

	reformatted
	
2003-08-24 14:32  somik

	* src/org/htmlparser/: lexer/nodes/TagNode.java,
	scanners/TagScanner.java:

	removed unused local variables
	
2003-08-24 14:31  somik

	* src/org/htmlparser/lexer/Page.java:

	removed unused imports and variables
	
2003-08-24 14:30  somik

	* src/org/htmlparser/: lexer/Lexer.java,
	nodeDecorators/AbstractNodeDecorator.java:

	removed unused imports
	
2003-08-24 14:30  somik

	* src/org/htmlparser/beans/: LinkBean.java, StringBean.java:

	removed unused private variables
	
2003-08-24 14:28  somik

	* src/: fit/Attributes.java, org/htmlparser/Parser.java:

	updated fit test
	
2003-08-23 13:14  derrickoswald

	* src/org/htmlparser/: AbstractNode.java, Node.java,
	RemarkNode.java, StringNode.java, lexer/Lexer.java,
	lexer/Page.java, lexer/nodes/RemarkNode.java,
	lexer/nodes/StringNode.java, lexer/nodes/TagNode.java,
	nodeDecorators/AbstractNodeDecorator.java,
	parserHelper/SpecialHashtable.java, tags/CompositeTag.java,
	tags/LinkTag.java, tags/SelectTag.java, tags/Tag.java,
	tests/scannersTests/CompositeTagScannerTest.java,
	tests/tagTests/CompositeTagTest.java,
	tests/utilTests/NodeListTest.java,
	tests/visitorsTests/AllTests.java, util/ChainedException.java,
	util/NodeList.java:

	Sixth drop for new i/o subsystem.
	Isolated htmllexer.jar file and made it compileable and runnable on JDK 1.1 systems.
	The build.xml file now has four new targets for separate compiling and jaring of the lexer and parser.
	Significantly refactored the existing Node interface and AbstractNode class to achieve isolation.
	They now support get/setChildren(), rather than CompositeTag.
	Various scanners that were directly accessing the childTags node list were affected.
	The get/setParent is now a generic Node rather than a CompositeTag.
	The visitor accept() signature was changed to Object to avoid dragging in visitors code.
	This was *not* changed on classes derived from Tag, although it could be.
	ChainedException now uses/returns a Vector.
	Removed the cruft from lexer nodes where possible.
	
2003-08-22 21:33  derrickoswald

	* build.xml, src/org/htmlparser/lexer/Lexer.java,
	src/org/htmlparser/lexer/Page.java,
	src/org/htmlparser/lexer/nodes/Attribute.java,
	resources/Manifest.mf, resources/lexer, resources/runLexer.bat,
	src/ExceptionMessages_en_US.properties,
	src/ExceptionMessages_ja_JP.properties, src/Manifest.mf:

	Fifth drop for new i/o subsystem.
	There is now a mainline for the lexer.
	Try:
	    java -jar htmllexer.jar http://whatever
	or the integration build has a new lexer execution script:
	    bin/lexer http://whatever
	
2003-08-20 21:52  derrickoswald

	* src/org/htmlparser/: lexer/Cursor.java, lexer/Lexer.java,
	lexer/Page.java, lexer/PageIndex.java, lexer/Source.java,
	lexer/nodes/Attribute.java, lexer/nodes/TagNode.java,
	tests/lexerTests/AllTests.java, tests/lexerTests/KitTest.java,
	tests/lexerTests/LexerTests.java:

	Fourth drop for new i/o subsystem.
	
2003-08-17 12:09  derrickoswald

	* src/org/htmlparser/: lexer/Cursor.java, lexer/Lexer.java,
	lexer/Page.java, lexer/PageIndex.java, lexer/Source.java,
	lexer/package.html, tests/lexerTests/AllTests.java,
	tests/lexerTests/KitTest.java, tests/lexerTests/LexerTests.java,
	tests/lexerTests/PageIndexTests.java,
	tests/lexerTests/PageTests.java, tests/lexerTests/SourceTests.java,
	lexer/nodes/AbstractNode.java, lexer/nodes/Attribute.java,
	lexer/nodes/RemarkNode.java, lexer/nodes/StringNode.java,
	lexer/nodes/TagNode.java, lexer/nodes/package.html:

	Third drop for new i/o subsystem.
	
2003-08-15 16:51  derrickoswald

	* src/org/htmlparser/: parserHelper/AttributeParser.java,
	scanners/TagScanner.java, tags/FormTag.java, tags/ImageTag.java,
	tags/LinkTag.java, tags/Tag.java, tests/ParserTestCase.java,
	tests/scannersTests/ScriptScannerTest.java,
	tests/tagTests/InputTagTest.java, tests/tagTests/TagTest.java,
	tests/temporaryFailures/AttributeParserTest.java:

	Case maintaining toHtml() output for tag attributes.
	With these changes, the output of toHtml() now reflects the upper/lower case values
	of the input for the contents of tags, i.e. attribute names maintain their original case.
	They're still out of order from how they are parsed, but this is a first step.
	Rather than adjust all the test cases right now, the ParserTestCase assertSameString()
	method now checks a global flag to see if case matters when comparing strings.
	As of this drop it ignores case when comparing HTML output. This will soon change.
	
2003-08-10 23:53  derrickoswald

	* build.xml:

	Move libs to correct level in distribution zip.

Integration Build 1.4 - 20030810
--------------------------------

2003-08-10 19:36  derrickoswald

	* src/org/htmlparser/tests/lexerTests/: AllTests.java,
	PageIndexTests.java, PageTests.java:

	Unit tests for second drop of new io subsystem.
	
2003-08-10 19:33  derrickoswald

	* src/org/htmlparser/: lexer/Page.java, lexer/Cursor.java,
	lexer/PageIndex.java, lexer/package.html,
	tests/utilTests/AllTests.java, tests/utilTests/SortTest.java,
	util/sort/Ordered.java, util/sort/Sort.java,
	util/sort/Sortable.java, util/sort/package.html:

	Second drop for new io subsystem.
	
2003-08-02 12:22  derrickoswald

	* src/org/htmlparser/: parserHelper/AttributeParser.java,
	parserHelper/SpecialHashtable.java, tags/Tag.java,
	tests/scannersTests/LabelScannerTest.java,
	tests/tagTests/FrameSetTagTest.java,
	tests/tagTests/FrameTagTest.java, tests/tagTests/InputTagTest.java,
	tests/tagTests/TagTest.java,
	tests/temporaryFailures/AttributeParserTest.java,
	tests/temporaryFailures/TagParserTest.java:

	Fixed bug #757337 Standalone attributes should remain standalone
	
	Changing to a HashMap was not adopted for two reasons. The first is that it would break Java 1.1.x
	compatibility (which I believe we still maintain, although I haven't checked lately), and using a HashMap
	would return the attributes in a different order, leading to a *lot* of broken tests that rely on toHTML()
	returning a specific string with attributes in a certain order (if I'm going to fix a bunch of tests I would
	like the attributes to come out in the order they were originally, so this will need an AttributeStorage class
	when the attribute parser is rewritten).
	
	The solution adopted is to subclass HashTable and store two special values, which are new constants in
	the Tag class.  For naive programs, and for backward compatibility, this SpecialHashtable class translates
	these constants into null and "" respectively, so the old behavior is the same.
	
	However, savvy programs, and the toHTML() method in the Tag class can call getRaw() on this hashtable
	to get at these special constants and behave appropriately. For this specific bug, toHTML returns the
	stand-alone attribute as is, but the missing value case is also handled.
	
2003-08-02 09:07  derrickoswald

	* src/org/htmlparser/tags/FormTag.java:

	Change name back to getFormTextareas.
	
2003-07-29 23:09  derrickoswald

	* src/org/htmlparser/tags/FormTag.java:

	Change name to getFormTextAreas for consistency.
	
2003-07-29 23:06  derrickoswald

	* src/org/htmlparser/: tags/FormTag.java, util/NodeList.java:

	Added recursive input and textarea harvesting to FormTag.
	
2003-07-29 19:24  derrickoswald

	* build.xml:

	Exclude lexer package, include third party libraries, don't build doc tars.

Integration Build 1.4 - 20030727
--------------------------------

2003-07-22 20:12  derrickoswald

	* build.xml:

	Use junit.jar and commons-logging.jar now found in lib/.
	
2003-07-16 22:14  jkerievsky

	* src/org/htmlparser/tests/utilTests/BeanTest.java:

	updated last test in StringBean, and disabled the test, as is doesn't pass right now
	
2003-07-16 21:49  derrickoswald

	* lib/: commons-logging.jar, junit.jar:

	Add needed libraries.
	
2003-07-16 21:42  derrickoswald

	* src/org/htmlparser/: lexer/Page.java, lexer/Source.java,
	lexer/Stream.java, tests/lexerTests/AllTests.java,
	tests/lexerTests/PageTests.java, tests/lexerTests/SourceTests.java,
	tests/lexerTests/StreamTests.java:

	Initial drop of new io subsystem.
	
2003-07-16 20:56  derrickoswald

	* src/org/htmlparser/tests/utilTests/BeanTest.java:

	More tests.
	testOutputWithPreAndScriptTags is now correct, I think.
	The overarching goal of StringBean is to return the text, and only the text, that a user would see in a browser. When I open this html in Netscape I see nothing:
	
	<body><pre>
	<script language=\"javascript\">
	if(navigator.appName.indexOf(\"Netscape\") != -1)
	 document.write ('xxx');
	else
	 document.write ('yyy');
	</script>
	</pre></body>
	
	That's what StringBean says too.
	
	Although this points out a flaw in the specification (such as it is, see the StringBean javadoc):
	
	 * Text within <SCRIPT></SCRIPT> tags is removed.
	 * The text within <PRE></PRE> tags is not altered.
	
	So what happens when there's both?
	The 'not altered' means, not collapsed, not that the HTML is returned literally.
	To test this out, see how Netscape handles:
	
	<body><pre>
	<b>Hello
	World</b>
	</pre></body>
	
	For me it shows:
	
	Hello
	World
	
	which means it consumes (and honours) the bold tags even though it is within <pre></pre>
	So the StringBean <pre> handling is correct, or so it seems.
	
	I guess that most questions can be answered by submitting it to a browser.
	
2003-07-16 16:05  jkerievsky

	* src/org/htmlparser/tests/utilTests/BeanTest.java:

	added some more BeanTests, including one that is Xed out, as I think it may uncover a bug
	
2003-07-15 20:17  derrickoswald

	* src/org/htmlparser/tests/utilTests/: AllTests.java,
	BeanTest.java:

	Add some StringBean tests for Joshua.
	
Integration Build 1.4 - 20030713
--------------------------------

2003-07-13 07:40  derrickoswald

	* docs/docs/: FrequentlyAskedQuestions.html, ImageExtraction.html,
	index.html, ParsingXml.html:

	update Wiki image
	
2003-07-13 07:31  derrickoswald

	* src/org/htmlparser/parserapplications/LinkExtractor.java:

	fix bug #765413 typo
	
2003-07-11 20:33  jkerievsky

	* src/org/htmlparser/: NodeReader.java, Parser.java,
	StringNode.java, StringNodeFactory.java,
	nodeDecorators/AbstractNodeDecorator.java,
	parserHelper/StringParser.java, scanners/ScriptScanner.java,
	tests/nodeDecoratorTests/DecodingNodeTest.java,
	tests/nodeDecoratorTests/EscapeCharacterRemovingNodeTest.java,
	tests/nodeDecoratorTests/NonBreakingSpaceConvertingNodeTest.java,
	util/NodeList.java:

	added more support for string node factory, fixed an error in the NodeArray class

Integration Build 1.4 - 20030629
--------------------------------

2003-06-28 11:47  derrickoswald

	* src/org/htmlparser/tests/scannersTests/TableScannerTest.java:

	Added testOverFlow().
	See bug #750117 StackOverFlow while Node-Iteration
	Not reproducible.
	May be a Windows thing.
	
2003-06-28 11:08  derrickoswald

	* src/org/htmlparser/: parserHelper/AttributeParser.java,
	tests/tagTests/ImageTagTest.java:

	Fix bug #755929 Empty string attr. value causes attr parsing to be stopped
	and bug #753012 IMG SRC not parsed v1.3 & v1.4
	There was a premature break in the attribute scanner on encountering an empty
	string value. A guard testing for an exhausted tokenizer was added.
	Added testEmptyStringElement() to ImageTagTest, although it could go anywhere really.
	
2003-06-28 10:31  derrickoswald

	* src/org/htmlparser/tests/tagTests/ImageTagTest.java:

	Add test for bug #753003 <IMG> within <A> missed when followed by <MAP>
	Not reproducible.
	
2003-06-26 17:55  jkerievsky

	* src/org/htmlparser/nodeDecorators/: AbstractNodeDecorator.java,
	DecodingNode.java, EscapeCharacterRemovingNode.java,
	NonBreakingSpaceConvertingNode.java:

	made an abstract class for the StringNode decorators
	
2003-06-25 01:07  jkerievsky

	* src/org/htmlparser/StringNode.java:

	[no log message]
	
2003-06-25 01:03  jkerievsky

	* src/org/htmlparser/: Parser.java, StringNode.java,
	nodeDecorators/NonBreakingSpaceConvertingNode.java,
	parserHelper/StringParser.java,
	tests/nodeDecoratorTests/AllTests.java,
	tests/nodeDecoratorTests/DecodingNodeTest.java,
	tests/nodeDecoratorTests/EscapeCharacterRemovingNodeTest.java,
	tests/nodeDecoratorTests/NonBreakingSpaceConvertingNodeTest.java:

	added non breaking space converting decorator
	
2003-06-24 23:56  jkerievsky

	* src/org/htmlparser/: DecodingNode.java,
	EscapeCharacterRemovingNode.java, StringNode.java,
	nodeDecorators/DecodingNode.java,
	nodeDecorators/EscapeCharacterRemovingNode.java,
	tests/AllTests.java, tests/DecodingNodeTest.java,
	tests/EscapeCharacterRemovingNodeTest.java,
	tests/nodeDecoratorTests/AllTests.java,
	tests/nodeDecoratorTests/DecodingNodeTest.java,
	tests/nodeDecoratorTests/EscapeCharacterRemovingNodeTest.java:

	moved node decorator code and tests to their own packages.
	
2003-06-24 23:46  jkerievsky

	* src/org/htmlparser/: DecodingNode.java,
	EscapeCharacterRemovingNode.java, Node.java, Parser.java,
	StringNode.java, parserHelper/CompositeTagScannerHelper.java,
	parserHelper/StringParser.java, scanners/AppletScanner.java,
	scanners/DoctypeScanner.java, scanners/JspScanner.java,
	tags/Tag.java, tests/DecodingNodeTest.java,
	tests/EscapeCharacterRemovingNodeTest.java,
	tests/ParserTestCase.java, visitors/HtmlPage.java:

	added EscapeRemovingNode decorator, remove lots of private methods and field that were never used in numerous classes
	
2003-06-24 19:59  jkerievsky

	* src/org/htmlparser/: DecodingNode.java, Node.java:

	[no log message]

Integration Build 1.4 - 20030622
--------------------------------

2003-06-19 13:24  jkerievsky
 
        * src/org/htmlparser/: AbstractNode.java, DecodingNode.java,
        Node.java, StringNode.java, parserHelper/StringParser.java,
        tests/DecodingNodeTest.java, util/Translate.java:
 
        added support for StringNode Decoration
 
2003-06-16 23:26  jkerievsky
 
        * src/org/htmlparser/: Node.java, Parser.java, StringNode.java,
        parserHelper/StringParser.java, tests/AllTests.java,
        tests/DecodingNodeTest.java:
 
        add setting for parser to perform the Translate.decode() on all StringNodes. This will later be refactored to a Decorator implementation.
 
2003-06-16 21:52  somik
 
        * src/org/htmlparser/tests/: parserHelperTests/AllTests.java,
        parserHelperTests/AttributeParserTest.java,
        parserHelperTests/TagParserTest.java,
        temporaryFailures/AttributeParserTest.java,
        temporaryFailures/TagParserTest.java:
 
        added temporaryFailures package
 
2003-06-16 21:38  somik
 
        * src/org/htmlparser/tags/Tag.java:
 
        new AttributeParser created every time attributes are to be parsed.
        Done to achieve thread-safety.
 
2003-06-16 21:35  somik
 
        * src/org/htmlparser/parserHelper/AttributeParser.java:
 
        refactored AttributeParser to be more readable
 
2003-06-16 21:33  somik
 
        * src/org/htmlparser/parserHelper/ScriptScannerHelper.java:
 
        added header
 
2003-06-16 21:32  somik
 
        * src/org/htmlparser/: parserHelper/ScriptScannerHelper.java,
        scanners/ScriptScanner.java:
 
        created ScriptScannerHelper to allow thread safety in ScriptScanner
 
2003-06-16 20:43  somik
 
        * src/org/htmlparser/scanners/ScriptScanner.java:
 
        updated scriptscanner header
 
2003-06-16 20:43  somik
 
        * src/org/htmlparser/: tests/scannersTests/ScriptScannerTest.java,
        scanners/ScriptScanner.java,
        tests/parserHelperTests/AttributeParserTest.java:
 
        fixed ScriptScanner failing tests..

2003-06-13 16:27  jkerievsky
 
        * src/org/htmlparser/: AbstractNode.java, Node.java,
        NodeReader.java, Parser.java, RemarkNode.java,
        RemarkNodeParser.java, StringNode.java,
        parserHelper/StringParser.java, parserHelper/TagParser.java,
        parserapplications/LinkExtractor.java,
        parserapplications/Robot.java, tests/ParserTest.java,
        tests/ParserTestCase.java,
        tests/scannersTests/FormScannerTest.java,
        tests/scannersTests/HeadScannerTest.java,
        tests/scannersTests/ImageScannerTest.java,
        tests/scannersTests/LabelScannerTest.java,
        tests/scannersTests/LinkScannerTest.java,
        tests/scannersTests/SpanScannerTest.java,
        tests/utilTests/NodeListTest.java, util/NodeList.java,
        visitors/ObjectFindingVisitor.java, scanners/TagScanner.java,
        tags/CompositeTag.java, tags/EndTag.java, tags/OptionTag.java,
        tags/Tag.java, tests/tagTests/BodyTagTest.java,
        tests/tagTests/FormTagTest.java,
        tests/tagTests/ObjectCollectionTest.java,
        tests/tagTests/TagTest.java:
 
        Renamed Node to AbstractNode, extracted the new interface, Node, and moved line separator code from AbstractNode to Parser.

Integration Build 1.4 - 20030601
--------------------------------

2003-05-31 13:48  derrickoswald

	* src/org/htmlparser/: tests/scannersTests/AllTests.java,
	tests/scannersTests/BulletListScannerTest.java,
	tests/scannersTests/FormScannerTest.java,
	tests/scannersTests/OptionTagScannerTest.java,
	tests/scannersTests/SelectTagScannerTest.java,
	tests/scannersTests/TextareaTagScannerTest.java,
	tests/tagTests/OptionTagTest.java,
	tests/tagTests/SelectTagTest.java, scanners/BulletListScanner.java,
	scanners/CompositeTagScanner.java, scanners/FormScanner.java,
	scanners/OptionTagScanner.java, scanners/SelectTagScanner.java,
	scanners/TextareaTagScanner.java, scanners/TitleScanner.java,
	tests/tagTests/TextareaTagTest.java:

	Fixed bug #745566 StackOverflowError on select with too many unclosed options.
	Replicated the missing end tag detection of the bullet list scanner into the form scanners.
	This isn't ideal, but it seems to work.
	
	Added test case testUnclosedOptions in FormScannerTest that reads
	http://htmlparser.sourceforge.net/test/overflowpage.html.
	Note: this test only failed on Windows, prior to the fix.
	
	Picked up missing scanner tests in AllTests.
	The HtmlTest file showed that title tags weren't being scanned, which I fixed with a kludge.
	
	Added order list types to BulletListScanner match tags.
	
2003-05-30 22:01  derrickoswald

	* src/org/htmlparser/parserHelper/ParserHelper.java:

	Fixed bug #744610 getLink() Erroneous for Relative Links from Files on Windows.
	Inserted the extra slash if needed.
	
2003-05-28 13:02  polarys

	* src/org/htmlparser/tests/scannersTests/ScriptScannerTest.java:

	Checking in some new tests for ScriptScanner, currently broken
	
2003-05-27 13:19  polarys

	* build.xml:

	Moving 'clean' into its own Ant target instead of built into htmlparser target
	
Integration Build 1.4 - 20030525
--------------------------------

This is the same as Release Build 1.3 except the default minor version is 4.

Release Build 1.3 - 20030525
--------------------------------
2003-05-25 15:30  derrickoswald

	* docs/docs/: CustomTagExtraction.html,
	FrequentlyAskedQuestions.html, PatternStories.html,
	TagFindingVisitor.html, WritingYourOwnScanners.html:

	Updated Wiki docs.
	
2003-05-25 14:58  derrickoswald

	* src/org/htmlparser/tests/utilTests/NodeListTest.java:

	Removed bogus assert in NodeListTest.
	
2003-05-25 09:12  derrickoswald

	* src/org/htmlparser/util/NodeList.java:

	Fixed off-by-one error in NodeList.remove().
	
2003-05-24 17:04  derrickoswald

	* src/org/htmlparser/: NodeReader.java,
	parserHelper/CompositeTagScannerHelper.java,
	parserHelper/StringParser.java, scanners/CompositeTagScanner.java,
	scanners/ScriptScanner.java,
	tests/parserHelperTests/CompositeTagScannerHelperTest.java,
	tests/scannersTests/ScriptScannerTest.java:

	Fixed bug #741769 ScriptScanner doesn't handle quoted </script> tags
	Major overhaul of ScriptScanner.
	It now uses the scan() method of CompositeTagScanner (i.e. doesn't override).
	CompositeTagScanner now has a balance_quotes member field that dictates
	whether strings tags are scanned honouring single and double quotes.
	This affected the call chain through NodeReader and StringScanner which
	now have this parameter.
	StringScanner now correctly handles quotes if asked. The ignoreState stuff is removed,
	it didn't work anyway since a single StringScanner is used recursively by the NodeReader,
	and the member field would have been tromped.
	Sorry to all those who have broken code because of this, but it's for the better. Really.
	
2003-05-24 06:15  derrickoswald

	* src/org/htmlparser/: tests/scannersTests/TableScannerTest.java,
	scanners/TableColumnScanner.java, scanners/TableRowScanner.java:

	Fixed bug #742254 Nested <TR> &<TD> tags should not be allowed.
	
2003-05-23 22:05  derrickoswald

	* src/org/htmlparser/tests/ParserTestCase.java:

	Correct a typo.
	
2003-05-21 20:36  polarys

	* src/org/htmlparser/: parserHelper/TagParser.java, tags/Tag.java:

	- Tag now remembers (in tagLines) *all* the lines spanned by the tag (not just the last one).
	- Tag now remembers line number on which tag starts (from TagData).
	- Tag now has new public methods:
	      int getTagStartLine()
	      int getTagEndLine()
	      String[] getTagLines()
	- TagParser now gives Tag (via constructor and setTagLine) sufficient info to support the above.
	
2003-05-21 08:00  derrickoswald

	* src/org/htmlparser/tests/tagTests/TagTest.java:

	See bug #740411 setParsed() has no effect on output.
	Seems to work in the current 1.3 code base.
	
2003-05-21 07:13  derrickoswald

	* src/org/htmlparser/tests/tagTests/TagTest.java:

	See bug #741026 registerScanners() mangles output HTML badly.
	Seems to work in the current 1.3 code base.
	
Integration Build 1.3 - 20030518
--------------------------------

2003-05-18 22:04  derrickoswald

	* build.xml:

	Reworked javadoc generation settings.
	
2003-05-18 10:31  derrickoswald

	* src/org/htmlparser/: tags/LinkTag.java,
	tests/tagTests/LinkTagTest.java:

	Fixed bug #738504 MailLink != HTTPLink.
	Added a testcase in LinkTagTest.
	
2003-05-18 09:50  derrickoswald

	* src/org/htmlparser/: tags/CompositeTag.java,
	util/SimpleNodeIterator.java:

	Make SimpleNodeIterator extend NodeIterator and provide elements() method for CompositeTag.
	As per request by Dhaval to rationalize (somewhat) the API.
	
2003-05-18 08:07  derrickoswald

	* src/org/htmlparser/scanners/package.html,
	src/org/htmlparser/tests/package.html,
	src/org/htmlparser/util/package.html,
	src/org/htmlparser/beans/BeanyBaby.java,
	src/org/htmlparser/beans/HTMLLinkBean.java,
	src/org/htmlparser/beans/HTMLTextBean.java,
	src/org/htmlparser/beans/LinkBean.java,
	src/org/htmlparser/beans/StringBean.java,
	src/org/htmlparser/beans/package.html,
	src/org/htmlparser/parserapplications/package.html,
	src/org/htmlparser/tags/package.html,
	src/org/htmlparser/tests/scannersTests/package.html,
	src/org/htmlparser/tests/tagTests/package.html,
	src/org/htmlparser/tests/utilTests/package.html,
	src/org/htmlparser/visitors/ObjectFindingVisitor.java,
	src/org/htmlparser/visitors/package.html, build.xml,
	docs/changes.html, docs/changes.txt, docs/release.txt,
	src/org/htmlparser/package.html,
	src/org/htmlparser/tests/visitorsTests/AllTests.java:

	Get all version tags up to date.
	Modify build.xml to keep package.html files up to date.
	
2003-05-18 07:23  derrickoswald

	* build.xml:

	Eliminate the build directory.
	
2003-05-18 05:41  derrickoswald

	* build.xml, cvs2cl.pl, src/org/htmlparser/Parser.java,
	src/org/htmlparser/parserapplications/MailRipper.java,
	src/org/htmlparser/parserapplications/Robot.java,
	src/org/htmlparser/tests/parserHelperTests/AttributeParserTest.java
	, src/org/htmlparser/tests/parserHelperTests/TagParserTest.java,
	src/org/htmlparser/tests/scannersTests/TableScannerTest.java:

	Provide for automatic changelog generation. A changeLog target was added to the build.xml file.
	The static version stuff in Parser was reworked to allow picking out the previous integration date.
	The getVersion() method was made static.
	The getVersionNumber() method was added to clean up some uglies.
	
2003-05-17 08:12  derrickoswald

	* src/org/htmlparser/: scanners/LinkScanner.java,
	scanners/TagScanner.java, tags/Tag.java,
	tests/tagTests/TagTest.java:

	Fix tab handling on the suggestion of oyoaha (philippe blanc).
	Rewrite some string handling methods to remove gross inefficiencies.
	
2003-05-16 07:38  derrickoswald

	* src/org/htmlparser/: Parser.java, scanners/BodyScanner.java,
	scanners/HeadScanner.java, tags/HeadTag.java,
	tests/scannersTests/AllTests.java,
	tests/scannersTests/BodyScannerTest.java,
	tests/scannersTests/HeadScannerTest.java:

	From Dhaval: Created the HEAD tag-scanner pair and corrected the BodyScanner.
	There were some mistakes after the redisgn that took place.

Integration Build 1.3 - 20030511
--------------------------------

2003-05-11 20:59  derrickoswald

	* docs/docs/index.html:
	
	Change the javadoc reference in the shipped documentation to reference local javadocs.

2003-05-11 16:42  derrickoswald

	* src/org/htmlparser/: Parser.java,
	tests/parserHelperTests/AttributeParserTest.java,
	tests/parserHelperTests/TagParserTest.java,
	tests/scannersTests/TableScannerTest.java:
	
	Moved pending bugs to the 'feature request' tracker,
	and made the failing unit tests execution conditional on the Parser version being >= 1.4.

2003-05-11 15:32  derrickoswald

	* src/org/htmlparser/tests/scannersTests/DivScannerTest.java:
	
	Added testcase for bug #735193 Explicit tag type recognition for CompositTags not working.

2003-05-11 00:48  derrickoswald

	* src/org/htmlparser/: tags/Tag.java, NodeReader.java,
	scanners/OptionTagScanner.java,
	tests/scannersTests/LabelScannerTest.java, util/NodeList.java,
	tests/tagTests/SelectTagTest.java:
	
	Fixed bug #735183 Problem in Label Scanning
	A NodeReader now prepends the pre-read tags onto the internal list,
	maintaining the correct order in recursively analysing unclosed tags.
	
	Also fixed OptionTagScanner tag enders.

2003-05-09 21:47  derrickoswald

	* src/org/htmlparser/: tests/tagTests/SelectTagTest.java,
	scanners/OptionTagScanner.java, tags/OptionTag.java,
	tests/scannersTests/OptionTagScannerTest.java,
	tests/scannersTests/SelectTagScannerTest.java,
	tests/tagTests/OptionTagTest.java:
	
	For Dhaval:
	I have converted the OptionTag to a composite tag. The problem that is present
	with Label tag exists here a well so my guess is that it is with CompositeTag
	itself. Once solved, all related problems will also get solved. In any
	case I have commented some test conditions in the OptionTagTest class. You can
	uncomment it and see it for yourself.
	Some SelectTag test cases are also changed as a result.

2003-05-09 21:22  derrickoswald

	* src/org/htmlparser/tests/scannersTests/LabelScannerTest.java:
	
	For Dhaval:
	New Test case.
	I added the LabelScanner to the parser the parsed. Strangely instead of
	returning node count as 13(number of LABEL tags) I get 17. Also when I see
	output of every node (using toHtml()), uptil "Microsoft Passport" everything is
	correct and I am getting LABEL tags as well. But the next node that I get is a
	String node with value as #alue="AOL"># (without the hash) and that entire tag
	got messed up. Any ideas. I have attached test file for that purpose. U'll also
	have to use the new LabelScanner.java file. Its quite strange.

2003-05-09 21:14  derrickoswald

	* src/org/htmlparser/: scanners/LabelScanner.java,
	tests/scannersTests/LabelScannerTest.java:
	
	For Dhaval:
	Changed code and test case for LabelScanner.
	Basically a string like <label>John Doe<label>Jane Doe</label>
	gets parsed as
	<LABEL>John Doe<LABEL>Jane Doe</LABEL></LABEL>
	instead of
	<LABEL>John Doe</LABEL><LABEL>Jane Doe</LABEL>
	after call to toHtml() on the single LabelTag.
	Also it is parsed as a single node instead of 2 distinct nodes.

2003-05-08 23:32  derrickoswald

	* docs/changes.txt:
	
	switch to cvs2cl mechanism

2003-05-07 18:00  derrickoswald

	* src/org/htmlparser/: tests/utilTests/NodeListTest.java,
	util/NodeList.java:
	
	added removeAll() to NodeList - Dhaval

2003-05-07 16:16  polarys

	* docs/changes.html, docs/changes.txt,
	src/org/htmlparser/scanners/ScriptScanner.java,
	src/org/htmlparser/tests/scannersTests/ScriptScannerTest.java:
	
	Fixed NPE in ScriptScanner when a script tag was not ended before the end of document

2003-05-06 07:37  derrickoswald

	* src/org/htmlparser/parserHelper/ParserHelper.java:
	
	Fix #732517 Paser(String) c'tor not handling relative path local file

2003-05-05 20:43  derrickoswald

	* src/org/htmlparser/: scanners/LabelScanner.java,
	scanners/SelectTagScanner.java, tags/SelectTag.java:
	
	nodelist modifications from Dhaval

Integration Build 1.3 - 20030504
--------------------------------
[1] Fixed bug #728609 - Stack Overflow error. Caused composite tag scanner 
	design to evolve further. Ul-Li scanner relationship can be interesting
	study model for designing other scanner relationships.
[2] Fixed bug #729334 NodeReader::readElement() Null point dereferenced
[3] Fixed bug #729368 Embedded quote and split tag
[4] Fixed bug #731684 Body and title tags with attributes not parsed
This will lead to a change in behaviour, BODY tags with attributes will now
have all the html body encapsulated within them as children. If you were
handling BODY tags as composite tags before, this shouldn't make any difference.

Integration Build 1.3 - 20030427
--------------------------------
[1] Fixed bug #722941 encoding not supported
[2] Update to build.xml to new naming scheme, clean up several javaDoc warnings
[3] Fixed bug #725420 NPE in StringBean.visitTag
[4] Fixed bug #717573 NullPointerException when unclosed HTML tag inside JSP tag
[5] Fixed bug #722870 OutOfMemory error
[6] Fixed bug #725374 NPE while parsing text
This will lead to a change in behavior, empty angle brackets are no longer returned
as nodes, i.e. "this text<> has angles" used to return three nodes now returns one
[7] Fixed bug #725376 StringIndexOutOfBounds Exception
[8] Added setText() to StringNode to ameliorate bug #726913 toHtml() method incomplete
[9] Removed deprecated method nextHTMLNode() from NodeIterator
[10] Removed unused vector in FormScanner
[11] Added getChildren() to CompositeTag
[12] Added BulletListScanner
[13] Modified CompositeTagScanner scanning mechanism, to allow for 
	end tag lists

Integration Build 1.3 - 20030420
--------------------------------
[1] Fixed bug #722046 StringExtractor.extractStrings misses most of the text,
    change to use a StringBean to dig into tables.
[2] add checking in Translate to eliminate bug #722835 StringIndexOutOfBoundsException exception
[3] added line-break condition in assertXmlEquals
[4] added fit testing framework
[5] added parent association for each node
[6] added digupStringNode() and findPositionOf(Node) to CompositeTag
[7] Fixed bug 723835 in LinkExtractor

Integration Build 1.3 - 20030413
--------------------------------
[1] reimplement StringBean as NodeVisitor, testStringBeanListener now succeeds
[2] Implemented feature request 702541 (Tags created by CompositeTagScanner
    now have startLine and endLine information in their TagData)
[3] Modified ScriptScanner to allow for subclassing and fixed minor bug
[4] Re-architected CompositeTagScanner
[5] Fixed Tag scanning bugs, OOM exceptions connected to #4

Integration Build 1.3 - 20030405
--------------------------------
[1] Fixed bug 712888 (scanning nested custom tags)
[2] Redesigned assertXmlEquals()
[3] Fixed bug in Parser.removeScanner()
[4] Fixed unnecessary addition of ACTION attribute in Form tag
[5] Fixed Bullet scanner out of memory exception
[6] Replaced scanner HashTable with Map

Integration Build 1.3 - 20030330
--------------------------------
[1] fixed bug (an enhancement really) 694477 quotes in content-type header
[2] fix bug #699886 and #707447 by using a buffered stream reader with infinite mark
[3] fixed bug in CompositeTagScanner, filter not being set correctly
[4] fixed thread safety issue in TagParser (bug 711073)
[5] fixed out of memory error when parsing custom composite tags (bug 709152)
[6] fixed bug 701159, 696455 - redesigned script scanner. 
	Javascript parsing is now much more robust.

Integration build 1.3 - 20030323
--------------------------------
[1] Fixed bug 702547 - single quotes 
	parsed more robustly now
[2] Fixed bug 702614 - empty tags handled correctly now.
	Tag now has a method isEmptyXmlTag().

Integration build 1.3 - 20030316
--------------------------------
[1] Added method finishedParsing() to NodeVisitor
[2] LinkScanner uses CompositeTagScanner.scan()
[3] BulletScanner added
[4] FormScanner uses CompositeTagScanner.scan()
[5] AppletScanner uses CompositeTagScanner.scan()

Integration build 1.3 - 20030302
--------------------------------
[1] Fixed bug in LinkScanner
[2] Cleaned up StringNode interface
[3] Cleaned up RemarkNode interface
[4] Refactored Parser, created ParserHelper

Integration build 1.3 - 20030223
--------------------------------
[1] Modification of documentation packaging
	- the new documentation is actually produced
	by a tiny program that coverts wiki pages
	into documentation (works with PhpWiki)
[2] Inclusion of BodyScanner, BodyTag
[3] HTMLVisitor is now NodeVisitor - and has an extra param to 
	visit itself
[4] HTMLParser is now Parser. No class has HTML prefix anymore.
[5] HTMLEnumeration is now NodeIterator, SimpleEnumeration is SimpleIterator

Integration build 1.3 - 20030215
--------------------------------
[1] Added HtmlScanner
[2] Removed Table, Div and Span from registry of scanners,
	can still be added individually
[3] Reference test directory of project home page to maybe cure some sporadic errors in BeanTest.
[4] Added setAttribute method
[5] Cleaned up HTMLNode interface (removed TYPE, getType() and print())

Integration build 1.3 - 20030202
--------------------------------
[1] Renamed HTMLCompositeTagScanner to CompositeTagScanner
[2] Renamed HTMLTag.getParameter() to HTMLTag.getAttribute()
[3] Added TableScanner
[4] Added HtmlPage
[5] Added SpanScanner
[6] Added assertType in HTMLParserTestCase
[7] Added TextExtractingVisitor
[8] Added non-recursive visiting (flag in HTMLVisitor)
[9] Added DivScanner
[10] Modified collectInto to use NodeList
[11] Added collectInto(NodeList, Class)
[12] CompositeTagScanner can handle single xml-like tags e.g. <div/>
[13] Fixed bug 678969 - StringParser was not going into ignore mode on
encountering double quotes
[14] Added LabelScanner

Integration build 1.3 - 20030125
--------------------------------
[1] HTMLCompositeTagScanner now takes an array of match strings
[2] toHTML(HTMLRenderer ...) was replaced by UrlModifyingVisitor
[3] Fixed NullPointerException in HTMLScriptTag.toString()
[4] Fixed bug in HTMLStringNode (breaking up empty lines into seperate string nodes)
[5] Fixed thread safety issue and introduced parser helpers
[6] Fixed bug 664404 - spewing incorrect line breaks in HTMLRemarkNode.toHTML()
[7] Added assertXmlEquals() in HTMLParserTestCase
[8] Added better option tag support
[9] Replaced instanceof with getType() mechanism - much faster
[10] Incorporated NodeList instead of Vector in HTMLCompositeTag
[11] Added HTMLRemarkNode support in Visitor
[12] Fixed bug 673379 (infinite loop on encountering links like ".someurl.html")

Integration build 1.3 - 20030112
--------------------------------
[1] Assume charset is correct for JVM's without Charset class to check it
[2] Beanize the parser
[3] Switch to swingui junit runner by default
[4] Half baked beans
[5] Fix javadoc warnings in JDK 1.4
[6] Added StringFindingVisitor + test code + new visitors packages
[7] Fixed bug 659723, but HTMLStringNode is not thread-safe anymore.
[8] JDK 1.2 compilability
[9] Modified HTMLEnumeration interface (made less verbose)
[10] Added HTMLCompositeTagScanner
[11] Refactored following scanners to use HTMLCompositeTagScanner :
	(i) HTMLStyleScnner 
	(ii) HTMLSelectScanner 
	(iii) HTMLFrameSetScanner
	(iv) HTMLTitleScanner
	(v) HTMLTextAreaScanner
	(vi) HTMLScriptScanner
	(vii) HTMLFrameSetScanner

[12] Made StringNode the last parse attempt, so now Reader trys in this order:
    remark
    tag
    endtag
    string
  (this will return more HTMLStringNode objects than it did before).
[13] Improve speed by performing tag/string triage based on '<' as next character.
[14] Refactored HTMLTagScanner. The following scanners use refactored code:
	(i) HTMLBaseHREFScanner
	(ii) HTMLDoctypeScanner
	(iii) HTMLFrameScanner
	(iv) HTMLJspScanner
	(v) HTMLMetaTagScanner
		
Integration build 1.3 - 20021228
--------------------------------
[1] Add URLConnection constructors to HTMLParser
[2] Honour charset parameter on HTTP header and in HTML meta tag
[3] Following tags now inherit from HTMLCompositeTag
	(i) HTMLFormTag 
	(ii) HTMLLinkTag
	(iii) HTMLSelectTag
	(iv) HTMLFrameSetTag 
	(v) HTMLTitleTag
	(vi) HTMLTextAreaTag 
	(vii) HTMLStyleTag
	(viii) HTMLScriptTag
	(ix) HTMLAppletTag
[4] Performed Refactoring "Introduce Parameter Object" on HTMLTag, 
	HTMLCompositeTag, HTMLLinkTag, HTMLFormTag
[5] Refactored HTMLFormTag, pulling up the search methods into HTMLCompositeTag
[6] Added HTMLVector, which can return HTMLSimpleEnumeration - a no-exception
	flavor of HTMLEnumeration
[7] Refactored HTMLEnumeration - created new interface - HTMLPeekingEnumeration
	
Production Release 1.2
----------------------
[1] Rewrote HTMLLinkProcessor.extract() so URL class does all the heavy lifting
[2] Partially fixed bug 654746 - HTMLLinkScanner error, code review needed
[3] Rendering bug fixed - allowing uniform rendering for links and images
[4] Fixed bug 655917, made HTMLParameterParser.parseParameters() thread-safe
[5] Refactored HTMLFormTag (introduced POST and GET static members)
[6] Bug fixed in HTMLFormTag.getInputTag() (NullPointerException when input tag has no name)
[7] Added ability to get textarea tag from HTMLFormTag.
[8] Added search capability in HTMLFormTag
[9] Fixed bug 655627 - JSP tags with < sign (for loops) were not being parsed correctly
[10] Fixed bug 655603 - JSP tags within src of script not recognized correctly when using 
	 single apostrophes
[11] Fixed bug 655580 - JSP tags within title tags not recognized correctly
[12] Fixed bug 655599 - Erroneous end-of-line characters were being added in string nodes
[13] Fixed bug 656870 - HTMLFormScanner goes into infinite loop if a previous link has not been closed

Integration Build 1.2 - 20021215
--------------------------------
[1] Modified API of HTMLImageTag (refactored name of image loc), HTMLLinkTag (added getters)
[2] Fixed bug 650457 - removeEscapeCharacters() incorrect
[3] Fixed bug 652263 - HTMLParser and null feedback
[4] Changed encoding used from 8859_4 to 8859_1
[5] HTMLRemarkNode returns string data in toPlainTextString() (This is a rollback)
[6] Fixed bug 652746 - HTMLFormTag gets links correctly now
[7] Fixed bug 653720 - HTMLNode uses sun specific class
[8] Improved StringExtractor parser application
[9] Major design improvement, implemented Collection-Parameter pattern - in HTMLNode.collectInto()
[10] Fixed reset crash bug. Reader providers have to explicitly call mark and reset now. This is 
     now documented in HTMLParser.java.
[11] Fixed bug 649269 in HTMLLinkTag.isHttpLink(), now correctly identifies relative links as Http
	 links.

Integration Build 1.2 - 20021208
--------------------------------
[1] Fixed bug in base href scanner - would always expect href
[2] Refactored HTMLFormScanner
[3] Refactored HTMLRenderer to use the Visitor pattern- enabling
connections with links and images
[4] HTMLStringNode returns a blank string in toPlainTextString()
[5] HTMLFormTag returns string information in toPlainTextString()

Integration Build 1.2 - 20021201
--------------------------------
[1] Refactored HTMLNode, API improved, now HTMLNode stores
nodeBegin and nodeEnd.
[2] Refactored Testing framework - to reduce the code size substantially.
[3] HTMLFormScanner improved to include Input,TextArea, Select and Option scanners within

Integration Build 1.2 - 20021125
--------------------------------
[1] Incorporated Bug Fix for HTMLLinkProcessor to parse dynamic urls
[2] Refactored package names to org.htmlparser
[3] Added documentation
[4] Can handle url with spaces in it
[5] Fixed bug 643352 - going into infinite loop on bad img within link
[6] Refactored HTMLLinkTag - unnecessary boolean variables removed

Integration Build 1.2 - 20021109
--------------------------------
[1] Updated javadoc
[2] Added support for multiple calls to elements() [sequentially, not parallelly]

Integration Build 1.2 - 20021031
--------------------------------
[1] Changed string creation to static strings in HTMLTagParser
[2] HTMLLinkProcessor can handle urls beginning with file:// (bug fix - 629601)
[3] All scanners get the feedback object initialized from HTMLParser
[4] Fixed bug 624045 (in HTMLParameterParser) - erroneous space key removed
[5] Added HTMLRenderer and external rendering support in HTMLNode.
[6] Line no and details incorporated for feedback and exceptions
[7] HTMLLinkProcessor: "javascript:" recognition
[8] HTMLLinkScanner: added flags for javascript, ftp, http, https
[9] HTMLLinkTag: constructor for new flags, methods isJavascriptLink, setJavascriptLink, etc...

Integration Build 1.2 - 20021016
--------------------------------
[1] Fixed bug 621117 - JSP tags not recognized if within string node
[2] Fixed bug 617228 - Links with > symbol in query strings were not
being recognized.
[3] build.xml completely automatic - no manual changes needed before running
[4] build.xml included in release package, inside src.zip
[5] Refactored HTMLTag - design modified, introduced HTMLTagParser helper class
[6] Optimized scanning process - 20% faster now

Integration Build 1.2 - 20021002
--------------------------------
[1] Bug fixed in HTMLStyleScanner, allowing attributes to show
in style tag
[2] HTMLFormTag bug fixed - allows changing of internal form attributes,
and is reflected in toHTML()
[3] HTMLFormScanner included in lineup of standard scanners
[4] Added default parser feedback object constructor in HTMLParser
[5] Only single LinkProcessor object created now for link and image 
scanners - leading to better performance
[6] Added Base Ref Scanner - relative links to this can be handled
for both standard links and image locations

Integration Build 1.2 - 20020831
--------------------------------
[1] API integrated with HTMLParserFeedback
[2] End-of-line string integration completed

Integration Build 1.2 - 20020826
--------------------------------
[1] Added new tag-scanner pairs for the following tags:
(i) INPUT
(ii) TEXTAREA
(iii) OPTION
(iv) SELECT
[2] The newline character being used in toHTML() was different across
different tags and also in some cases in scan() methods of scanners. It
has been changed to pick up the system property "line.separator" from
the JVM environment and that is used in toHTML() as well as scan().
Alternatively, users can set their own line separators using
HTMLParser.setLineSeparator() or HTMLNode.setLineSeparator(). Both have
the same effect.
[3] Fixed HTMLRemarkNode bugs (594301)

Integration Build 1.2 - 20020811
--------------------------------
[1] Fixed bug 590703 - Empty values dont get parsed 
[2] Fixed bug 591435 - Missing values cause keys to be missed
[3] Removed all infinite loops in scanners, replaced with throwing HTMLParserException
[4] Fixed bug in HTMLTitleScanner, allowing certain malformed title tags to be parsed
[5] Modified HTMLReader - now accepts Reader instead of BufferedReader
[6] HTMLParser constructor now throws HTMLParserException.
[7] Fixed bug 592355 - Empty tags throw exceptions from some scanners. Now, if the 
tag is empty, it is not passed down to scanners. Also, fixed the related issue in 
HTMLStringNode, causing empty tags to be treated as tags and not strings.

Integration Build 1.2 - 20020804
--------------------------------
[1] Fixed bug 590250, problem in HTMLStringNode, by which a single
character on the last line was causing a parser crash
[2] Optimized and refactored HTMLParameterParaser.parseParameters()
[3] Modified PerformanceTest to exclude first reading in average computation
[4] Fixed bug in HTMLParameterParser.parseParameters(), due to which
params with spaces before = were not being picked up
[5] Made massive API changes - throwing exceptions and using HTMLEnumeration
[6] Fixed HTMLRemarkNode bug - we can recognize stuff like <!--> now.
[7] Fixed HTMLImageScanner bug - we can now fix image tags like
IMG SRC"somepic.jpg" - the missing equal to can be deduced
[8] Fixed HTMLLinkScanner bug - end tags within a link were not being included
inside the link data.

Integration Build 1.2 - 20020728
--------------------------------
[1] Fixed bug in HTMLParser.openConnection(), mistaking 
files for urls if they contain "http" or "www" anywhere.
[2] Updated HTMLEndTag, this was accidentally left out in the 
previous release.
[3] Fixed Bug 586062 - relative links bug - if first char is a 
slash, then the subdirectories of the url need to be ignored.
[4] Fixed Bug 586222 - HTMLRemarkNode bug - if a line with a remark 
ndoe contains a string before it, the string is ignored.
[5] Fixed major bug - allowing auto-correction
of malformed tags. Current code is very robust. Fix allowed removal of 
strictness vector concept, making the design simpler.
[6] Fixed bug 586756 - in HTMLRemarkNode, if there are empty lines only, the 
finite state machine would crash

Integration Build 1.2 - 20020721
--------------------------------
[1] Fixed HTMLStringNode bug, whereby it wasnt able to 
skip some wierd Microsoft tags (endif)
[2] Fixed a deep bug in HTMLTag.java, the parser would crash
on http://www.cybergeo.presse.fr/culture/weili/weili.htm
[3] Fixed bug in HTMLTagScanner.java, in absorbLeadingBlanks()
[4] Fixed bug in HTMLEndTag, allowing more robustness now in 
scanning malformed end tags

Integration Build 1.2 - 20020707
--------------------------------
[1] Fixed major slowdown bug in HTMLStringNode.find().
This version is twice as fast as ver 1.1.
[2] Fixed bug in ScriptScanner, would break on incorrect
html inside script code. 
[3] Removed FormScanner from standard registered scanners
as it has a bug in parsing non-ended forms (infinite loop).

Integration Build 1.2 - 20020630
--------------------------------
[1] Fixed bug in linking of meta and title tags
with their scanners
[2] Fixed bug in parsing broken tags
[3] Refactored design - scan() returns a HTMLTag now, 
and is called inside a template method createScannedNode()
inside HTMLTagScanner. Scanner designers dont have to
worry about making links with the scanner and the tag
created, and forcing of attribute parsing. HTMLEndTag
is now a HTMLTag, hence there is more uniformity in the interface now.
[4] Fixed bug in HTMLLinkScanner, enabling it to 
parse broken links.
[5] Title Tags linked to -T instead of -t (clashing earlier with style tags)

Integration Build 1.2 - 20020623
--------------------------------
[1] Refactored HTMLAppletScanner
[2] Refactored HTMLScriptScanner
[3] Added testcases for script scanner
[4] Refactored HTMLTagScanner (removed extractField)
[5] Fixed bug in HTMLLinkScanner - would crash on freshmeat.net,
bcos of <a>Revision</a>. Now this is being treated as three
seperate nodes(tag, string node, end tag)
[6] Fixed ant script bug, not allowing it to be run from the command
line by issuing the ant command.
[7] Redesigned HTMLFormScanner, testcases written, included in package
[8] Refactored HTMLImageScanner evaluate() method to be more optimized
[9] Redesigned HTMLFrameScanner, testcases written, also written 
HTMLFrameSetScanner.
[10] Fixed bug in HTMLTag, now parseParameters is automatically
called only once, when either getParsed(), or getParameter() is invoked.
[11] toRawString() renamed to toHTML() - intention revealing name

Integration Build 1.2 - 20020616
--------------------------------
[1] Fixed multiple line bug (reported by Gordon Deudney).
HTMLStringNode now scans a complete string block, instead
of producing string node objects per line.
[2] Refactored HTMLScriptScanner, code size reduced, made
consistent with design

Integration Build 1.2 - 20020607
--------------------------------
Incorporated bug fixes by Wolfgang Germund
In HTMLScriptScanner - the html extracted with toRawString
did not mirror the actual html data.

Integration Build 1.2 - 20020512
--------------------------------
[1] Made Link Scanner more fault tolerant.
Can handle bad links like
<A HREF="..."><IMG></td><td ...><A href="..">...</a>

In the above, the first link is correctly ended before</td>

<A HREF="..."><IMG><A HREF="...">...</a>

The first link is correctly ended before the second link begins

[2] Bug in HTMLLinkProcessor fixed. Relative links were spuriously
identified even if they used a non-http protocol (like ftp, gopher).

Nightly Build 1.2 - 20020507
----------------------------
[1] HTMLNode is no longer an interface, but an abstract class. There were two reasons for this change. Firstly, I couldnt think of a scenario where an object would be an html tag AND something else. Secondly, I wanted to enforce the implementation of toString(), which is usually done if you implement from the interface (as Object has a default toString()).
[2] abstract toString() method - children have to implement this.
[3] print() and print(PrintWriter) - final methods. They will make a call to toString(), and print to standard output and the print writer respectively.
[4] toPlainText() - this method will provide a string representation of a tag, if there is such a representation. If not , a blank string is returned. This has implications - our program to extract all strings from a html page will be simplified to:
[5] toRawString() - this method provides the complete html element (a reconstruction), thus allowing ripping programs to be really simple. So if you want to rip the html page to your local hard disk, your program would look like,
[6] Lots of bug fixes done - HTMLImageScanner had a bug, HTMLStyleScanner also had one - all caught with more testcases.

Nightly Build 1.2 - 20020503
----------------------------
[1] Major fix - Dirty parsing of erroneous inverted commas possible
[2] Tags spread out on multiple lines, with blank lines in between are supported
[3] Bug in HTMLStringNode fixed, so as to be able to parse tag characters < and >
[4] Image tag parameters not being retrieved, bug fixed
[5] Added HTMLFormScanner, HTMLFrameScanner, HTMLFormTag, HTMLFrameTag - but these
are not yet integrated with the code, pending testcases.

Production Release ver 1.1
--------------------------
[1] Added META and TITLE tag scanners
[2] Fixed spaces bug in HTMLLinkScanner and HTMLImageScanner. The parser
now supports links or urls with spaces in them. Functionality
modification - HTMLTag no longer absorbs spaces. It reports data as is,
and leaves the responsibility of processing to the particular scanner.
[3] Fixed XML parsing bug - isXMLTagFound() in HTMLTagScanner - it no longer checks for equality,
but for the beginning of an xml tag
[4] HTMLTag bug - if a link is spread over two lines, the parser would crash.
[5] Dynamic Page Parsing supported (urls need not end with .html anymore)
[6] Dirty HTML of the form <A HREF="http://www.somelink.com">abcd<A>, is now correctly 
handled. The second <A> is taken as </A>.

Maintenance Release ver 1.04
----------------------------
[1] Bug fix in HTMLTag, now caught by test case in HTMLTagTest. Will cause incorrect parsing for JSP tags, which have end tag symbols in inverted commas. 
[2] Bug fix in HTMLLinkParser - would crash for link tags which have no link in them. Test case also added. 
[3] More test cases added, for ImageTag as well, and HTMLTag also. 

Maintenance Release ver 1.03
----------------------------
This version contains the following bug fix :
[1] Bug in HTMLRemarkNode, now caught by test case in HTMLRemarkNodeTest. Will cause incorrect parsing if remarks are spread across lines.

Maintenance Release ver 1.02
----------------------------
This version contains the following bug fixes :
[1] Bug in HTMLStyleScanner, now caught by test case in HTMLStyleScannerTest - would end up crashing on parsing google.
[2] Changed encoding support to 8859_4 for English and most European languages - this fixes some crashes observed on Finnish pages

Maintenance Release ver 1.01
----------------------------
This version contains the following bug fix :
[1] Bug in HTMLStyleScanner, now caught by test case in HTMLStyleScannerTest - would end up crashing on standard style tags

Rel - ver 1.00
--------------
This version contains :
[1] Major architecture overhaul - significant change : no more static scanner registration. Architecture has been simplified a lot.
[2] Major bug fixes - several bugs have been fixed, lots of testcases added, and stability vastly improved.
[3] Improved documentation - The javadoc is now substantial. Please look at the javadoc for the HTMLParser class, especially the elements() method. This has a lot of info to get you started.

From this release, HTML Parser enters the beta stage (Alpha stage is finally over - phew!). From now on, the API will not be changed significantly, and future releases would be of a maintenance nature.

Rel 0.98
--------
This version contains :
[1] Improvements - replacements of String by StringBuffer (by Nash Tsai)
[2] Bug fix in HTMLReader (by Kaarle Kaila)
[3] Addition of mailto support in HTMLLinkScanner
[4] Addition of applications - MailRipper and Robot - to demonstrate usage of HTMLParser

Rel 0.97
--------
Bugs fixed : 
[1] HTMLStyleTag : Extra tagBegin, tagEnd present, instead of using parent's fields.
[2] HTMLLinkScanner : Scanning of URLs with a slash in the end of the base url, and a slash in the beginning of a link, 
would result in two slashes in the generated link
[3] Null Pointer Exception caused by HTMLLinkScanner, when tags beginning with A are wrongly identified as link tags.
[4] HTMLScriptScanner parsing bug, if </script> is in the same line as <script>, it isnt correctly parsed and gives
a null pointer exception
[5] HTMLImageScanner bug : When parsing images without inverted commas, it crashes.
[6] HTMLLinkScanner Bug : When parsing links without inverted commas in href, it crashes.
[7] HTMLLinkScanner Bug : When parsing links which contain images in them, it doesent recognize images. Modified now to recognize images and text uniformly.

Thanks to Roger Kjensrud for pointing out important bugs.

Rel 0.96
--------
This version has some major architecture improvements.
Modifications :

(1) HTMLJspTag and HTMLDoctypeTag now use the HTMLTag architecture to register scanners.
(2) HTMLParser has a new constructor to register an external HTMLReader. This allows the
writing of powerful testcases.
(3) HTMLAppletTag and HTMLAppletTagScanner introduced
(4) Packages introduced for better management of classes

Bugs Fixed :

(1) Bug in parsing StringNode fixed
(2) Relative Link bug fixed (resoultion of .. in the links or images)
(3) Miscallaneous parsing bugs fixed

Thanks to Manpreet Singh for pointing out important bugs.

Rel 0.94
--------
Additions :

(1) Recognition of style code. 

Bugs fixed :
(1) Javascript parsing bug
(2) RemarkTag parsing bug
(3) Declaration Tag parsing bug

Rel 0.9
-------
Additions :

(1) Recognition of Javascript code. Pages with javascript can now be parsed correctly.
(2) Basic tests introduced in the package com.kizna.htmlTests
(3) Documentation improved a bit
(4) Complete packaging in one zip file instead of many seperate files

Rel 0.82
--------
Bugs fixed :
(1) Bug in HTMLDecTag
(2) Bug in HTMLLinkReader
These were causing the parsing to crash when tried with websites like http://www.google.com. This has been corrected now.
