2009-11-20  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultContext.cs : do not use sloppy XmlConvert to parse xpath
	  number. Fixed bug #556619.

2009-09-15  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs : to support external function that returns non-
	  double (such as int) as number, add conversion from non-double at
	  evaluation. This should fix bug #498389.

2009-07-22  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathNavigator.cs : name test did not handle String.Empty cases
	  for name and ns (i.e. no filter). Fixed bug #515136.

2009-06-09  Gonzalo Paniagua, Miguel de Icaza  <gonzalo@novell.com, miguel@novell.com>

	* Expression.cs: improve the ExpressionCache, it still does not
	work, but it will at least work better with multithreaded apps (we
	take locks) and we use WeakReferences correctly.

	For WeakReferences it is important to not depend on IsAlive to
	retrieve the target (this is a documented race).  IsAlive is only
	useful to determine if it has already been collected, but if true,
	the Target can still be released.

	This race condition is exposed by #505678 on x86-64 platforms (only).

	Sadly, this fix is not good enough to re-enable the cache, on
	x86-64 this with a single thread, it still crashes randomly
	
2009-04-15  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs : extensions could return null and it should be
	  regarded as empty node-set, not an error.

2009-03-17  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs : gave up another optimization for bug #443090.

2009-03-17  Atsushi Enomoto <atsushi@ximian.com>

	* XPathExpression.cs : eliminate use of ExpressionCache and lose
	  significant performance in some use for the sake of multithreaded
	  use. Fixed bug #477049.

2009-01-20  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs : give up sortless iterator optimization.
	  Fixed bug #443490.

2008-12-09  Atsushi Enomoto <atsushi@ximian.com>

	* Iterator.cs : DescendantIterator.Clone() was not cloning current
	  node in new code. Fixed bug #456103.

2008-10-08  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs : fix WeakReference usage for such case that it
	  might GC-ed between .IsAlive check and .Target retrieval.

2008-10-06  Atsushi Enomoto <atsushi@ximian.com>

	* XPathExpression.cs, Expression.cs : Cache compiled xpath
	  expressions so that they don't have to be parsed repeatedly.

2008-10-06  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs : unindend cases that do not match our coding style.

2008-10-06  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs : fixed peer & subtree requirement and reduced extra
	  dependency on RequireSorting property.

2008-10-06  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs, Iterator.cs : simplify SlashIterator by introducing
	  SortedIterator.

2008-10-06  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs, Iterator.cs : ChildIterator is not a SimpleIterator
	  now. And reduced extra clone when the context node has no child.

2008-10-03  Atsushi Enomoto <atsushi@ximian.com>

	* Iterator.cs : now we do not seem to need clone in
	  SimpleIterator.Current.

2008-10-03  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : enable EnumerableIterator with some fixes.
	* Iterator.cs : reduce extra steps for empty simple iterator.

2008-10-02  Atsushi Enomoto <atsushi@ximian.com>

	* Iterator.cs, DefaultContext.cs, XPathNavigator.cs, Expression.cs:
	  couple of refactoring: reduced presumption on BaseIterator (it is
	  premised in not a few places, but it might change; see
	  EnumerableIterator in XPathNavigator.cs).
	  Now BaseIterator.Current is always null (to clean up ambiguous
	  implementation state). Current property is now always moved to
	  the current node in the iterator when returned.

2008-09-19  Atsushi Enomoto <atsushi@ximian.com>

	* DefaultContext.cs, Expression.cs: do not premise BaseIterator.

2008-09-19  Atsushi Enomoto <atsushi@ximian.com>

	* XPathComparer.cs : no need to limit to BaseIterator.

2008-09-19  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : oops, wrong #if ranges.

2008-09-19  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : made some 2.0-only methods available in 1.x
	  so that we don't have to hesitate to optimize xpath using them.

2008-06-03  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs : help diagnose variable resolution failure.

