2008-12-09 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.XML / System.Xml.XPath / ChangeLog
1 2008-12-09  Atsushi Enomoto <atsushi@ximian.com>
2
3         * Iterator.cs : DescendantIterator.Clone() was not cloning current
4           node in new code. Fixed bug #456103.
5
6 2008-10-08  Atsushi Enomoto <atsushi@ximian.com>
7
8         * Expression.cs : fix WeakReference usage for such case that it
9           might GC-ed between .IsAlive check and .Target retrieval.
10
11 2008-10-06  Atsushi Enomoto <atsushi@ximian.com>
12
13         * XPathExpression.cs, Expression.cs : Cache compiled xpath
14           expressions so that they don't have to be parsed repeatedly.
15
16 2008-10-06  Atsushi Enomoto <atsushi@ximian.com>
17
18         * Expression.cs : unindend cases that do not match our coding style.
19
20 2008-10-06  Atsushi Enomoto <atsushi@ximian.com>
21
22         * Expression.cs : fixed peer & subtree requirement and reduced extra
23           dependency on RequireSorting property.
24
25 2008-10-06  Atsushi Enomoto <atsushi@ximian.com>
26
27         * Expression.cs, Iterator.cs : simplify SlashIterator by introducing
28           SortedIterator.
29
30 2008-10-06  Atsushi Enomoto <atsushi@ximian.com>
31
32         * Expression.cs, Iterator.cs : ChildIterator is not a SimpleIterator
33           now. And reduced extra clone when the context node has no child.
34
35 2008-10-03  Atsushi Enomoto <atsushi@ximian.com>
36
37         * Iterator.cs : now we do not seem to need clone in
38           SimpleIterator.Current.
39
40 2008-10-03  Atsushi Enomoto <atsushi@ximian.com>
41
42         * XPathNavigator.cs : enable EnumerableIterator with some fixes.
43         * Iterator.cs : reduce extra steps for empty simple iterator.
44
45 2008-10-02  Atsushi Enomoto <atsushi@ximian.com>
46
47         * Iterator.cs, DefaultContext.cs, XPathNavigator.cs, Expression.cs:
48           couple of refactoring: reduced presumption on BaseIterator (it is
49           premised in not a few places, but it might change; see
50           EnumerableIterator in XPathNavigator.cs).
51           Now BaseIterator.Current is always null (to clean up ambiguous
52           implementation state). Current property is now always moved to
53           the current node in the iterator when returned.
54
55 2008-09-19  Atsushi Enomoto <atsushi@ximian.com>
56
57         * DefaultContext.cs, Expression.cs: do not premise BaseIterator.
58
59 2008-09-19  Atsushi Enomoto <atsushi@ximian.com>
60
61         * XPathComparer.cs : no need to limit to BaseIterator.
62
63 2008-09-19  Atsushi Enomoto <atsushi@ximian.com>
64
65         * XPathNavigator.cs : oops, wrong #if ranges.
66
67 2008-09-19  Atsushi Enomoto <atsushi@ximian.com>
68
69         * XPathNavigator.cs : made some 2.0-only methods available in 1.x
70           so that we don't have to hesitate to optimize xpath using them.
71
72 2008-06-03  Atsushi Enomoto <atsushi@ximian.com>
73
74         * Expression.cs : help diagnose variable resolution failure.
75
76 2008-04-02  Atsushi Enomoto <atsushi@ximian.com>
77
78         * XPathNavigator.cs : fixed InnerXml to not give up with root node.
79           Indent InnerXml. Fixed bug #376191.
80
81 2008-02-27  Atsushi Enomoto <atsushi@ximian.com>
82
83         * XPathNavigator.cs : in some MoveTo*() methods, it should allow any
84           destination node when "type" is XPathNodeType.All. Based on the
85           patch by Sanghyeon Seo, fixed bug #365112.
86
87 2008-02-12  Atsushi Enomoto <atsushi@ximian.com>
88
89         * DefaultContext.cs : now number formatting for "R" works fine, so
90           just use it (and remove conditional compilation for TARGET_JVM).
91
92 2008-01-10  Konstantin Triger <kostat@mainsoft.com>
93
94         * Iterator.cs: prevent endless recursion in AncestorIterator
95                 while collecting results.
96
97 2008-01-12  Sebastien Pouliot  <sebastien@ximian.com>
98
99         * DefaultContext.cs: Fix direct comparison with NaN. Found by 
100         Gendarme.
101
102 2007-12-17  Atsushi Enomoto <atsushi@ximian.com>
103
104         * Iterator.cs : oops, extra removal that causes perf. loss.
105
106 2007-12-17  Atsushi Enomoto <atsushi@ximian.com>
107
108         * Iterator.cs : be more strict to detect the end of
109           PredicateIterator. Fixed bug #349111.
110
111 2007-12-17  Atsushi Enomoto <atsushi@ximian.com>
112
113         * Expression.cs : In any comparison expr, treat RTF as equivalent to
114           string type (as specified in XSLT 1.0 section 11.1: "An operation
115           is permitted on a result tree fragment only if that operation would
116           be permitted on a string." ...). Fixed bug #349035.
117
118 2007-11-29  Atsushi Enomoto <atsushi@ximian.com>
119
120         * XPathNavigator.cs : implemented ValueAs().
121
122 2007-01-30  Atsushi Enomoto <atsushi@ximian.com>
123
124         * Expression.cs : typo. Close #80669
125
126 2007-01-05  Atsushi Enomoto <atsushi@ximian.com>
127
128         * Expression.cs : text() should match whitespace and significant
129           whitespace nodes.
130
131 2006-11-10  Atsushi Enomoto <atsushi@ximian.com>
132
133         * XPathNavigator.cs :
134           - ReadSubtree() should reject everything but Element or Root.
135           - InnerXml and OuterXml should not use ReadSubtree() when it is
136             not positioned on an Element or the Root. Thus, implement them
137             in their own ways. Fixed bug #79875.
138
139 2006-11-10  Atsushi Enomoto <atsushi@ximian.com>
140
141         * XPathNavigator.cs : InnerXml should allow Text-only content. Fixed
142           bug #79874, when tied to XPathNavigatorReader fix.
143
144 2006-04-10  Atsushi Enomoto <atsushi@ximian.com>
145
146         * XPathNavigator.cs : get_OuterXml() returns indented output, without
147           XML declaration.
148
149 2006-03-15  Atsushi Enomoto <atsushi@ximian.com>
150
151         * Expression.cs : extracted XPathSortElement, XPathSorters
152           and XPathSorter from CompiledExpression, and split
153           XPathSorters.Sort() into some methods. Those changes are to make
154           them reusable in XslSortEvaluator.
155
156 2006-02-26  Atsushi Enomoto <atsushi@ximian.com>
157
158         * Iterator.cs : seems like MS XPathNodeIterator.MoveNext() itself does
159           not handle XsltContext.PreserveWhitespace() unlike ours. It results
160           in not a small performance improvement. (just removed it since it
161           didn't cause any errors in XSLT standalone tests.)
162
163 2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
164
165         * Iterator.cs : removed extra field from AxisIterator.
166
167 2006-02-14  Atsushi Enomoto <atsushi@ximian.com>
168
169         * Iterator.cs : tiny message fix (thanks to alp).
170
171 2006-01-25  Atsushi Enomoto <atsushi@ximian.com>
172
173         * XPathNavigator.cs : fixed IsNode signature found by updated
174           corcompare.
175
176 2006-01-11  Atsushi Enomoto <atsushi@ximian.com>
177
178         * Iterator.cs : Nowadays removal of cloning of the argument list
179           in ListIterator is safe. Thanks to Joshua Tauberer for the hint.
180
181 2006-01-11  Atsushi Enomoto <atsushi@ximian.com>
182
183         * Iterator.cs : (DescendantOrSelfIterator/DescendantIterator) the
184           error message is for blaming custom XPathNavigator
185           implementation, not us ;-) (see also #77194)
186
187 2006-01-06  Atsushi Enomoto <atsushi@ximian.com>
188
189         * XPathNavigator.cs : use WriteNode(XPathNavigator, bool)
190           rather than WriteNode(XmlWriter, bool) in WriteSubtree().
191
192 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
193
194         * XPathNavigator.cs : Added MonoTODO to CreateAttributes(). Removed
195           MonoTODO from ReadSubtree().
196
197 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
198
199         * XPathNavigator.cs : UnderlyingObject returns null by default.
200
201 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
202
203         * XPathNavigator.cs : Reimplemented MoveToFollowing() to avoid
204           inefficient MoveToDescendant() and to match .NET 2.0 behavior.
205
206 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
207
208         * XPathNavigator.cs : ReplaceSelf() should allow document fragment.
209           Moved implementation to XPathEditableDocument.
210
211 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
212
213         * XPathNavigator.cs : PrependChild() should use AppendChild() when
214           there is no child.
215
216 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
217
218         * XPathNavigator.cs : InsertAfter() should raise an error before
219           MoveToNext() when current node is either attribute or namespace.
220
221 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
222
223         * XPathNavigator.cs : InsertAfter() should append children after it
224           once moved to parent. This method shoulr raise an error when it is
225           placed on Root.
226
227 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
228
229         * XPathNavigator.cs : (CreateFragmentReader) return XmlReader that
230           considers current namespace contexts.
231
232 2005-12-12  Atsushi Enomoto <atsushi@ximian.com>
233
234         * XPathNavigator.cs : removed some MonoTODOs.
235
236 2005-12-08  Atsushi Enomoto <atsushi@ximian.com>
237
238         * XPathDocument.cs : garbage cleanup.
239
240 2005-11-23  Vladimir Krasnov  <vladimirk@mainsoft.com>
241
242         * Iterator.cs: fixed UnionIterator.SetCurrent method, the
243         navigators may be from different xml files.
244
245 2005-11-23  Vladimir Krasnov  <vladimirk@mainsoft.com>
246
247         * Iterator.cs: fixed SimpleSlashIterator.MoveNextCore method, the
248         navigators may be from different xml files.
249
250 2005-11-10  Atsushi Enomoto <atsushi@ximian.com>
251
252         * XPathNavigator.cs, XPathNodeIterator.cs :
253           [DebuggerDisplay] are not worthy of existing.
254
255 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
256
257         * XPathNavigator.cs, XPathNodeIterator.cs : DebuggerDisplayAttribute
258           values are fixed. However, they totally do not make sense since
259           there is no DebuggerDisplayProxy type in our impl.
260
261 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
262
263         * XPathException.cs : Message property is back in 2.0 RTM.
264
265 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
266
267         * XPathNodeIterator.cs : added [DebuggerDisplay]. pretty useless tho.
268         * XPathNavigator.cs : [DebuggerDisplay] as well.
269           SelectSingleNode() and AppendChildElement() are now virtual.
270
271 2005-10-23  Atsushi Enomoto <atsushi@ximian.com>
272
273         * XPathNavigator.cs : now 2.0 MoveToFirst() invokes internal
274           MoveToFirstImpl() and it is from what XmlDocumentNavigator did.
275           This fixes XPathEditableDocument.MoveToFirst().
276
277 2004-10-15  Atsushi Enomoto  <atsushi@ximian.com>
278
279         * XPathNavigator.cs : (DeleteRange, ReplaceRange) so they are not
280           likely to be implemented, thus MonoTODO.
281
282 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
283
284         * XPathNavigator.cs: Removed DebuggerDisplay attribute.
285         * XPathNodeIterator.cs: Removed DebuggerDisplay attribute.
286
287 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
288
289         * XPathNavigator.cs: [NET_2_0] Added DebuggerDisplay attribute,
290         added ReplaceRange and DeleteRange methods.
291         * XPathNodeIterator.cs: [NET_2_0] Added DebuggerDisplay attribute.
292
293 2004-09-22  Atsushi Enomoto  <atsushi@ximian.com>
294
295         * Expression.cs : Now that managed collation is default, we don't need
296           reversive case-order anymore.
297
298 2004-09-21  Atsushi Enomoto  <atsushi@ximian.com>
299
300         * XPathNavigator.cs : added NavigatorComparer.
301         * XPathComparer.cs : XPathNavigatorComparer implements
302           IEqualityComparer under NET_2_0 profile.
303
304 2005-08-31  Sebastien Pouliot  <sebastien@ximian.com>
305
306         * XPathException.cs: Added a Demand for SerializationFormatter on
307         GetObjectData method.
308
309 2005-08-03  Gert Driesen  <drieseng@users.sourceforge.net>
310
311         * XPathNavigator.cs: GetNamespacesInScope returns generic IDictionary
312         in .NET 2.0 Beta 2.
313
314 2004-07-23  Atsushi Enomoto  <atsushi@ximian.com>
315
316         * Expression.cs : don't expect namespace resolver; namespace could be
317           supplied in QName without nsresolver need (i.e. SelectChildren()).
318           Fixed bug #75609.
319
320 2005-06-09  Andrew Skiba  <andrews@mainsoft.com>
321
322         * XmlDefaultContext.cs : add TARGET_JVM for roundtrip bug
323
324 2004-06-07  Atsushi Enomoto  <atsushi@ximian.com>
325
326         * Expression.cs : set TARGET_JVM where collation matters.
327
328 2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>
329
330         * XPathAtomicValue.cs :
331           it is now XmlAtomicValue and in sys.xml.schema.
332         * XPathNavigator.cs, Expression.cs :
333           removed atomizedName related 2.0 members (deprecated).
334
335 2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>
336
337         * XPathExpression.cs : added static Compile().
338         * XPathNavigator.cs :
339           Use XPathExpression.Compile() for now. 
340           Updated tree modification API to 2.0 beta2.
341         * XPathItem.cs, XPathNavigator.cs, XPathAtomicValue.cs :
342           updated to 2.0 beta2 API.
343         * XPathResultType.cs : removed [Serializable].
344         * XmlNodeChangeType.cs : removed obsolete file.
345
346 2004-03-25  Atsushi Enomoto  <atsushi@ximian.com>
347
348         * XPathNavigator.cs : 2.0 build fix
349
350 2004-03-25  Atsushi Enomoto  <atsushi@ximian.com>
351
352         * Expression.cs : In ExprSLASH2, replace A//B with A/descendant::B if
353           B is child axis test (thus peer&subtree optimization became possible)
354           Fixed warning (incorrect variable let).
355
356 2004-03-25  Atsushi Enomoto  <atsushi@ximian.com>
357
358         * XPathNavigator.cs : reduced some Clone().
359           Simplified ComparePosition().
360         * Iterator.cs : some iterators are not actually reverse axis.
361
362 2004-03-22  Atsushi Enomoto  <atsushi@ximian.com>
363
364         * Expression.cs : EvaluateBoolean() for RTF should check return true
365           for empty elements. Fixed static analysis for RTF.
366
367 2004-03-22  Atsushi Enomoto  <atsushi@ximian.com>
368
369         * Parser.jay, Tokenizer.cs : Now they are used as common code base for
370           XPath parser and XSLT pattern parser. Makefile now creates two
371           set of sources of them. (This change takes effect on the next change).
372
373 2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>
374
375         * Parser.jay : rewrote step part to be reusable for upcoming XSLT
376           pattern parser.
377
378 2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>
379
380         * Iterator.cs : reduced extra clone.
381
382 2004-03-15  Atsushi Enomoto  <atsushi@ximian.com>
383
384         * DefaultContext.cs,
385           Expression.cs,
386           Iterator.cs : Now RequireSorting is not required in BaseIterator
387           (it is now fully in Expression).
388           Removed the last ListIterator .ctor() argument.
389
390 2004-03-15  Atsushi Enomoto  <atsushi@ximian.com>
391
392         * XPathNavigator.cs : In ComparePosition(), make use of IsDescendant().
393
394 2004-03-14  Atsushi Enomoto  <atsushi@ximian.com>
395
396         * Expression.cs,
397           DefaultContext.cs : Basic constant folding optimization (not so
398           effective right now). Unified number-to-string conversion code into
399           XPathFunctions.ToString(double) to avoid roundtrip format right now.
400         * Iterator.cs : removed unused code.
401
402 2004-03-11  Atsushi Enomoto  <atsushi@ximian.com>
403
404         * Iterator.cs : more clone reduction.
405
406 2004-03-11  Atsushi Enomoto  <atsushi@ximian.com>
407
408         * Expression.cs, DefaultContext.cs : more Peer overrides.
409
410 2004-03-11  Atsushi Enomoto  <atsushi@ximian.com>
411
412         * Expression.cs,
413           DefaultContext.cs : Removed unused NeedAbsoluteMatching.
414           Added Peer and Subtree (for "peer & subtree optimization. See:
415           http://idealliance.org/papers/dx_xmle04/papers/02-03-02/02-03-02.html
416           Fixed some ToString() that caused NullReferenceException.
417
418         * Iterator.cs : Predicate does not affect on RequireSorting.
419           Added SimpleSlashIterator for peer & subtree optimization.
420
421           Added PreserveWhitespace() consideration in BaseIterator.MoveNext().
422
423 2004-03-09  Atsushi Enomoto  <atsushi@ximian.com>
424
425         * Expression.cs,
426           Iterator.cs, :
427           SlashIterator is now constructed with requireSorting parameter 
428           that thus just use RequireSorting from both left/right Expressions, 
429           not iterators.
430           When attribute axis is on the left expression, the result needs to
431           be sorted.
432
433 2004-03-09  Atsushi Enomoto  <atsushi@ximian.com>
434
435         * Iterator.cs : Now for most of iterator types, Current property always
436           returns the same instance. It results in huge memory reduction.
437
438 2004-03-04  Atsushi Enomoto  <atsushi@ximian.com>
439
440         * Iterator.cs : (SlashIterator.MoveNext()) For SortedList.Add(), the
441           key should be iterator itself. Key by list count never makes sense.
442
443 2004-03-04  Atsushi Enomoto  <atsushi@ximian.com>
444
445         * Expression.cs : Significant whitespace nodes must be returned in
446           text() NodeTypeTest.
447
448 2004-02-23  Atsushi Enomoto  <atsushi@ximian.com>
449
450         * Expression.cs : xsl:sort case-order was not handled properly.
451
452 2004-02-23  Atsushi Enomoto  <atsushi@ximian.com>
453
454         * Iterator.cs :
455           In FollowingIterator, attribute and namespace nodes should be 
456           considered to have following nodes. See XPath 1.0 section 5 (esp.
457           the description on "document order").
458           On fixing @*/following::*, attribute nodes are regarded as to be
459           RequireSorting = true (which might result in duplicate).
460
461 2004-02-18  Atsushi Enomoto  <atsushi@ximian.com>
462
463         * Expression.cs : string() function expects "Infinity" and "-Infinity"
464           instead of "INF" for conversion from number. XmlConvert is for XSD,
465           not for XSLT.
466
467 2004-02-09  Atsushi Enomoto  <atsushi@ximian.com>
468
469         * Expression.cs : RelationalExpr was comparing number and node in
470           reverse order. Patch by Kazuki Oikawa. Fixed bug #72343.
471           RelationalExpr should also handle result tree fragment as node-set
472           as well as EqualityExpr. This fixes RTF case wrt #72343.
473
474 2004-02-08  Atsushi Enomoto  <atsushi@ximian.com>
475
476         * Expression.cs : tiny code format fix by Andrew Skiba.
477
478 2004-12-26  Atsushi Enomoto  <atsushi@ximian.com>
479
480         * XPathNavigator.cs : Added CheckValidity() and ValueType.
481           For SetTypedValue(), throw NotSupportedException instead of
482           NotImplementedException.
483
484 2004-12-16  Atsushi Enomoto  <atsushi@ximian.com>
485
486         * XPathNavigator.cs :added MoveToFollowing(), ReplaceSelf() and
487           all the missing attributes.
488
489 2004-12-04  Atsushi Enomoto  <atsushi@ximian.com>
490
491         * XPathDocument.cs : switch to DTMXPathNavigator2 which fully
492           eliminated string fields from struct.
493           (When we switch from struct to class, revert this change to use
494           DTMXPathNavigator, since class-based DTMXPathNavigator2 is rather
495           wasting processing speed.)
496
497 2004-12-02  Atsushi Enomoto  <atsushi@ximian.com>
498
499         * Iterator.cs : when PredicateIterator has a numeric predicate, it
500           will never be true twice. So just break up the iteration on true.
501         * XPathNavigator.cs : implemented LookupPrefix().
502         * Expression.cs : ExprParens.Optimize() could just return the content
503           expression.
504
505 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
506
507         * IXPathChangeNavigable.cs,
508           XmlChangeFilters.cs,
509           XPathDocumentNodeChangedAction.cs : removed old files.
510
511 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
512
513         * Iterator.cs : with related to the previous patch, many comments
514           got making no sense. Thanks to Harinath.
515
516 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
517
518         * Iterator.cs : actually I mean this patch.
519
520 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
521
522         * Iterator.cs : Create _current clone only when required. So just set
523           null when MoveNextCore() succeeded (except for some cases that
524           _current is _nav, such as SelfIterator).
525
526 2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
527
528         * Iterator.cs : SlashIterator.RequireSorting is always false. Whether
529           it has to collect nodes in prior or not and whether it might return
530           nodes in inconsistent order is different matter.
531           (It still needs to store nodes when either of branches requires
532           sorting, because they might return the same node later.)
533
534 2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
535
536         * Iterator.cs : reduced some extraneous ComparePosition() that could
537           be written as IsSamePosition(). ParentIterator doesn't have to be
538           RequireSorting.
539
540 2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
541
542         * Iterator.cs : reimplemented AncestorIterator and 
543           AncestorOrSelfIterator just to collect parents and not to move to
544           siblings. In some cases like thousands of siblings, it used to be
545           so slow, while we usually don't have so deep ancestors.
546
547 2004-11-26  Atsushi Enomoto  <atsushi@ximian.com>
548
549         * Expression.cs : warning removal. Added Optimize() which is not
550           implemented at all.
551         * Tokenizer.cs : warning elimination
552
553 2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>
554
555         * XPathEditableNavigator.cs, XPathChangeNavigator.cs,
556           IXPathEditable.cs : more removal of oldies.
557
558 2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>
559
560         * NodeChangedEventArgs.cs, NodeChangedEventHandler.cs : removed oldies.
561
562 2004-11-08  Atsushi Enomoto  <atsushi@ximian.com>
563
564         * Tokenizer.cs : just use raw string instead of char[].
565         * XPathNavigator.cs : reuse NameTable when creating XmlTextReader.
566
567 2004-11-07  Atsushi Enomoto  <atsushi@ximian.com>
568
569         * Iterator.cs :
570           - Made copy constructor certainly different from other constructors.
571           - Position is never computed in each derived type. All MoveNext() are
572             now MoveNextCore().
573           - Most of the protected members could just be private.
574
575 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
576
577         * Expression.cs, XPathNavigator.cs : hold raw expression field for
578           get_Expression. It is preparation for expression optimization.
579
580 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
581
582         * Iterator.cs : SimpleIterator._current could be cloned only when
583           it is required.
584
585 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
586
587         * Iterator.cs : Some removal of Clone() were harmless.
588
589 2004-10-22  Atsushi Enomoto  <atsushi@ximian.com>
590
591         * XPathDocument.cs : now all the new stuff that used to be in 2.0 are
592           reverted.
593         * XPathEditableNavigator.cs : It will be removed. Right now modified
594           a bit to pass build.
595         * XPathNavigator.cs : Added members that are merged from
596           XPathEditableNavigator. Updated members name.
597
598 2004-10-14  Atsushi Enomoto  <atsushi@ximian.com>
599
600         * Iterator.cs :
601           - Added WrapperIterator to return BaseIterator in such case that 
602             variable reference is resolved to XPathNodeIterator. This fixes
603             bug #68267.
604           - Path ".." is reverse axis (actually no effect).
605           - Fixed DescendantIterator.Clone() that missed "_finished" field.
606         * Expression.cs :
607           In ExprVariable.Evaluate(), use WrapperIterator() for custom
608           XPathNodeIterator.
609
610 2004-10-09  Atsushi Enomoto  <atsushi@ximian.com>
611
612         * XPathAtomicValue.cs : Init(string, XmlSchemaType) is private.
613
614 2004-10-05  Atsushi Enomoto  <atsushi@ximian.com>
615
616         * XPathAtomicValue.cs : missing Init() definition for float and string;
617           latter one resulted in infinite loop in Init(object,XmlSchemaType).
618
619 2004-10-04  Atsushi Enomoto  <atsushi@ximian.com>
620
621         * XPathNavigator.cs : TypedValue could be implemented.
622         * XPathEditableNavigator.cs : removed some MonoTODO since now there 
623           are implementations.
624
625 2004-09-13  Atsushi Enomoto  <atsushi@ximian.com>
626
627         * XPathAtomicValue.cs : All .ctor() are separeted from Init().
628           In .ctor(object, XmlSchemaType):
629           - For lists that contains just one item, Init() recursively.
630           - For XPathAtomicValue, Init() recursively for its content fields.
631           For Value and TypedValue, consider typecode from XmlSchemaType.
632
633 2004-09-06  Atsushi Enomoto  <atsushi@ximian.com>
634
635         * XPathEditableNavigator.cs :
636           AppendChild(xmlReader) ignored nodes after than first one, and
637           resulted in infinite loop.
638           Added get_OuterXml overrides. set_OuterXml should not move to
639           parent before deleting current.
640
641 2004-08-25  Atsushi Enomoto  <atsushi@ximian.com>
642
643         * XPathAtomicValue.cs : Value was not returning expected value when
644           it is created as new XPathAtomicValue (object, XmlSchemaType).
645           Compute stringValue and reuse.
646         * XPathNavigator.cs : Temporarily stubbed as to ignore SchemaInfo
647           (for checking XQuery implementation).
648
649 2004-08-25  Atsushi Enomoto  <atsushi@ximian.com>
650
651         * XPathAtomicValue.cs : Handle .ctor() with object parameter more
652           precisely (still not enough, for list argument).
653           Removed commended blocks.
654
655 2004-08-24  Atsushi Enomoto  <atsushi@ximian.com>
656
657         * XPathAtomicValue.cs : DateTime should be convertible to string.
658           Use schemaType's TypeCode for .ctor() that takes object.
659         * XPathNavigator.cs : copied get_InnerXml from XPathEditableNavigator.
660         * XPathEditableNavigator.cs : set_InnerXml should be different (new)
661           property from get_InnerXml. Removed get_InnerXml and get_OuterXml 
662           overrides.
663
664 2004-08-23  Atsushi Enomoto  <atsushi@ximian.com>
665
666         * XPathAtomicValue.cs, XPathNavigator.cs : Eliminate MS.Internal.Xml.*.
667
668 2004-08-03  Atsushi Enomoto  <atsushi@ximian.com>
669
670         * XPathEditableNavigator.cs : implemented some editor support methods.
671
672 2004-08-02  Atsushi Enomoto  <atsushi@ximian.com>
673
674         * XPathDocument.cs :
675           - For .NET 2.0, added a switch to support new XPathDocument2. 
676             If switch is off, then it uses DTM.
677           - Implemented remaining 2.0 bits (except for Obsolete ones).
678
679         To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
680         (It is still too unstable to pass all nunit tests and standalone XSLT
681         tests).
682
683 2004-07-29  Atsushi Enomoto  <atsushi@ximian.com>
684
685         * XPathNavigator.cs : Implemented ReadSubtree().
686
687 2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
688
689         * XPathDocument.cs : for .ctor() and .ctor(XmlNameTable), now it 
690           creates Mono.Xml.XPath.XPathEditableDocument and thus supports
691           IXPathEditable.CreateEditor().
692
693 2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
694
695         * XPathEditableNavigator.cs : Implemented InsertAfter() and 
696           PrependChild(); they are virtual, not abstract.
697         * XPathNavigator.cs :
698           Implemented many 2.0 virtual properties and methods that were 
699           abstract in 1.x.
700           Implemented some Select() methods that uses IXmlNamespaceResolver.
701           Implemented most of ValueAsXxx() using XQueryConvert.
702           IsNode is always true. Implemented OuterXml and WriteSubtree() (but
703           actually they don't work because it depends on ReadSubtree()).
704
705 2004-07-26  Atsushi Enomoto  <atsushi@ximian.com>
706
707         * XPathDocument.cs : added missing && not-likely-to-be-removed members.
708         * XPathEditableNavigator.cs : added BuildSubTree().
709         * XPathException.cs : added missing methods. Hide Message in NET_2_0.
710
711 2004-07-23  Atsushi Enomoto  <atsushi@ximian.com>
712
713         * XPathNodeIterator.cs : implemented 2.0 GetEnumerator().
714
715 2004-07-21  Atsushi Enomoto  <atsushi@ximian.com>
716
717         * XPathExpression.cs, Expression.cs :
718           Added SetContext(IXmlNamespaceResolver).
719         * NodeChangedEventArgs.cs : Added missing [MonoTODO].
720         * XPathAtomicValue.cs : Halfly implemented.
721         * XPathDocument.cs : Added 2.0 members.
722         * XPathDocumentNodeChangedAction.cs : updated member names.
723         * XPathEditableNavigator.cs : Added missing 2.0 members and MonoTODO.
724         * XPathNavigator.cs : Added missing 2.0 members.
725           Fixed some members as virtual->override.
726
727 2004-07-13  Atsushi Enomoto  <atsushi@ximian.com>
728
729         * XmlNodeChageType.cs, XmlChangeFilters.cs : fixed enum values.
730         * XPathResultType.cs : marked [MonoFIX] on .Navigator.
731
732 2004-07-11  Atsushi Enomoto  <atsushi@ximian.com>
733
734         * Expression.cs, Iterator.cs, XPathNavigator.cs :
735           Use IXmlNamespaceResolver for net 2.0. Removed unused code.
736         * XPathEditableNavigator.cs : fixed namespace.
737         * XPathNavigator.cs :
738           Fixed inheritance. Added missing MonoTODO.
739           Removed old .net 1.2 code. 
740
741 2004-06-18  Atsushi Enomoto  <atsushi@ximian.com>
742
743         * DefaultContext.cs : Globalization.
744         * Iterator.cs : In SlashIterator.MoveNext() position might keep 0
745           in case of empty list. Thus extraneous iteration might happened.
746           Removed unused (and clone unsafe) EnumeratorIterator.
747
748 2004-06-06  Atsushi Enomoto  <atsushi@ximian.com>
749
750         * XPathDocument.s : The previous patch is still incomplete to close.
751
752 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
753
754         * XPathDocument.cs : close self-opened XmlTextReader in .ctor().
755
756 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
757
758         * Expression.cs : LookupNamespace() only allows already-atomized names.
759         * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and 
760           set_InnerXml().
761
762 2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
763
764         * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
765           and ToNavigator().
766         * Expression.cs : In Equality comparison, evaluate XPathNavigator in
767           the same as well as NodeSet. This fixes bug #59134.
768
769 2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
770
771         * XPathAtomicValue.cs : missed NET_2_0.
772
773 2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
774
775         * IXPathChangeNavigable.cs,
776           IXPathEditable.cs,
777           NodeChangedEventArgs.cs,
778           NodeChangedEventHandler.cs,
779           XPathAtomicValue.cs,
780           XPathChangeNavigator.cs,
781           XPathDocumentNodeChangedAction.cs,
782           XPathEditableNavigator.cs,
783           XPathItem.cs,
784           XmlChangeFilters.cs,
785           XmlNodeChangeType.cs : added NET_2_0 classes.
786         * XPathDocument.cs,
787           XPathNavigator.cs : updated NET_2_0 members.
788
789 2004-05-20  Atsushi Enomoto  <atsushi@ximian.com>
790
791         * Expression.cs : We should not catch all kind of exception. Just
792           throwing any kind of exception would be preferable.
793           Added support for XPathNavigator values.
794
795 2004-05-13  Atsushi Enomoto  <atsushi@ximian.com>
796
797         * DefaultContext.cs : Removed MonoTODO. done.
798         * Expression.cs : handle XPathResultType.Navigator in some places and
799           removed MonoTODO. Mark MonoTODO with explicit comments (though they
800           are mostly pointing out possibilities of optimization).
801           Removed extra check that depended on the old bugs.
802         * XPathResultType.cs : Fixed .Navigator that had the same value as
803           .String.
804
805 2004-05-12  Atsushi Enomoto  <atsushi@ximian.com>
806
807         * Parser.jay : made class internal.
808
809 2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>
810
811         * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the 
812           result of MoveToParent() should be checked.
813
814 2004-02-17  Atsushi Enomoto  <atsushi@ximian.com>
815
816         * XPathNavigator.cs : Only child and attribute axes are allowed for
817           Matches().
818         * Expression.cs : Added IsPositional property.
819         * DefaultContext.cs : Added some overrides.
820
821 2004-02-16  Atsushi Enomoto  <atsushi@ximian.com>
822
823         * XPathNavigator.cs : no, its still not ok. comment out now.
824
825 2004-02-16  Atsushi Enomoto  <atsushi@ximian.com>
826
827         * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
828           to reduce extraneous Matches() trial.
829         * Iterator.cs : Removed unused MergedIterator.
830         * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
831           unnecessarily. (Test with NeedAbsoluteMatching).
832
833 2004-02-10  Atsushi Enomoto  <atsushi@ximian.com>
834
835         * Iterator.cs : Added overriden Count properties for some iterators
836           (this fixes the half of #50678).
837           Added ListIterator class (which can reduce GetEnumerator()). 
838           In some places we can omit clone for Current property, so added 
839           some check logic (It has no effect as yet).
840         * Expression.cs, DefaultContext.cs :
841           use ListIterator instead of EnumeratorIterator.
842
843 2004-02-08  Atsushi Enomoto  <atsushi@ximian.com>
844
845         * DefaultContext.cs, Expression.cs, Iterator.cs :
846           tiny foreach elimination.
847
848 2004-02-05  Atsushi Enomoto  <atsushi@ximian.com>
849
850         * DefaultContext.cs : trivial processing order fix.
851
852 2004-01-27  Atsushi Enomoto  <atsushi@ximian.com>
853
854         * DefaultContext.cs : Avoid exception if possible.
855         * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
856           nav was positioned at the first, it incorrectly points itself.
857           Don't add names to name table while it is useless and expensive.
858
859 2004-01-08  Nick Drochak <ndrochak@ieee.org>
860
861         * Iterator.cs: Removed unused variable.
862         
863 2003-12-18 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
864
865         * Parser.jay : now it supresses error output from jay.
866         * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
867         * Tokenizer.cs : better error message.
868         * XPathDocument.cs : Use XmlValidatingReader to support id() function.
869           (just found MS.NET actually supports it)
870
871 2003-12-16 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
872
873         * Iterator.cs : On its iteration, moving Current must not affect to
874           MoveNext(). To assure this, Current must be a clone of navigator.
875           Removed unused code.
876
877 2003-12-07 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
878
879         * Tokenizer.cs : Removed some TODOs. (trivial ;-)
880         * Iterator.cs : ParensIterator can inherit from BaseIterator.
881           SlashIterator copy .ctor() always failed to clone. This fixes Count.
882
883 2003-12-03 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
884
885         * Expression.cs : XPathSorters.Compare() should compare document
886           position. See last sentence of XSLT 1.0 secion 10.
887
888 2003-12-03 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
889
890         * DefaultContext.cs : Overrode all functions' ToString().
891           XPathFunctions.ToNumber() trims whitespaces at both side.
892           Fixed NullReferenceException in normalize-space().
893         * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
894           attribute or namespace node correctly.
895           SlashIterator.Clone() didn't clone "next node iterator" correctly.
896           EnumeratorIterator.ctor() should raise an error (not at Clone())
897           when the target IEnumerator is not ICloneable.
898
899 2003-11-28  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
900
901         * Expression.cs : namespace axis now traversed in reverse order, so it
902           requires sorting.
903         * Iterator.cs : UnionIterator.Clone() was incomplete. 
904           NamespaceItarator() should be reverse order (special handling
905           because of XPathNavigator specification).
906
907 2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
908
909         * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
910         * XPathNavigator.cs : ComparePosition() didn't handle attributes 
911           correctly.
912
913 2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
914
915         * Parser.jay, Expression.cs, Iterator.cs :
916           Added ExprParens and ParensIterator classes which is used to handle
917           precedence of parenthesized expressions.
918           (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
919
920         * Expression.cs, Iterator.cs :
921           Added RequireSorting property for each Expr and BaseIterator classes.
922           SlashIterator.MoveNext() now considers correct sorting. But
923           considering performance, it separates two logics, sorted and sortless
924           depending on RequireSorting of left iterator and right expression.
925
926         * Iterator.cs :
927           SimpleIterator.ctor() should consider when nav is null.
928           FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
929           not return any nodes.
930           AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
931           positions.
932           AncestorIterator.MoveNext() should skip Root if context node is
933           Root itself.
934           FollowingIterator.MoveNext() should not handle children of context
935           itself.
936           PrecedingIterator.MoveNext() should skip its ancestors.
937           AxisIterator.ReverseAxis should be dependent on its containing iter.
938           UnionIterator.MoveNext() should consider comparison of nodes in 
939           different document. The behavior is implementation dependent.
940           (see XSLT spec 12.1)
941
942 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
943
944         * Added XPathComparer.cs
945         * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base 
946           iterator correctly, and sort results.
947
948 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
949
950         * DefaultContext.cs : Imcomplete fix ;-)
951
952 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
953
954         * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
955           XPathFunctionId.cs : Exposed Id expression.
956         * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
957           will be used to solve evaluation precedence problem).
958
959 2003-11-09  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
960
961         * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
962           inconsistent order, and 2)may return duplicate result nodes.
963
964 2003-11-06 Ben Maurer  <bmaurer@users.sourceforge.net>
965
966         * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
967         it inherit from the base class. This made b[2] evaluated on 
968         <a /><b /><c /><a /><b /><c /> return the first b node because
969         in the ChildIterator it was the second node and seemed to satsify
970         the predicate.
971
972 2003-11-04  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
973
974         * Iterator.cs : Added bool ReverseAxis property to identify whether
975           the iterator is in reverse order or not.  Added ComparablePosition
976           for correct position comparison for PredicateIterator and reverse-
977           order-axes.  Modified AncestorIterator, AncestorOrSelfIterator,
978           PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
979           return their nodes in document order. This fixes bugzilla #39079.
980
981 2003-10-15  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
982
983         * Iterator.cs : DescendantIterator and FollowingIterator also should
984           not MoveNext() after they reached to the end.
985
986 2003-10-13  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
987
988         * Iterator.cs : Fixed UnionIterator who ignores document order.
989           Fixed SlashIterator whose MoveNext() should finish at its end.
990
991 2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
992
993         * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
994         use NameTable so we dont call strcmp.
995
996 2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
997
998         * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
999         not "abc".
1000         * Iterator.cs, Expression.cs: All axes are
1001         SimpleIterators. SimpleIterators are gaurenteed to give the same
1002         XPathNavigator in Current. Make AxisIterator take a
1003         SimpleIterator, not any old BaseIterator. Will allow us to make
1004         NameTable optimizations and avoid quite a few strcmp's.
1005
1006 2003-09-24 Ben Maurer  <bmaurer@users.sourceforge.net>
1007
1008         * Expression.cs: make // work right, must use another slash itr.
1009
1010 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
1011
1012         * Expression.cs: cant use $$ before assigned.
1013
1014 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
1015
1016         * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
1017
1018 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
1019
1020         * Expression.cs: num != double.NaN does not work.
1021
1022 2003-09-19 Ben Maurer  <bmaurer@users.sourceforge.net>
1023
1024         * Expression.cs: in NodeTypeTest dont throw an exception if it is
1025         an unknown node type (allows for better Pattern debugging).
1026
1027 2003-09-17 Ben Maurer  <bmaurer@users.sourceforge.net>
1028
1029         * DefaultContext.cs: implement sum () and translate ().
1030
1031 2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
1032
1033         * XPathNavigator.cs: Make methods where you pass in the context,
1034         so that we dont have to clone expressions so much.
1035
1036 2003-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1037
1038         * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
1039         system functions are actually expressions. Will allow for some
1040         nice optimizations.
1041
1042 2003-08-25 Ben Maurer  <bmaurer@users.sourceforge.net>
1043
1044         * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
1045         improvement in the method (5ms/call -> .7 ms / call) measured by
1046         monodoc's rendering of N:System.
1047         * Expression.cs: Utility methods to support above.
1048
1049 2003-08-13 Piers Haken  <piersh@friskit.com>
1050         
1051         * Iterator.cs:
1052                 fix MergedIterator.Clone(), now clones other's iterators
1053                 fix DescendantIterator.Clone(), now copies depth
1054                 make iterator cloning constructors more type-specific
1055
1056 2003-08-01 Piers Haken  <piersh@friskit.com>
1057
1058         * Expression.cs: added NodeNamespaceTest
1059         * XPathNavigator.cs: implement Select* with namespaces
1060
1061 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
1062
1063         * Iterator.cs: Allow creation of an EnumeratorIterator with an
1064         XmlNamespaceManager.
1065         
1066 2003-07-31 Piers Haken  <piersh@friskit.com>
1067
1068         * Parser.jay:
1069                 Nested predicates (uses ExprFilter instead)
1070                 more type safety
1071                 make grammar look more like w3c spec
1072         * Expression.cs:
1073                 remove ExprStep, ExprPredicates
1074                 NodeTest is now a NodeSet
1075                 more type-safety
1076         * Iterator.cs:
1077                 PredicateIterator now only takes a single predicate expression
1078                 more type-safety
1079         * XPathNavigator.cs:
1080                 simplified SelectTest
1081         * XPathException.cs:
1082                 fixed indenting
1083
1084 2003-07-30  Duncan Mak  <duncan@ximian.com>
1085
1086         * XPathException.cs
1087         (GetObjectData): 
1088         (Message): Added.
1089
1090 2003-07-29 Piers Haken  <piersh@friskit.com>
1091
1092         * DefaultContext.cs: 'local-name' returns String, not NodeSet!
1093
1094 2003-07-29 Piers Haken  <piersh@friskit.com>
1095
1096         * XPathNavigator.cs:
1097         * Expression.cs:
1098                 add typesafe Evaluate* methods
1099
1100 2003-07-29 Piers Haken  <piersh@friskit.com>
1101
1102         * DefaultContext.cs: fix 'substring-after'
1103
1104 2003-07-29 Piers Haken  <piersh@friskit.com>
1105
1106         * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
1107
1108 2003-07-29 Ben Maurer  <bmaurer@users.sourceforge.net>
1109
1110         * Iterator.cs: dont throw exceptions on tostring ()
1111         
1112 2003-07-28  Piers Haken <piersh@friskit.com>
1113
1114         * DefaultContext.cs: better handling of null argument lists
1115         * XPathNavigator.cs: implement ComparePosition
1116
1117 2003-07-28  Piers Haken <piersh@friskit.com>
1118
1119         * Expression.cs: boolean operators: handle comparing .Any better
1120
1121 2003-07-28  Piers Haken <piersh@friskit.com>
1122
1123         * DefaultContext.cs: count() should return a double
1124         * Expression.cs: better support for handling non-double numbers
1125
1126 2003-07-28  Piers Haken <piersh@friskit.com>
1127
1128         * DefaultContext.cs: better function param matching
1129
1130 2003-07-27  Piers Haken <piersh@friskit.com>
1131
1132         * Expression.cs:
1133         * DefaultContext.cs:
1134                 catch FormatExceptions while parsing numbers
1135
1136 2003-07-27  Piers Haken <piersh@friskit.com>
1137
1138         * Expression.cs:
1139                 fix case sorting order
1140                 allow EvaluateNumber to take XPathResultType.Any
1141
1142 2003-07-27  Piers Haken <piersh@friskit.com>
1143
1144         * Expression.cs:
1145         * Tokenizer.cs:
1146                 don't pass null to XmlQualifiedName constructor
1147
1148 2003-07-27  Piers Haken <piersh@friskit.com>
1149
1150         * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
1151
1152 2003-07-27  Piers Haken <piersh@friskit.com>
1153
1154         * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
1155
1156 2003-07-26  Piers Haken <piersh@friskit.com>
1157
1158         * Expression.cs: fix function evaluation with ambigous argument types
1159         * XPathNavigator.cs: fix silly null reference bug
1160
1161 2003-07-26  Piers Haken <piersh@friskit.com>
1162
1163         * Iterator.cs:
1164         * DefaultContext.cs:
1165                 ArrayListIterator->EnumeratorIterator
1166         * Expression.cs: add sorting support
1167
1168 2003-07-26  Piers Haken <piersh@friskit.com>
1169
1170         * Tokenizer.cs:
1171         * Parser.jay:
1172                 move QName parsing into tokenizer
1173         * Expression.cs:
1174                 fix evaluating XPathResultType.Any
1175                 fix ExprDiv.ToString()
1176                 fix NodeTypeTest.ToString() (for namespace axis)
1177
1178 2003-07-25  Piers Haken <piersh@friskit.com>
1179
1180         * Expression.cs: return clone of $var evaluation
1181
1182 2003-07-26  Piers Haken <piersh@friskit.com>
1183
1184         * Iterator.cs: add setter for NamespaceManager
1185         * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
1186         * Expression.cs: fix func/var exception strings
1187
1188 2003-07-25  Piers Haken <piersh@friskit.com>
1189
1190         * Expression.cs: implement ExprFilter.Evaluate
1191
1192 2003-07-25  Piers Haken <piersh@friskit.com>
1193
1194         * Expression.cs: implement ExprVariable.Evaluate
1195
1196 2003-07-24  Ben Maurer <bmaurer@users.sourceforge.net>
1197         
1198         * DefaultContext.cs: implement lang ()
1199
1200 2003-07-24  Piers Haken <piersh@friskit.com>
1201
1202         * Parser.jay:
1203         * Expression.cs:
1204                 allow ExprUNION to take non-nodeset (eg, $var) arguments
1205
1206 2003-07-24  Piers Haken <piersh@friskit.com>
1207
1208         * Tokenizer.cs: fix variable references
1209         * Parser.jay:
1210         * Expression.cs:
1211         * XPathNavigator.cs:
1212                 use XmlQualifiedName
1213
1214 2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
1215
1216         * XPathDocument.cs : removed Driver class and restored authors' name
1217           (though it is completely rewrote).
1218
1219 2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
1220
1221         * XPathDocument.cs : Replaced existing stub class with real
1222           XPathDocument implementation.
1223
1224 2003-04-28  Piers Haken  <piersh@friskit.com>
1225
1226         * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
1227
1228 2003-03-07  Piers Haken  <piersh@friskit.com>
1229
1230         * Tokenizer.cs: allow '.'s in NCNames
1231
1232 2003-03-07  Piers Haken  <piersh@friskit.com>
1233
1234         * Exression.cs:
1235         * DefaultContext.cs:
1236                 fixed function argument resolution
1237
1238 2003-02-09  Piers Haken  <piersh@friskit.com>
1239
1240         * XPathNavigator.cs:
1241         * Iterator.cs:
1242         * Expression.cs: fix namespace handling
1243
1244 2003-01-04  Piers Haken  <piersh@friskit.com>
1245
1246         * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
1247
1248 2003-02-02  Piers Haken <piersh@friskit.com>
1249
1250         * Parser.jay: add token names
1251         * Tokenizer.cs: fix NCName tokenization
1252
1253 2003-01-02  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
1254
1255         * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
1256                 (It should be a temporary fix.)
1257
1258 2002-09-22  Nick Drochak  <ndrochak@gol.com>
1259
1260         * Parser.cs: Remove extraneous "using" that was stopping the build.
1261
1262 2002-09-21  Piers Haken <piersh@friskit.com>
1263
1264         * XPathException: implementation
1265         * Expression.cs:
1266         * Iterator.cs:
1267         * Parser.jay:
1268         * Tokenizer.jay:
1269         * XPathNavigator.jay:
1270                 use XPathException.
1271
1272 2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1273
1274         * Parser.cs: commented out non-existent namespace (it compiles fine
1275         with mcs because of a bug that is already on bugzilla).
1276
1277 2002-09-12  Piers Haken <piersh@friskit.com>
1278
1279         * Tokenizer.cs: fix parsing numbers that start with '.'
1280         * DefaultContext.cs: use MS-compatible formatting of doubles
1281
1282 2002-09-12  Piers Haken <piersh@friskit.com>
1283
1284         * Iterator.cs: added NullIterator to handle unspecified contexts
1285         * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
1286         * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
1287
1288 2002-09-12  Piers Haken <piersh@friskit.com>
1289
1290         * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
1291         * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
1292         * DefaultContext.cs: fix id() return type.
1293
1294 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1295
1296         * DefaultContext.cs: fixed bug #28840.
1297         * Expression.cs: added FIXME.
1298
1299 2002-08-17  Jason Diamond <jason@injektilo.org>
1300
1301         * XPathNavigator.cs: Fixed matching on patterns that look like
1302         absolute XPath expressions.
1303
1304 2002-08-17  Jason Diamond <jason@injektilo.org>
1305
1306         * XPathNavigator.cs: Added naive (but working) implementation of
1307          Matches.
1308
1309 2002-07-31  Piers Haken <piersh@friskit.com>
1310
1311         * XPathDocument.cs: simple, XmlDocument-based implementation
1312
1313 2002-07-25  Piers Haken <piersh@friskit.com>
1314
1315         * DefaultContext.cs: implement XPathFunctionName 'name()' function.
1316
1317 2002-07-17  Piers Haken <piersh@friskit.com>
1318         
1319         * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
1320         * Parser.jay: remove redundant production
1321         * Expression.cs: add switches for debugging under VS.NET
1322
1323 2002-07-17  Piers Haken <piersh@friskit.com>
1324
1325         * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
1326
1327 2002-07-15  Piers Haken <piersh@friskit.com>
1328
1329         * Iterator.cs:
1330                 - rename UnionIterator to MergedIterator, 
1331                 - create new UnionIterator to implment uniqueness for '|' operator
1332                 - fix position bug in ArrayListIterator.Clone()
1333         * Expression.cs: use new UnionIterator constructor syntax
1334
1335 2002-07-12  Piers Haken <piersh@friskit.com>
1336
1337         * Iterator.cs: PredicateIterator: handle numeric predicates
1338         * Parser.jay: add some debugging support: yyparseDebug
1339         * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
1340
1341 2002-06-29  Piers Haken <piersh@friskit.com>
1342
1343         * Expression.cs:
1344                 - remove dead code
1345                 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
1346                 - remove NodeTestTypes enum
1347                 - remove NodeTestTypeAny (functionality provided by base now)
1348                 - fix ExprStep to handle wildcard QNames
1349         * Parser.jay:
1350                 - moved to Mono.Xml.XPath namespace
1351                 - use XPathResultType
1352                 - handle wildcard QNames
1353                 
1354         * Tokenizer.cs: moved to Mono.Xml.XPath namespace
1355         
1356         * XPathNavigator.cs: implement
1357                 - IsDescendant
1358                 - SelectAncestors
1359                 - SelectDescendants
1360                 - SelectChildren
1361                 
1362         * XPathResultType.cs: fix enum values
1363         
1364 2002-06-24  Jason Diamond  <jason@injektilo.org>
1365
1366         * XPathScanner.cs: Removed.
1367
1368 2002-06-24  Dick Porter <dick@ximian.com>
1369
1370         * XmlCaseOrder.cs: Fix namespace
1371
1372 2002-06-23  Piers Haken <piersh@friskit.com>
1373
1374         * DefaultContext.cs: implemented XPathFUnctionId
1375         * Iterator.cs: new ArrayListIterator for id() support
1376
1377 2002-06-23  Piers Haken <piersh@friskit.com>
1378
1379         * XPathNavigator.cs: implement:
1380                 - Compile
1381                 - Evaluate
1382                 - Clone
1383                 - Select
1384                 - ToString
1385                 - some forwarding methods
1386
1387         * XPathNodeIterator: implement caching Count
1388
1389         * Tokenizer.cs: new XPath tokenizer
1390         * Parser.jay: new XPath grammar
1391         * Parser.cs: new precompiled XPath grammar
1392         * Expression.cs: new XPath expression objects
1393         * Iterator.cs: new XPath result/context objects
1394         * DefaultContext.cs: new XPath function binding context
1395
1396 2002-05-08  Tim Coleman <tim@timcoleman.com>
1397         * XPathDocument.cs:
1398         * XPathException.cs: New stub files added.
1399
1400 2002-04-12  Duncan Mak  <duncan@ximian.com>
1401
1402         * XmlCaseOrder.cs: Moved to here from System.Xml.
1403
1404 2002-03-26  Jason Diamond  <jason@injektilo.org>
1405
1406         * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated 
1407         steps. Both absolution and relative abbreviated location paths.
1408
1409 2002-03-25  Jason Diamond  <jason@injektilo.org>
1410
1411         * XPathScanner.cs: Added new file. This class is supposed to be internal
1412         but that would make it impossible to test.
1413
1414 2002-03-08  Duncan Mak  <duncan@ximian.com>
1415
1416         * XPathNamespaceScope.cs:
1417         * XPathNodeType.cs:
1418         * XPathResultType.cs:
1419         * XmlDataType.cs:
1420         * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
1421         implementation. XPathResultType is interesting as EnumCheck does
1422         not show the Navigator element, but shows the String element twice.
1423
1424 2002-03-08  Jason Diamond  <jason@injektilo.org>
1425
1426         * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
1427
1428 2002-03-06  Jason Diamond  <jason@injektilo.org>
1429
1430         * ChangeLog: Added to this directory.
1431
1432         * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
1433         XPathResultType.cs: New files.
1434
1435         * XPathNavigator.cs: Stubbed out all properties and methods.