TransforMiiX (TM)
(C) Copyright 1999, 2000, The MITRE Corporation, Keith Visco, et al. All rights reserved.

Note: The changes listed here mainly reflect the core XSLT processor and
      the standalone version.

Build 20000906

-- Fixed UTF8 bug
   - reported by Steve Tinney (stinney@sas.upenn.edu)

-- Updated Expat for standalone version

Build 20000725

-- Windows Makefiles are up to date to create Mozilla module
   - thanx to Arthur Barrett and Justin Smith

Build 20000722

-- Fixed leading + trailing whitspace when printing comments
   - reported by Jeff Bailey

-- Fixed bug in ExprLexer caused by a previous patch
   - The prevToken was being set to NULL, in cases when
     it shouldn't have been
   - discovered when looking for an error reported by
     Bernhard Zwischenbrugger

Build 20000618

-- Added changes from Olivier Gerardin for improved
   handling of template parameters

Build 20000523

-- Added fix from Marc Schefer regarding OR expressions
   - If the left hand expression was false...the right
     hand expression was not evaluated (which should
     only happen if the expression is an AND expr).

-- Added support for document() function
   - implemented by Olivier Gerardin
   - The second argument to the function is not yet supported

-- Added support for lang() function
   - implemented by Marina Mechtcherikova

-- Fixed bug with doing xsl:copy-of on a document node.
   - reported by Olivier Gerardin


Build 20000420

-- Fixed document base issue with transfromiix.cpp (Nathan)
   - When an XSLT stylesheet is specified on the command line
     the document base was still defaulting to the XML document,
     instead of the stylesheet

-- Fixed bug in namespace-uri() function [NodeSetFunctionCall.cpp] - Marina
   - If an expression was passed as an argument to the function,
     which evaluated to an empty NodeSet, the context node was being
     used, which is incorrect. We now just return an empty string.

-- Fixed bug in PathExpr::matches (Marina)
   - expressions such as "foo//bar" would not always match
     properly if more than one node existed in the final
     set of "matching context nodes" (so basically if foo
     was not the root element).


Build 20000419

-- Added the generate-id function
-- Added XPath Extension Function support

Build 20000413

-- Added some bug fixes from Marina
   -- fixed parsing of multiple predicates
   -- added support to handle attribute-set recursion
   -- added appropriate calls to handle use-attribute-sets on xsl:copy

Build 20000412

-- Fixed the following Axes names in Names.cpp so that
   the are compatible with the XSLT 1.0 recommendation (Marina)
   -- FOLLOWING_SIBLING_AXIS - removed the trailing s
   -- PRECEDING_SIBLING_AXIS - removed the trailing s

-- Added support for xsl:sort (kvisco)
   -- simple sorting is working...documentation to follow
-- Added StringComparator and DefaultStringComparator
   -- we need some more comparators for I18N support
-- Did some directory structure changes
   - source/xsl is now source/xslt
   - source/xsl/expr is now source/xpath
-- Changed xslt/XSLProcessor.* to XSLTProcessor.*

-- Incorporated some changes from Olivier Gerardin for the Expat parser

Build 20000331

-- Fixed a memory leak with translate() function (kvisco)
   -- StringFunctionCall.cpp
-- Updated the necessary source files to support the changes to
   the String class (kvisco)
-- Overloaded String::toCharArray to automatically create the
   character array (tomk)
-- Changed String::toChar to String::toCharArray (tomk)


Build 20000327
-- Fixed "dot" bug in CNAME parsing (ExprLexer.cpp) reported by Nathan Pride

Build 20000326
-- Added Peter Van der Beken's changes to net/URIUtils for integration
   within Mozilla

-- Added Marina Mechtcheriakova's changes to xml/parser/XMLParser.cpp to fix
   a Unicode bug in ::startElement. Instead of improperly casting char*
   as DOM_CHAR*, the proper String constructor, String(char*) is used

Build 20000322
-- Added Unicode bug fix from Lidong

Build 20000318
-- Added Olivier's implementation of the XPath Number functions
-- Added missing prototype to TxString.h (Peter Van der Beken)

Build 20000222
-- Added Attribute parent mapping since DOM 1.0 doesn't support it
-- Added default sorting of NodeSet by DocumentOrder
   -- yes this is a hint that xsl:sort is will be available soon

Build 20000218
-- Fixed bug reported by Thiery Le Bouil, xsl:param was getting
   processed, and then treated as a literal element

Build 20000217

-- Changed StringList#iterator to return a pointer instead of a reference
-- Added patches from Eric Du for FreeBSD, sorry for the delay in committing these

Build 20000216

-- Fixed bug with using wildcards directly after the parent operator, such as "/*"
-- Fixed bug with PredicateList#isEmpty which was returning the opposite of the
   expected value.
   -- this also caused default priorities to be incorrectly calculated.

Build 19991110
-- fixed bug with PathExpr and LocationStep with respect
   to the ::match method
   -- problem reported by Oblix
-- Added support for xsl:include (only file URLs will work)
-- fixed the built-in xsl:apply-templates rule to handle text nodes
-- moved code base to Linux platform for default development environment

Build 19990818
-- Added very simple support for xsl:number
-- Added support for xsl:with-param
-- Added more XPath support
   -- added operator precedence
   -- added and, or, <,<=,>=,>


Build 19990816
-- Changed focus from 19990709 to 19990813 XSLT Working Draft
-- Made some changes for Borland C compatibility
   -- submitted by Stefan Heesch
-- added xsl:copy-of
-- fixed a bug with DOM Element, to allow DocumentFragments as children

Build 19990813
-- added new example: identity.xml/xsl which tests:
   -- xsl:copy, node()
-- added comment(), pi(), and node()
   -- XMLParser still needs to handle reading in XML comments
-- added xsl:copy
-- added xsl:processing-instruction
-- added xsl:comment

Build 19990812
-- Created base/Double.cpp  (primitives.h)
   -- Based off some code submitted by Larry Fitzpatrick, changed Name from
     FloatPort to Double, I wanted to add more Double related methods
     -- changed the NaN() method to just a static double
     -- All expr classes now use Double::isNaN() and Double::NaN
     -- I added Double::isInfinite, Double::POSITIVE_INFINITY and
       Double::NEGATIVE_INFINITY
-- Added base/Integer.cpp back into Makefile
   -- added Integer::toString(int,String);
   -- changed implementation
-- Moved code to convert from Strings to doubles and from doubles to Strings
   into the Double class
-- removed testdom.cpp from xml/dom
-- Added more changes from Larry Fitzpatrick and Michele Lee for
   porting issues
   -- added appropriate return values for:
      -- xml/dom/Element.cpp
      -- xml/dom/NodeDefinition.cpp
      -- base/StringList.cpp
      -- xsl/expr/PredicateList.cpp
-- Added remaining String Function Calls
   -- substring(), substring-after(), substring-before(), translate(),
      string-length()


Build 19990810
-- Added most of the Whitespace handling
-- Added ErrorObserver interface
   -- ErrorObserver is now used throughout most of the code
-- Added SimpleErrorObserver implementation of ErrorObserver
-- Moved main() method from XSLProcessor.cpp to tranformiix.cpp
-- Added the following XPath functions:
   -- local-part(), name(), namespace()
   -- see functions.xml/functions.xsl for available functions

Build 19990806
-- Incoporated Changes From Larry Fitzpatrick
-- Added more XPath functions
   -- last(), count(), string(), contains(), starts-with(), concat()
   -- see functions.xml/functions.xsl for available functions
-- Added xsl:text support


