+2004-07-29 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathNavigator.cs : Implemented ReadSubtree().
+
+2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathDocument.cs : for .ctor() and .ctor(XmlNameTable), now it
+ creates Mono.Xml.XPath.XPathEditableDocument and thus supports
+ IXPathEditable.CreateEditor().
+
+2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathEditableNavigator.cs : Implemented InsertAfter() and
+ PrependChild(); they are virtual, not abstract.
+ * XPathNavigator.cs :
+ Implemented many 2.0 virtual properties and methods that were
+ abstract in 1.x.
+ Implemented some Select() methods that uses IXmlNamespaceResolver.
+ Implemented most of ValueAsXxx() using XQueryConvert.
+ IsNode is always true. Implemented OuterXml and WriteSubtree() (but
+ actually they don't work because it depends on ReadSubtree()).
+
+2004-07-26 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathDocument.cs : added missing && not-likely-to-be-removed members.
+ * XPathEditableNavigator.cs : added BuildSubTree().
+ * XPathException.cs : added missing methods. Hide Message in NET_2_0.
+
+2004-07-23 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathNodeIterator.cs : implemented 2.0 GetEnumerator().
+
+2004-07-21 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathExpression.cs, Expression.cs :
+ Added SetContext(IXmlNamespaceResolver).
+ * NodeChangedEventArgs.cs : Added missing [MonoTODO].
+ * XPathAtomicValue.cs : Halfly implemented.
+ * XPathDocument.cs : Added 2.0 members.
+ * XPathDocumentNodeChangedAction.cs : updated member names.
+ * XPathEditableNavigator.cs : Added missing 2.0 members and MonoTODO.
+ * XPathNavigator.cs : Added missing 2.0 members.
+ Fixed some members as virtual->override.
+
+2004-07-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlNodeChageType.cs, XmlChangeFilters.cs : fixed enum values.
+ * XPathResultType.cs : marked [MonoFIX] on .Navigator.
+
+2004-07-11 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Expression.cs, Iterator.cs, XPathNavigator.cs :
+ Use IXmlNamespaceResolver for net 2.0. Removed unused code.
+ * XPathEditableNavigator.cs : fixed namespace.
+ * XPathNavigator.cs :
+ Fixed inheritance. Added missing MonoTODO.
+ Removed old .net 1.2 code.
+
+2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DefaultContext.cs : Globalization.
+ * Iterator.cs : In SlashIterator.MoveNext() position might keep 0
+ in case of empty list. Thus extraneous iteration might happened.
+ Removed unused (and clone unsafe) EnumeratorIterator.
+
+2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathDocument.s : The previous patch is still incomplete to close.
+
+2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathDocument.cs : close self-opened XmlTextReader in .ctor().
+
+2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Expression.cs : LookupNamespace() only allows already-atomized names.
+ * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and
+ set_InnerXml().
+
+2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
+ and ToNavigator().
+ * Expression.cs : In Equality comparison, evaluate XPathNavigator in
+ the same as well as NodeSet. This fixes bug #59134.
+
+2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathAtomicValue.cs : missed NET_2_0.
+
+2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * IXPathChangeNavigable.cs,
+ IXPathEditable.cs,
+ NodeChangedEventArgs.cs,
+ NodeChangedEventHandler.cs,
+ XPathAtomicValue.cs,
+ XPathChangeNavigator.cs,
+ XPathDocumentNodeChangedAction.cs,
+ XPathEditableNavigator.cs,
+ XPathItem.cs,
+ XmlChangeFilters.cs,
+ XmlNodeChangeType.cs : added NET_2_0 classes.
+ * XPathDocument.cs,
+ XPathNavigator.cs : updated NET_2_0 members.
+
+2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Expression.cs : We should not catch all kind of exception. Just
+ throwing any kind of exception would be preferable.
+ Added support for XPathNavigator values.
+
+2004-05-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DefaultContext.cs : Removed MonoTODO. done.
+ * Expression.cs : handle XPathResultType.Navigator in some places and
+ removed MonoTODO. Mark MonoTODO with explicit comments (though they
+ are mostly pointing out possibilities of optimization).
+ Removed extra check that depended on the old bugs.
+ * XPathResultType.cs : Fixed .Navigator that had the same value as
+ .String.
+
+2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Parser.jay : made class internal.
+
+2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the
+ result of MoveToParent() should be checked.
+
+2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathNavigator.cs : Only child and attribute axes are allowed for
+ Matches().
+ * Expression.cs : Added IsPositional property.
+ * DefaultContext.cs : Added some overrides.
+
+2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathNavigator.cs : no, its still not ok. comment out now.
+
+2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
+ to reduce extraneous Matches() trial.
+ * Iterator.cs : Removed unused MergedIterator.
+ * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
+ unnecessarily. (Test with NeedAbsoluteMatching).
+
+2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Iterator.cs : Added overriden Count properties for some iterators
+ (this fixes the half of #50678).
+ Added ListIterator class (which can reduce GetEnumerator()).
+ In some places we can omit clone for Current property, so added
+ some check logic (It has no effect as yet).
+ * Expression.cs, DefaultContext.cs :
+ use ListIterator instead of EnumeratorIterator.
+
+2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DefaultContext.cs, Expression.cs, Iterator.cs :
+ tiny foreach elimination.
+
+2004-02-05 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DefaultContext.cs : trivial processing order fix.
+
+2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DefaultContext.cs : Avoid exception if possible.
+ * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
+ nav was positioned at the first, it incorrectly points itself.
+ Don't add names to name table while it is useless and expensive.
+
+2004-01-08 Nick Drochak <ndrochak@ieee.org>
+
+ * Iterator.cs: Removed unused variable.
+
+2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Parser.jay : now it supresses error output from jay.
+ * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
+ * Tokenizer.cs : better error message.
+ * XPathDocument.cs : Use XmlValidatingReader to support id() function.
+ (just found MS.NET actually supports it)
+
+2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Iterator.cs : On its iteration, moving Current must not affect to
+ MoveNext(). To assure this, Current must be a clone of navigator.
+ Removed unused code.
+
+2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Tokenizer.cs : Removed some TODOs. (trivial ;-)
+ * Iterator.cs : ParensIterator can inherit from BaseIterator.
+ SlashIterator copy .ctor() always failed to clone. This fixes Count.
+
+2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Expression.cs : XPathSorters.Compare() should compare document
+ position. See last sentence of XSLT 1.0 secion 10.
+
+2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DefaultContext.cs : Overrode all functions' ToString().
+ XPathFunctions.ToNumber() trims whitespaces at both side.
+ Fixed NullReferenceException in normalize-space().
+ * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
+ attribute or namespace node correctly.
+ SlashIterator.Clone() didn't clone "next node iterator" correctly.
+ EnumeratorIterator.ctor() should raise an error (not at Clone())
+ when the target IEnumerator is not ICloneable.
+
+2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Expression.cs : namespace axis now traversed in reverse order, so it
+ requires sorting.
+ * Iterator.cs : UnionIterator.Clone() was incomplete.
+ NamespaceItarator() should be reverse order (special handling
+ because of XPathNavigator specification).
+
+2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
+ * XPathNavigator.cs : ComparePosition() didn't handle attributes
+ correctly.
+
+2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Parser.jay, Expression.cs, Iterator.cs :
+ Added ExprParens and ParensIterator classes which is used to handle
+ precedence of parenthesized expressions.
+ (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
+
+ * Expression.cs, Iterator.cs :
+ Added RequireSorting property for each Expr and BaseIterator classes.
+ SlashIterator.MoveNext() now considers correct sorting. But
+ considering performance, it separates two logics, sorted and sortless
+ depending on RequireSorting of left iterator and right expression.
+
+ * Iterator.cs :
+ SimpleIterator.ctor() should consider when nav is null.
+ FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
+ not return any nodes.
+ AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
+ positions.
+ AncestorIterator.MoveNext() should skip Root if context node is
+ Root itself.
+ FollowingIterator.MoveNext() should not handle children of context
+ itself.
+ PrecedingIterator.MoveNext() should skip its ancestors.
+ AxisIterator.ReverseAxis should be dependent on its containing iter.
+ UnionIterator.MoveNext() should consider comparison of nodes in
+ different document. The behavior is implementation dependent.
+ (see XSLT spec 12.1)
+
+2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Added XPathComparer.cs
+ * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
+ iterator correctly, and sort results.
+
+2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DefaultContext.cs : Imcomplete fix ;-)
+
+2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
+ XPathFunctionId.cs : Exposed Id expression.
+ * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
+ will be used to solve evaluation precedence problem).
+
+2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
+ inconsistent order, and 2)may return duplicate result nodes.
+
+2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
+ it inherit from the base class. This made b[2] evaluated on
+ <a /><b /><c /><a /><b /><c /> return the first b node because
+ in the ChildIterator it was the second node and seemed to satsify
+ the predicate.
+
+2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Iterator.cs : Added bool ReverseAxis property to identify whether
+ the iterator is in reverse order or not. Added ComparablePosition
+ for correct position comparison for PredicateIterator and reverse-
+ order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
+ PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
+ return their nodes in document order. This fixes bugzilla #39079.
+
+2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Iterator.cs : DescendantIterator and FollowingIterator also should
+ not MoveNext() after they reached to the end.
+
+2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Iterator.cs : Fixed UnionIterator who ignores document order.
+ Fixed SlashIterator whose MoveNext() should finish at its end.
+
+2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
+ use NameTable so we dont call strcmp.
+
+2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
+ not "abc".
+ * Iterator.cs, Expression.cs: All axes are
+ SimpleIterators. SimpleIterators are gaurenteed to give the same
+ XPathNavigator in Current. Make AxisIterator take a
+ SimpleIterator, not any old BaseIterator. Will allow us to make
+ NameTable optimizations and avoid quite a few strcmp's.
+
+2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * Expression.cs: make // work right, must use another slash itr.
+
+2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * Expression.cs: cant use $$ before assigned.
+
+2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
+
+2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * Expression.cs: num != double.NaN does not work.
+
+2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * Expression.cs: in NodeTypeTest dont throw an exception if it is
+ an unknown node type (allows for better Pattern debugging).
+
+2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * DefaultContext.cs: implement sum () and translate ().
+
+2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * XPathNavigator.cs: Make methods where you pass in the context,
+ so that we dont have to clone expressions so much.
+
+2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
+ system functions are actually expressions. Will allow for some
+ nice optimizations.
+
+2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
+ improvement in the method (5ms/call -> .7 ms / call) measured by
+ monodoc's rendering of N:System.
+ * Expression.cs: Utility methods to support above.
+
+2003-08-13 Piers Haken <piersh@friskit.com>
+
+ * Iterator.cs:
+ fix MergedIterator.Clone(), now clones other's iterators
+ fix DescendantIterator.Clone(), now copies depth
+ make iterator cloning constructors more type-specific
+
+2003-08-01 Piers Haken <piersh@friskit.com>
+
+ * Expression.cs: added NodeNamespaceTest
+ * XPathNavigator.cs: implement Select* with namespaces
+
+2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * Iterator.cs: Allow creation of an EnumeratorIterator with an
+ XmlNamespaceManager.
+
+2003-07-31 Piers Haken <piersh@friskit.com>
+
+ * Parser.jay:
+ Nested predicates (uses ExprFilter instead)
+ more type safety
+ make grammar look more like w3c spec
+ * Expression.cs:
+ remove ExprStep, ExprPredicates
+ NodeTest is now a NodeSet
+ more type-safety
+ * Iterator.cs:
+ PredicateIterator now only takes a single predicate expression
+ more type-safety
+ * XPathNavigator.cs:
+ simplified SelectTest
+ * XPathException.cs:
+ fixed indenting
+
+2003-07-30 Duncan Mak <duncan@ximian.com>
+
+ * XPathException.cs
+ (GetObjectData):
+ (Message): Added.
+
+2003-07-29 Piers Haken <piersh@friskit.com>
+
+ * DefaultContext.cs: 'local-name' returns String, not NodeSet!
+
+2003-07-29 Piers Haken <piersh@friskit.com>
+
+ * XPathNavigator.cs:
+ * Expression.cs:
+ add typesafe Evaluate* methods
+
+2003-07-29 Piers Haken <piersh@friskit.com>
+
+ * DefaultContext.cs: fix 'substring-after'
+
+2003-07-29 Piers Haken <piersh@friskit.com>
+
+ * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
+
+2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * Iterator.cs: dont throw exceptions on tostring ()
+
+2003-07-28 Piers Haken <piersh@friskit.com>
+
+ * DefaultContext.cs: better handling of null argument lists
+ * XPathNavigator.cs: implement ComparePosition
+
+2003-07-28 Piers Haken <piersh@friskit.com>
+
+ * Expression.cs: boolean operators: handle comparing .Any better
+
+2003-07-28 Piers Haken <piersh@friskit.com>
+
+ * DefaultContext.cs: count() should return a double
+ * Expression.cs: better support for handling non-double numbers
+
+2003-07-28 Piers Haken <piersh@friskit.com>
+
+ * DefaultContext.cs: better function param matching
+
+2003-07-27 Piers Haken <piersh@friskit.com>
+
+ * Expression.cs:
+ * DefaultContext.cs:
+ catch FormatExceptions while parsing numbers
+
+2003-07-27 Piers Haken <piersh@friskit.com>
+
+ * Expression.cs:
+ fix case sorting order
+ allow EvaluateNumber to take XPathResultType.Any
+
+2003-07-27 Piers Haken <piersh@friskit.com>
+
+ * Expression.cs:
+ * Tokenizer.cs:
+ don't pass null to XmlQualifiedName constructor
+
2003-07-27 Piers Haken <piersh@friskit.com>
* DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)