2008-04-02  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : fixed InnerXml to not give up with root node.
	  Indent InnerXml. Fixed bug #376191.

2008-02-27  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : in some MoveTo*() methods, it should allow any
	  destination node when "type" is XPathNodeType.All. Based on the
	  patch by Sanghyeon Seo, fixed bug #365112.

2008-02-12  Atsushi Enomoto <atsushi@ximian.com>

	* DefaultContext.cs : now number formatting for "R" works fine, so
	  just use it (and remove conditional compilation for TARGET_JVM).

2008-01-10  Konstantin Triger <kostat@mainsoft.com>

	* Iterator.cs: prevent endless recursion in AncestorIterator
		while collecting results.

2008-01-12  Sebastien Pouliot  <sebastien@ximian.com>

	* DefaultContext.cs: Fix direct comparison with NaN. Found by 
	Gendarme.

2007-12-17  Atsushi Enomoto <atsushi@ximian.com>

	* Iterator.cs : oops, extra removal that causes perf. loss.

2007-12-17  Atsushi Enomoto <atsushi@ximian.com>

	* Iterator.cs : be more strict to detect the end of
	  PredicateIterator. Fixed bug #349111.

2007-12-17  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs : In any comparison expr, treat RTF as equivalent to
	  string type (as specified in XSLT 1.0 section 11.1: "An operation
	  is permitted on a result tree fragment only if that operation would
	  be permitted on a string." ...). Fixed bug #349035.

2007-11-29  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : implemented ValueAs().

2007-01-30  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs : typo. Close #80669

2007-01-05  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs : text() should match whitespace and significant
	  whitespace nodes.

2006-11-10  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs :
	  - ReadSubtree() should reject everything but Element or Root.
	  - InnerXml and OuterXml should not use ReadSubtree() when it is
	    not positioned on an Element or the Root. Thus, implement them
	    in their own ways. Fixed bug #79875.

2006-11-10  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : InnerXml should allow Text-only content. Fixed
	  bug #79874, when tied to XPathNavigatorReader fix.

2006-04-10  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : get_OuterXml() returns indented output, without
	  XML declaration.

2006-03-15  Atsushi Enomoto <atsushi@ximian.com>

	* Expression.cs : extracted XPathSortElement, XPathSorters
	  and XPathSorter from CompiledExpression, and split
	  XPathSorters.Sort() into some methods. Those changes are to make
	  them reusable in XslSortEvaluator.

2006-02-26  Atsushi Enomoto <atsushi@ximian.com>

	* Iterator.cs : seems like MS XPathNodeIterator.MoveNext() itself does
	  not handle XsltContext.PreserveWhitespace() unlike ours. It results
	  in not a small performance improvement. (just removed it since it
	  didn't cause any errors in XSLT standalone tests.)

2006-02-21  Atsushi Enomoto <atsushi@ximian.com>

	* Iterator.cs : removed extra field from AxisIterator.

2006-02-14  Atsushi Enomoto <atsushi@ximian.com>

	* Iterator.cs : tiny message fix (thanks to alp).

2006-01-25  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : fixed IsNode signature found by updated
	  corcompare.

2006-01-11  Atsushi Enomoto <atsushi@ximian.com>

	* Iterator.cs : Nowadays removal of cloning of the argument list
	  in ListIterator is safe. Thanks to Joshua Tauberer for the hint.

2006-01-11  Atsushi Enomoto <atsushi@ximian.com>

	* Iterator.cs : (DescendantOrSelfIterator/DescendantIterator) the
	  error message is for blaming custom XPathNavigator
	  implementation, not us ;-) (see also #77194)

2006-01-06  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : use WriteNode(XPathNavigator, bool)
	  rather than WriteNode(XmlWriter, bool) in WriteSubtree().

2005-12-14  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : Added MonoTODO to CreateAttributes(). Removed
	  MonoTODO from ReadSubtree().

2005-12-14  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : UnderlyingObject returns null by default.

2005-12-13  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : Reimplemented MoveToFollowing() to avoid
	  inefficient MoveToDescendant() and to match .NET 2.0 behavior.

2005-12-13  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : ReplaceSelf() should allow document fragment.
	  Moved implementation to XPathEditableDocument.

2005-12-13  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : PrependChild() should use AppendChild() when
	  there is no child.

2005-12-13  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : InsertAfter() should raise an error before
	  MoveToNext() when current node is either attribute or namespace.

2005-12-13  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : InsertAfter() should append children after it
	  once moved to parent. This method shoulr raise an error when it is
	  placed on Root.

2005-12-13  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : (CreateFragmentReader) return XmlReader that
	  considers current namespace contexts.

2005-12-12  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : removed some MonoTODOs.

2005-12-08  Atsushi Enomoto <atsushi@ximian.com>

	* XPathDocument.cs : garbage cleanup.

2005-11-23  Vladimir Krasnov  <vladimirk@mainsoft.com>

	* Iterator.cs: fixed UnionIterator.SetCurrent method, the
	navigators may be from different xml files.

2005-11-23  Vladimir Krasnov  <vladimirk@mainsoft.com>

	* Iterator.cs: fixed SimpleSlashIterator.MoveNextCore method, the
	navigators may be from different xml files.

2005-11-10  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs, XPathNodeIterator.cs :
	  [DebuggerDisplay] are not worthy of existing.

2005-11-07  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs, XPathNodeIterator.cs : DebuggerDisplayAttribute
	  values are fixed. However, they totally do not make sense since
	  there is no DebuggerDisplayProxy type in our impl.

2005-11-07  Atsushi Enomoto <atsushi@ximian.com>

	* XPathException.cs : Message property is back in 2.0 RTM.

2005-11-07  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNodeIterator.cs : added [DebuggerDisplay]. pretty useless tho.
	* XPathNavigator.cs : [DebuggerDisplay] as well.
	  SelectSingleNode() and AppendChildElement() are now virtual.

2005-10-23  Atsushi Enomoto <atsushi@ximian.com>

	* XPathNavigator.cs : now 2.0 MoveToFirst() invokes internal
	  MoveToFirstImpl() and it is from what XmlDocumentNavigator did.
	  This fixes XPathEditableDocument.MoveToFirst().

2004-10-15  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathNavigator.cs : (DeleteRange, ReplaceRange) so they are not
	  likely to be implemented, thus MonoTODO.

2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>

	* XPathNavigator.cs: Removed DebuggerDisplay attribute.
	* XPathNodeIterator.cs: Removed DebuggerDisplay attribute.

2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>

	* XPathNavigator.cs: [NET_2_0] Added DebuggerDisplay attribute,
	added ReplaceRange and DeleteRange methods.
	* XPathNodeIterator.cs: [NET_2_0] Added DebuggerDisplay attribute.

2004-09-22  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs : Now that managed collation is default, we don't need
	  reversive case-order anymore.

2004-09-21  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathNavigator.cs : added NavigatorComparer.
	* XPathComparer.cs : XPathNavigatorComparer implements
	  IEqualityComparer under NET_2_0 profile.

2005-08-31  Sebastien Pouliot  <sebastien@ximian.com>

	* XPathException.cs: Added a Demand for SerializationFormatter on
	GetObjectData method.

2005-08-03  Gert Driesen  <drieseng@users.sourceforge.net>

	* XPathNavigator.cs: GetNamespacesInScope returns generic IDictionary
	in .NET 2.0 Beta 2.

2004-07-23  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs : don't expect namespace resolver; namespace could be
	  supplied in QName without nsresolver need (i.e. SelectChildren()).
	  Fixed bug #75609.

2005-06-09  Andrew Skiba  <andrews@mainsoft.com>

        * XmlDefaultContext.cs : add TARGET_JVM for roundtrip bug

2004-06-07  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs : set TARGET_JVM where collation matters.

2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathAtomicValue.cs :
	  it is now XmlAtomicValue and in sys.xml.schema.
	* XPathNavigator.cs, Expression.cs :
	  removed atomizedName related 2.0 members (deprecated).

2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathExpression.cs : added static Compile().
	* XPathNavigator.cs :
	  Use XPathExpression.Compile() for now. 
	  Updated tree modification API to 2.0 beta2.
	* XPathItem.cs, XPathNavigator.cs, XPathAtomicValue.cs :
	  updated to 2.0 beta2 API.
	* XPathResultType.cs : removed [Serializable].
	* XmlNodeChangeType.cs : removed obsolete file.

2004-03-25  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathNavigator.cs : 2.0 build fix

2004-03-25  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs : In ExprSLASH2, replace A//B with A/descendant::B if
	  B is child axis test (thus peer&subtree optimization became possible)
	  Fixed warning (incorrect variable let).

2004-03-25  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathNavigator.cs : reduced some Clone().
	  Simplified ComparePosition().
	* Iterator.cs : some iterators are not actually reverse axis.

2004-03-22  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs : EvaluateBoolean() for RTF should check return true
	  for empty elements. Fixed static analysis for RTF.

2004-03-22  Atsushi Enomoto  <atsushi@ximian.com>

	* Parser.jay, Tokenizer.cs : Now they are used as common code base for
	  XPath parser and XSLT pattern parser. Makefile now creates two
	  set of sources of them. (This change takes effect on the next change).

2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>

	* Parser.jay : rewrote step part to be reusable for upcoming XSLT
	  pattern parser.

2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : reduced extra clone.

2004-03-15  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultContext.cs,
	  Expression.cs,
	  Iterator.cs : Now RequireSorting is not required in BaseIterator
	  (it is now fully in Expression).
	  Removed the last ListIterator .ctor() argument.

2004-03-15  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathNavigator.cs : In ComparePosition(), make use of IsDescendant().

2004-03-14  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs,
	  DefaultContext.cs : Basic constant folding optimization (not so
	  effective right now). Unified number-to-string conversion code into
	  XPathFunctions.ToString(double) to avoid roundtrip format right now.
	* Iterator.cs : removed unused code.

2004-03-11  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : more clone reduction.

2004-03-11  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs, DefaultContext.cs : more Peer overrides.

2004-03-11  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs,
	  DefaultContext.cs : Removed unused NeedAbsoluteMatching.
	  Added Peer and Subtree (for "peer & subtree optimization. See:
	  http://idealliance.org/papers/dx_xmle04/papers/02-03-02/02-03-02.html
	  Fixed some ToString() that caused NullReferenceException.

	* Iterator.cs : Predicate does not affect on RequireSorting.
	  Added SimpleSlashIterator for peer & subtree optimization.

	  Added PreserveWhitespace() consideration in BaseIterator.MoveNext().

2004-03-09  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs,
	  Iterator.cs, :
	  SlashIterator is now constructed with requireSorting parameter 
	  that thus just use RequireSorting from both left/right Expressions, 
	  not iterators.
	  When attribute axis is on the left expression, the result needs to
	  be sorted.

2004-03-09  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : Now for most of iterator types, Current property always
	  returns the same instance. It results in huge memory reduction.

2004-03-04  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : (SlashIterator.MoveNext()) For SortedList.Add(), the
	  key should be iterator itself. Key by list count never makes sense.

2004-03-04  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs : Significant whitespace nodes must be returned in
	  text() NodeTypeTest.

2004-02-23  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs : xsl:sort case-order was not handled properly.

2004-02-23  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs :
	  In FollowingIterator, attribute and namespace nodes should be 
	  considered to have following nodes. See XPath 1.0 section 5 (esp.
	  the description on "document order").
	  On fixing @*/following::*, attribute nodes are regarded as to be
	  RequireSorting = true (which might result in duplicate).

2004-02-18  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs : string() function expects "Infinity" and "-Infinity"
	  instead of "INF" for conversion from number. XmlConvert is for XSD,
	  not for XSLT.

2004-02-09  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs : RelationalExpr was comparing number and node in
	  reverse order. Patch by Kazuki Oikawa. Fixed bug #72343.
	  RelationalExpr should also handle result tree fragment as node-set
	  as well as EqualityExpr. This fixes RTF case wrt #72343.

2004-02-08  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs : tiny code format fix by Andrew Skiba.

2004-12-26  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathNavigator.cs : Added CheckValidity() and ValueType.
	  For SetTypedValue(), throw NotSupportedException instead of
	  NotImplementedException.

2004-12-16  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathNavigator.cs :added MoveToFollowing(), ReplaceSelf() and
	  all the missing attributes.

2004-12-04  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathDocument.cs : switch to DTMXPathNavigator2 which fully
	  eliminated string fields from struct.
	  (When we switch from struct to class, revert this change to use
	  DTMXPathNavigator, since class-based DTMXPathNavigator2 is rather
	  wasting processing speed.)

2004-12-02  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : when PredicateIterator has a numeric predicate, it
	  will never be true twice. So just break up the iteration on true.
	* XPathNavigator.cs : implemented LookupPrefix().
	* Expression.cs : ExprParens.Optimize() could just return the content
	  expression.

2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>

	* IXPathChangeNavigable.cs,
	  XmlChangeFilters.cs,
	  XPathDocumentNodeChangedAction.cs : removed old files.

2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : with related to the previous patch, many comments
	  got making no sense. Thanks to Harinath.

2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : actually I mean this patch.

2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : Create _current clone only when required. So just set
	  null when MoveNextCore() succeeded (except for some cases that
	  _current is _nav, such as SelfIterator).

2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : SlashIterator.RequireSorting is always false. Whether
	  it has to collect nodes in prior or not and whether it might return
	  nodes in inconsistent order is different matter.
	  (It still needs to store nodes when either of branches requires
	  sorting, because they might return the same node later.)

2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : reduced some extraneous ComparePosition() that could
	  be written as IsSamePosition(). ParentIterator doesn't have to be
	  RequireSorting.

2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : reimplemented AncestorIterator and 
	  AncestorOrSelfIterator just to collect parents and not to move to
	  siblings. In some cases like thousands of siblings, it used to be
	  so slow, while we usually don't have so deep ancestors.

2004-11-26  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs : warning removal. Added Optimize() which is not
	  implemented at all.
	* Tokenizer.cs : warning elimination

2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathEditableNavigator.cs, XPathChangeNavigator.cs,
	  IXPathEditable.cs : more removal of oldies.

2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>

	* NodeChangedEventArgs.cs, NodeChangedEventHandler.cs : removed oldies.

2004-11-08  Atsushi Enomoto  <atsushi@ximian.com>

	* Tokenizer.cs : just use raw string instead of char[].
	* XPathNavigator.cs : reuse NameTable when creating XmlTextReader.

2004-11-07  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs :
	  - Made copy constructor certainly different from other constructors.
	  - Position is never computed in each derived type. All MoveNext() are
	    now MoveNextCore().
	  - Most of the protected members could just be private.

2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>

	* Expression.cs, XPathNavigator.cs : hold raw expression field for
	  get_Expression. It is preparation for expression optimization.

2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : SimpleIterator._current could be cloned only when
	  it is required.

2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs : Some removal of Clone() were harmless.

2004-10-22  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathDocument.cs : now all the new stuff that used to be in 2.0 are
	  reverted.
	* XPathEditableNavigator.cs : It will be removed. Right now modified
	  a bit to pass build.
	* XPathNavigator.cs : Added members that are merged from
	  XPathEditableNavigator. Updated members name.

2004-10-14  Atsushi Enomoto  <atsushi@ximian.com>

	* Iterator.cs :
	  - Added WrapperIterator to return BaseIterator in such case that 
	    variable reference is resolved to XPathNodeIterator. This fixes
	    bug #68267.
	  - Path ".." is reverse axis (actually no effect).
	  - Fixed DescendantIterator.Clone() that missed "_finished" field.
	* Expression.cs :
	  In ExprVariable.Evaluate(), use WrapperIterator() for custom
	  XPathNodeIterator.

2004-10-09  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathAtomicValue.cs : Init(string, XmlSchemaType) is private.

2004-10-05  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathAtomicValue.cs : missing Init() definition for float and string;
	  latter one resulted in infinite loop in Init(object,XmlSchemaType).

2004-10-04  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathNavigator.cs : TypedValue could be implemented.
	* XPathEditableNavigator.cs : removed some MonoTODO since now there 
	  are implementations.

2004-09-13  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathAtomicValue.cs : All .ctor() are separeted from Init().
	  In .ctor(object, XmlSchemaType):
	  - For lists that contains just one item, Init() recursively.
	  - For XPathAtomicValue, Init() recursively for its content fields.
	  For Value and TypedValue, consider typecode from XmlSchemaType.

2004-09-06  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathEditableNavigator.cs :
	  AppendChild(xmlReader) ignored nodes after than first one, and
	  resulted in infinite loop.
	  Added get_OuterXml overrides. set_OuterXml should not move to
	  parent before deleting current.

2004-08-25  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathAtomicValue.cs : Value was not returning expected value when
	  it is created as new XPathAtomicValue (object, XmlSchemaType).
	  Compute stringValue and reuse.
	* XPathNavigator.cs : Temporarily stubbed as to ignore SchemaInfo
	  (for checking XQuery implementation).

2004-08-25  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathAtomicValue.cs : Handle .ctor() with object parameter more
	  precisely (still not enough, for list argument).
	  Removed commended blocks.

2004-08-24  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathAtomicValue.cs : DateTime should be convertible to string.
	  Use schemaType's TypeCode for .ctor() that takes object.
	* XPathNavigator.cs : copied get_InnerXml from XPathEditableNavigator.
	* XPathEditableNavigator.cs : set_InnerXml should be different (new)
	  property from get_InnerXml. Removed get_InnerXml and get_OuterXml 
	  overrides.

2004-08-23  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathAtomicValue.cs, XPathNavigator.cs : Eliminate MS.Internal.Xml.*.

2004-08-03  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathEditableNavigator.cs : implemented some editor support methods.

2004-08-02  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathDocument.cs :
	  - For .NET 2.0, added a switch to support new XPathDocument2. 
	    If switch is off, then it uses DTM.
	  - Implemented remaining 2.0 bits (except for Obsolete ones).

	To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
	(It is still too unstable to pass all nunit tests and standalone XSLT
	tests).

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?)

2003-07-27  Piers Haken	<piersh@friskit.com>

	* Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any

2003-07-26  Piers Haken	<piersh@friskit.com>

	* Expression.cs: fix function evaluation with ambigous argument types
	* XPathNavigator.cs: fix silly null reference bug

2003-07-26  Piers Haken	<piersh@friskit.com>

	* Iterator.cs:
	* DefaultContext.cs:
		ArrayListIterator->EnumeratorIterator
	* Expression.cs: add sorting support

2003-07-26  Piers Haken	<piersh@friskit.com>

	* Tokenizer.cs:
	* Parser.jay:
		move QName parsing into tokenizer
	* Expression.cs:
		fix evaluating XPathResultType.Any
		fix ExprDiv.ToString()
		fix NodeTypeTest.ToString() (for namespace axis)

2003-07-25  Piers Haken	<piersh@friskit.com>

	* Expression.cs: return clone of $var evaluation

2003-07-26  Piers Haken	<piersh@friskit.com>

	* Iterator.cs: add setter for NamespaceManager
	* XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
	* Expression.cs: fix func/var exception strings

2003-07-25  Piers Haken	<piersh@friskit.com>

	* Expression.cs: implement ExprFilter.Evaluate

2003-07-25  Piers Haken	<piersh@friskit.com>

	* Expression.cs: implement ExprVariable.Evaluate

2003-07-24  Ben Maurer <bmaurer@users.sourceforge.net>
	
	* DefaultContext.cs: implement lang ()

2003-07-24  Piers Haken	<piersh@friskit.com>

	* Parser.jay:
	* Expression.cs:
		allow ExprUNION to take non-nodeset (eg, $var) arguments

2003-07-24  Piers Haken	<piersh@friskit.com>

	* Tokenizer.cs: fix variable references
	* Parser.jay:
	* Expression.cs:
	* XPathNavigator.cs:
		use XmlQualifiedName

2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* XPathDocument.cs : removed Driver class and restored authors' name
	  (though it is completely rewrote).

2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* XPathDocument.cs : Replaced existing stub class with real
	  XPathDocument implementation.

2003-04-28  Piers Haken  <piersh@friskit.com>

	* Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens

2003-03-07  Piers Haken  <piersh@friskit.com>

	* Tokenizer.cs: allow '.'s in NCNames

2003-03-07  Piers Haken  <piersh@friskit.com>

	* Exression.cs:
	* DefaultContext.cs:
		fixed function argument resolution

2003-02-09  Piers Haken  <piersh@friskit.com>

	* XPathNavigator.cs:
	* Iterator.cs:
	* Expression.cs: fix namespace handling

2003-01-04  Piers Haken  <piersh@friskit.com>

	* Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)

2003-02-02  Piers Haken <piersh@friskit.com>

	* Parser.jay: add token names
	* Tokenizer.cs: fix NCName tokenization

2003-01-02  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>

	* Tokenizer.cs : Fixed ParseIdentifier to allow digits.
		(It should be a temporary fix.)

2002-09-22  Nick Drochak  <ndrochak@gol.com>

	* Parser.cs: Remove extraneous "using" that was stopping the build.

2002-09-21  Piers Haken <piersh@friskit.com>

	* XPathException: implementation
	* Expression.cs:
	* Iterator.cs:
	* Parser.jay:
	* Tokenizer.jay:
	* XPathNavigator.jay:
		use XPathException.

2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* Parser.cs: commented out non-existent namespace (it compiles fine
	with mcs because of a bug that is already on bugzilla).

2002-09-12  Piers Haken <piersh@friskit.com>

	* Tokenizer.cs: fix parsing numbers that start with '.'
	* DefaultContext.cs: use MS-compatible formatting of doubles

2002-09-12  Piers Haken <piersh@friskit.com>

	* Iterator.cs: added NullIterator to handle unspecified contexts
	* XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
	* XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators

2002-09-12  Piers Haken <piersh@friskit.com>

	* Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
	* Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
	* DefaultContext.cs: fix id() return type.

2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* DefaultContext.cs: fixed bug #28840.
	* Expression.cs: added FIXME.

2002-08-17  Jason Diamond <jason@injektilo.org>

	* XPathNavigator.cs: Fixed matching on patterns that look like
	absolute XPath expressions.

2002-08-17  Jason Diamond <jason@injektilo.org>

	* XPathNavigator.cs: Added naive (but working) implementation of
	 Matches.

2002-07-31  Piers Haken <piersh@friskit.com>

	* XPathDocument.cs: simple, XmlDocument-based implementation

2002-07-25  Piers Haken <piersh@friskit.com>

	* DefaultContext.cs: implement XPathFunctionName 'name()' function.

2002-07-17  Piers Haken <piersh@friskit.com>
	
	* DefaultContext.cs: implement 'string-length()', 'normalize-space()'
	* Parser.jay: remove redundant production
	* Expression.cs: add switches for debugging under VS.NET

2002-07-17  Piers Haken <piersh@friskit.com>

	* Expression.cs: implement nodeset/nodeset comparisons (non-optimal)

2002-07-15  Piers Haken <piersh@friskit.com>

	* Iterator.cs:
		- rename UnionIterator to MergedIterator, 
		- create new UnionIterator to implment uniqueness for '|' operator
		- fix position bug in ArrayListIterator.Clone()
	* Expression.cs: use new UnionIterator constructor syntax

2002-07-12  Piers Haken <piersh@friskit.com>

	* Iterator.cs: PredicateIterator: handle numeric predicates
	* Parser.jay: add some debugging support: yyparseDebug
	* Tokenizer.cs: cleanup, include '-' chars in identifier tokens

2002-06-29  Piers Haken <piersh@friskit.com>

	* Expression.cs:
		- remove dead code
		- NodeTest uses XPathResultType instead of internal NodeTestTypes enum
		- remove NodeTestTypes enum
		- remove NodeTestTypeAny (functionality provided by base now)
		- fix ExprStep to handle wildcard QNames
	* Parser.jay:
		- moved to Mono.Xml.XPath namespace
		- use XPathResultType
		- handle wildcard QNames
		
	* Tokenizer.cs: moved to Mono.Xml.XPath namespace
	
	* XPathNavigator.cs: implement
		- IsDescendant
		- SelectAncestors
		- SelectDescendants
		- SelectChildren
		
	* XPathResultType.cs: fix enum values
	
2002-06-24  Jason Diamond  <jason@injektilo.org>

	* XPathScanner.cs: Removed.

2002-06-24  Dick Porter <dick@ximian.com>

	* XmlCaseOrder.cs: Fix namespace

2002-06-23  Piers Haken <piersh@friskit.com>

	* DefaultContext.cs: implemented XPathFUnctionId
	* Iterator.cs: new ArrayListIterator for id() support

2002-06-23  Piers Haken <piersh@friskit.com>

	* XPathNavigator.cs: implement:
		- Compile
		- Evaluate
		- Clone
		- Select
		- ToString
		- some forwarding methods

	* XPathNodeIterator: implement caching Count

	* Tokenizer.cs: new XPath tokenizer
	* Parser.jay: new XPath grammar
	* Parser.cs: new precompiled XPath grammar
	* Expression.cs: new XPath expression objects
	* Iterator.cs: new XPath result/context objects
	* DefaultContext.cs: new XPath function binding context

2002-05-08  Tim Coleman <tim@timcoleman.com>
	* XPathDocument.cs:
	* XPathException.cs: New stub files added.

2002-04-12  Duncan Mak  <duncan@ximian.com>

	* XmlCaseOrder.cs: Moved to here from System.Xml.

2002-03-26  Jason Diamond  <jason@injektilo.org>

	* XPathScanner.cs: Now handles name tests with wildacards. Abbreviated 
	steps. Both absolution and relative abbreviated location paths.

2002-03-25  Jason Diamond  <jason@injektilo.org>

	* XPathScanner.cs: Added new file. This class is supposed to be internal
	but that would make it impossible to test.

2002-03-08  Duncan Mak  <duncan@ximian.com>

	* XPathNamespaceScope.cs:
	* XPathNodeType.cs:
	* XPathResultType.cs:
	* XmlDataType.cs:
	* XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
	implementation. XPathResultType is interesting as EnumCheck does
	not show the Navigator element, but shows the String element twice.

2002-03-08  Jason Diamond  <jason@injektilo.org>

	* XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.

2002-03-06  Jason Diamond  <jason@injektilo.org>

	* ChangeLog: Added to this directory.

	* XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
	XPathResultType.cs: New files.

	* XPathNavigator.cs: Stubbed out all properties and methods.
