1 2006-11-30 Atsushi Enomoto <atsushi@ximian.com>
3 * XslStylesheet.cs, XslTemplate.cs : added XSLT stack frame debug
4 support, based on the patch by Michael Meeks.
6 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
8 * XslTransformProcessor.cs : push current node context after iterating
9 template target node. Added another NodesetMoveNext() which takes
10 explicit XPathNodeIterator to iterate and filter whitespaces out.
12 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
14 * XslTransformProcessor.cs : in NodesetMoveNext() take
15 XPathContext.PreserveWhitespace() into consideration.
17 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
19 * XslTransformProcessor.cs,
20 Compiler.cs : eliminate ExpressionStore. Now sorting is done
21 inside XslSortEvaluator.
22 * XslSortEvaluator.cs : new file. It handles current node in XSLT
23 context. Fixed bug #77781.
25 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
27 * XslTransformProcessor.cs : in PushNodeset() avoid Clone(). It saves
28 extra cost, and might avoid possible bug in for-each and current()
31 2006-02-22 Atsushi Enomoto <atsushi@ximian.com>
33 * ScriptCompilerInfo.cs : mbas unlike vbc references System.dll
34 etc. by default, so don't add them as references.
35 Set only local file name for #ExternalSource. Fixed bug #75789.
37 2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
39 * GenericOutputter.cs : When writing string, use WriteWhitespace()
40 instead of WhiteString() when its state is not Content. This fixes
41 BVTs_bvt066 case (broken after implementing strict state check in
44 2005-12-24 Gert Driesen <drieseng@users.sourceforge.net>
46 * XslOutput.cs: Do not report error for unknown value for "standalone"
47 and "omit-xml-declaration" attributes, and extranous attributes if
48 stylesheet version is not "1.0".
50 2005-12-24 Atsushi Enomoto <atsushi@ximian.com>
52 * Compiler.cs : pass stylesheet version to XslOutput to determine
53 "indent" value validity.
54 * XslOutput.cs, HtmlEmitter.cs, GenericOutputter.cs : Reverted
55 buggy changes on "indent" attribute handling.
56 http://www.w3.org/TR/xslt#section-HTML-Output-Method
58 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
60 * XslOutput.cs: Reduced indentation of cases in switch statement.
62 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
64 * ScriptCompilerInfo.cs: Fixed line endings.
65 * XslStylesheet.cs: Beautify error messages.
66 * Debug.cs: Fixed line endings.
67 * XslOutput.cs: Indent is now bool instead of string, use
68 MoveToAttribute to navigate through attributes instead of using
69 GetAttribute, as we also need to distinguish attributes with
70 zero-length value from attributes that are not specified for
71 correct implementation of DOCTYPE. Implemented validation for
72 value of "omit-xml-declaration", "standalone" and "indent".
73 We now throw a XsltCompileException for unknown attribute.
74 * XmlWriterEmitter.cs: only skip WriteDocType is systemId is null.
75 * HtmlEmitter.cs: XslOutput.Indent is now bool. Fixed WriteDocType
77 * XmlDecimalFormat.cs: Beautify error messages.
78 * XslTemplate.cs: Beautify error messages.
79 * GenericOutputter.cs: XslOutput.Indent is now bool.
80 * Compiler.cs: Beautify error messages.
82 2005-12-21 Atsushi Enomoto <atsushi@ximian.com>
84 * XslTemplate.cs : don't check name and mode attributes on
85 non-'xsl:template' element. This should fix bug #77051.
87 2005-12-13 Andrew Skiba <andrews@mainsoft.com>
89 * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity
91 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
93 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
94 '#' and 'ExternalResource'. bug #75789 should be fixed.
96 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
98 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
99 XPathNavigator given to GetNodesByValue()
101 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
103 * XslCompiledContext.cs : since XsltContextInfo is struct, having
104 an array of this type and setting fields of each struct didn't
105 make sense. It thus blocked expected PreserveWhitespace behavior.
107 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
109 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
110 from the table for LRE (don't consider it as ""; spec. 7.1.2)
113 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
115 * ScriptCompilerInfo.cs : Compile correct replacement result.
118 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
120 * Compiler.cs : (Compile) check children only when it is the document
121 element. Fixed bug #76046.
123 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
125 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
126 not C#. It should fix bug #75789.
128 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
130 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
131 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
134 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
136 * XslFunctions.cs : XslTransform recovers from errors on document
137 resolution. Fixed bug #75663.
139 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
141 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
142 only for related elements.
144 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
146 * MSXslScriptManager.cs : it should ignore compiler warnings. This
149 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
151 * XslDecimalFormat.jvm.cs : added
153 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
155 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
156 support CodeDom). Use Guid.ToString("N").
158 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
160 * Compiler.cs : removed extraneous using_directive.
162 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
164 * XslKey.cs : the iterator does not require sorting (already sorted).
167 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
170 Variables are stored per stylesheet and added to compiler after
171 all of the contents are processed (handle import precedence).
172 Imports are now processed in prior to other contents (incorrect
173 imports are now rejected). After imports, process includes to
174 process nested imports. In-process included stylesheets are
175 temporarily stored in including stylesheet.
176 Handle keys like variables are handled.
177 Added Compile() that is splitted from .ctor().
179 Store keys in compiler and compiled stylesheet.
180 Duplicate variables in imports are now overriden as expected.
181 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
183 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
185 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
186 from each EvaluateXXX() methods.
187 * MsxslScriptManager.cs : not to leave reference to stylesheet
188 navigator, pass current node to Compile().
189 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
190 navigator cache for each pattern, to avoid Clone() and not to leave
191 reference to already-done instance navigator.
193 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
195 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
196 * XslKey.cs : Use XSLT pattern parser for match.
197 UsePattern is now "Use" (it is not a pattern).
198 Reimplemented Evaluate() to make full use of index table.
199 Added Matches() to handle shorter match evaluation. For const value
200 for key (e.g. key patterns), it could avoid Evaluate().
201 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
202 new KeyIndexTable.Matches().
203 * XslFunctions.cs : Added PatternMatches() that just delegates to new
204 XsltCompiledContext.MatchesKey().
206 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
208 * GenericOutputter.cs : commented out warned fields.
210 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
212 * XslKey.cs : removed last ListIterator.ctor() argument.
213 Reverted the last commit that changed internal key index change
214 from ArrayList to Hashtable. Avoid clone in CollectIndex().
215 Sort results in Evaluate() before passing list to ListIterator.
216 * XslFunctions.cs : removed last ListIterator.ctor() argument.
218 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
221 XsltCompiledContext.cs,
223 XslTransformProcessor.cs : Now dynamic context key index table is
224 separate from XslKey static context. Added KeyIndexTable class and
225 store it into XsltCompiledContext with hash name-table mapping.
226 Cache map from statically-named key to index table.
227 Use Hashtable for internal key cache instead of ArrayList.
229 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
231 * XslKey.cs : fixed node iteration on collecting key indices which
232 could have resulted in an infinite loop.
234 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
236 * XslDecimalFormat.cs : in some cases it does not throw format
239 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
241 * XsltCompiledContext.cs,
242 XslStylesheet.cs : Fixed significant performance loss on whitespace
245 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
247 * XslKey.cs : removed unused NeedAbsoluteMatching.
248 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
249 Added some missing ToString() overrides.
251 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
253 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
254 to work fine with xsl:*-space attributes as expected.
255 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
256 actually nothing. It should not use XsltContext.PreserveWhitespace()
257 because this method is used to control output, while the referenced
258 method is used to control source document.
260 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
262 * XslTemplate.cs : First non-element content were incorrectly ignored.
264 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
266 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
267 to reduce references to stylesheet XPathNavigator. To accomplish it,
268 IStaticXsltContext does not declare GetNsm() anymore. All xslt
269 function types now directly hold IStaticXsltContext.
270 * XslStylesheet.cs : removed "Compiler c" field.
271 Removed unused properties.
273 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
275 * GenericOutputter.cs : When WriteStartElement() requires to add
276 new namespace declaration, _currentNamespaceDecls needs to be set.
278 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
280 * GenericOutputter.cs : for duplicate attribute in an element, no need
281 to keep previous prefix.
283 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
285 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
286 namespace. Rewrite prefix only when there is non-empty namespace.
288 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
290 * XslStylesheet.cs : Now namespace aliases are collected in prior to
291 all other toplevel elements. Removed unused code.
293 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
295 * GenericOutputter.cs : compute attribute prefix only when actual
296 emission. Fixed some cases that namespace output was missing.
298 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
300 * GenericOutputter.cs : no need to use two collections to store
301 pending attributes. Just use ordered ListDictionary.
302 newNamespace.Add(int) causes extraneous boxing.
304 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
306 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
307 OutputLiteralNamespaceUriNodes() so that everyone can understand
308 what it means and when it should be invoked.
310 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
312 * Compiler.cs : added another CompileTemplateContent() which is
313 requred in xsl:for-each. Commented out unused method.
315 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
317 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
318 in stylesheet should be considered in TryElementNamespacesOutput().
319 ParseQNameListAttribute() is not properly working for filling
322 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
324 * XslStylesheet.cs : included stylesheet could be literal result
325 element as stylesheet (see the spec 2.6.1).
327 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
329 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
330 empty string when nsURI is empty.
331 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
332 unlike xml but like span, as written in the spec 16.2.
334 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
336 * XslCompiledContext.cs, XslTransformProcessor.cs :
337 According to errata E25, those namespaces 1) that has the same
338 name as current element's prefix, or an empty name when current
339 element's namespace URI is empty, are not written to output.
340 So added current element information to XPathContext and added
341 prefix parameter to PushElementState(), added xsl:copy check to
342 TryElementNamespacesOutput().
343 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
345 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
347 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
350 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
352 * XslTemplate.cs : According to the spec 5.7, it is an error for
353 xsl:template to have 'mode' without 'match'.
355 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
357 * Compiler.cs : added ns lookup with nsDecls Hashtable.
359 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
361 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
363 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
365 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
366 namespace "http://www.w3.org/XML/1998/namespace".
368 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
370 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
371 * HtmlEmitter.cs : CDATA nodes are written just as text.
372 * GenericOutputter.cs : custom format are treated just as XML output.
374 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
378 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
379 and WriteState. Writing XML declaration is done inside
380 DetermineOutputMethod().
382 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
384 * Compiler.cs : reverted previous fix, since it should be done
385 in XslTransformProcessor with root stylesheet.
386 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
387 don't output alias namespaces. And now consider null exclusions.
389 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
391 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
393 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
395 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
396 namespace nodes. Patch by Andrew Skiba with some fixes.
397 * XslTransformProcessor.cs : Patch by Andrew Skiba.
398 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
399 as to handle all namespace nodes to copy in stylesheet nodes.
400 Global parameterss are evaluated before global variables.
401 * XmlOutputter.cs : removed unused code.
405 * Actually variables and params should check reference recursion.
406 This patch incompletely fixes the problem.
407 * Those operations that considers excluded-result-prefixes must
408 also check those attributes of its ancestors.
410 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
412 * XmlWriterEmitter.cs : String.Replace() was insufficient for
413 sequential candidates for replacement. Patch by Andrew Skiba.
415 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
417 * GenericOutputter.cs : don't output extraneous xml declaration.
420 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
422 * XslStylesheet.cs : MS implementation had chosen to recover from
423 the error, in the way specified in the spec 7.7.1. Patch by Andrew
426 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
428 * XslTemplate.cs : if input is literal result element, it could result
429 in ArgumentException. Patch by Andrew Skiba.
431 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
433 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
434 NullReferenceException. Patch by Andrew Skiba.
436 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
438 * XslOutput.cs : MS.NET recovers from unknown encoding according to
439 XSLT spec 16.1. Patch by Andrew Skiba.
441 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
443 * HtmlEmitter.cs : patch by Andrew Skiba.
444 Remove extra element prefix output. simplify attribute prefix output.
445 Attribute output might have resulted in invalid element stack peek.
446 Output specified media type if any.
448 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
450 * Compiler.cs : Patch by Andrew Skiba.
451 wrap internal exception with XsltCompileException.
452 Raise an error for not-found document URI.
453 QName might contain sequential whitespaces and thus could be empty.
455 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
457 * XslAttributeSet.cs : just ignore other kind of nodes than element
458 in its content. Fix by Andrew Skiba.
460 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
462 * XslOutput.cs : for html and text output mode, just set internal
463 omitXmlDeclaration status true. Patch by Andrew Skiba.
465 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
467 * XslFunctions.cs : fixed line ending mixture.
469 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
471 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
474 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
477 Compiler.cs : XmlResolver.ResolveUri() may return null.
479 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
481 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
484 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
486 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
488 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
490 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
493 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
495 * XslStylesheet.cs : removed unused fields.
496 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
499 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
501 * Compiler.cs, XslTransformProcessor.cs :
502 when creating XmlTextReader, reuse XmlNameTable.
504 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
506 * Compiler.cs : Changes that reflects CompiledExpression changes.
508 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
510 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
511 This fixes bug #67390.
513 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
515 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
517 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
519 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
520 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
521 : Globalization. Removed unused code.
523 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
525 * XslKey.cs : Key-value search in absolute path search was
528 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
530 * HtmlEmitter.cs : Correct URL escape implementation.
532 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
534 * XslTransformProcessor.cs : On document() function, close the
535 XmlTextReader opened from uri string.
537 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
540 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
541 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
542 should override another overload.
544 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
546 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
547 assembly should not include the .dll extension.
549 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
552 - CompilePattern() now throws XsltCompileException for invalid
553 pattern, and add error location support.
554 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
555 Now it returns MSXslNodeSet instance (for msxsl:node-set).
556 * Debug.cs : don't throw System.Exception.
557 * XslFunctions.cs : Added MSXslNodeSet class.
558 * XslTemplate.cs : reflected CompilePattern() change.
559 * XslTransformProcessor.cs : don't throw System.Exception.
560 * XsltCompiledContext.cs : don't throw System.Exception.
562 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
566 XslStylesheet.cs : made classes/enums internal.
568 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
570 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
571 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
572 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
573 XslTransformProcessor.cs : Make extra classes internal.
575 * XslKey.cs : It should require sorting.
576 * Debug.cs : Just avoid debug output. Only who want to output should
579 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
581 * GenericOutputter.cs : Culture-independency fix.
582 Replaced StringCollection to ArrayList.
583 * XslOutput.cs : Culture-independency fix.
585 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
587 * Compiler.cs : When BaseURI is an empty string, it should not try to
588 create Uri instance. This will fix bug #56832, but not sure.
589 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
590 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
591 should be the TextReader's NewLine).
592 * MSXslScriptManager.cs : Should raise an error when the prefix which
593 was specified by "implements-prefix" was not found.
595 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
597 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
598 when BaseURI for msxsl:script node is not available. This fixes
600 Don't output line number in the error message, when it is 0.
602 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
604 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
606 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
611 XslTransformProcessor.cs :
612 Throw specific types of exceptions instead of Exception.
613 * XslFunctions.cs, XsltCompiledContext.cs :
614 added node argument for XsltExtensionFunction ctor() etc.
616 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
618 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
619 CodeDom. Compilation error should be caught. This fixes bug #55875.
621 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
623 * XslStylesheet.cs : "version" attribute is also required for embedded
626 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
629 XslStylesheet.cs : Reject xsl element other than stylesheet and
630 transform. Check mandatory version attribute (only for existence).
632 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
634 * MSXslScriptManager.cs : if extension namespace was not found in
635 the script, just return null. Patch by Joshua Tauberer.
637 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
639 * XslLiteralElement.cs : quick fix for ArgumentNullException which
640 was because of the combination of non-namespaced instances and
641 exclude-result-prefixes.
643 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
645 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
646 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
647 * XslFunctions.cs : hereby Added.
648 * Compiler.cs : Removed deleted usingdecl.
650 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
652 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
653 * XslKey.cs : Added ExprKeyContainer expression type, which is
654 designed to be matched at any level.
655 * Compiler.cs : support for ExprKeyContainer.
657 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
659 * XslKey.cs : Now it collects key and matching nodes at the first
660 evaluation time. After that, we can just get them from the table.
661 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
662 prohibited key() usage in "match" and "use" attributes in xsl:key.
663 Modified accessibility of some classes.
664 * GenericOutputter.cs,
668 XmlWriterEmitter.cs : made classes internal.
669 * XslOutput.cs : support line info for exception.
670 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
672 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
674 * XsltCompiledContext.cs : fixed the length of context info array.
676 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
678 * XsltCompiledContext.cs :
679 replaced EnumeratorIterator with ListIterator
681 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
683 * GenericOutputter.cs,
686 XslTemplate.cs : tiny foreach elimination.
688 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
690 * XslOutput.cs : Reverted. default encoding should be utf-8.
692 2004-01-14 Jackson Harper <jackson@ximian.com>
694 * GenericOutputter.cs: Add constructors that do not take an
695 encoding to fix build.
697 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
699 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
700 write XML declaration. It means that output supports non document
701 entity. This fixes bug #52729.
702 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
703 modified WriteStartDocument() signature to receive Encoding.
704 * GenericOutputter.cs :
705 - Added .ctor() which receives Encoding. (It is used for TextWriter
706 output to get actual encoding.)
707 - Added .ctor() to take an boolean argument which indicates it is
708 variable content or not. (When variable, it does not call
709 WriteStartDocument().)
711 XsltCompiledContext.cs : comment out WriteLine().
712 * XslOutput.cs : set default encoding utf-16.
714 2004-01-08 Nick Drochak <ndrochak@ieee.org>
716 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
718 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
720 * XslDecimalFormat.cs : implemented format-number() other than number
722 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
723 catch ArgumentException which will be thrown by formatting process.
725 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
727 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
729 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
731 * XsltCompiledContext.cs: Remove workaround now that monodoc
734 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
736 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
737 aliases at compilation time, so evaluate at the first run-time.
739 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
741 * GenericOutputter.cs : support for runtime-determined output type.
742 * HtmlEmitter.cs : Fixed invalid doctype output.
743 Fixed incorrect double attribute output on non-HTML elements.
744 Improved indentation. Fixed "selected" attribute output.
745 Don't have to convert "'" to "'".
746 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
747 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
748 * XslStylesheet.cs, XsltCompiledContext.cs :
749 space resolution consideration for import and wildcard.
751 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
753 * Compiler.cs, XslTransformProcessor.cs :
754 Use XmlValidatingReader to support id() for external stylesheets.
755 * XslKey.cs, XsltCompiledContext.cs :
756 to evaluate MatchPattern and UsePattern, SetContext() is required.
757 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
759 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
761 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
762 Added WriteWhitespace().
763 * GenericOutputter.cs, XslTemplate.cs : Call above.
764 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
765 CurrentNode in for-each context have to be pulled at evaluation.
767 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
769 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
770 function for bugzilla #52144. It should be reverted soon.
772 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
774 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
776 * MSMslScriptManager.cs : modified generated assembly class to be unique
777 through running AppDomain.
778 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
779 arguments to actual argument types. Bugzilla #51450 should be fixed.
781 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
783 * HtmlEmitter.cs : Fixed incorrect character entity output.
785 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
787 * Added ScriptCompilerInfo.cs.
788 * MSXslScriptManager.cs : Fixed *true* author's name.
789 Implemented basic msxsl:script support.
790 * Compiler.cs : Added Evidence member.
792 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
794 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
795 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
796 Added WriteWhitespace() to assure not writing whitespaces as cdata.
797 * XslAttributeSet.cs : Error check if attribute-set contains other than
798 xsl:attribute. Error should be XsltException.
799 * XslDecimalFormat.cs : Complete equality check. Allow just one
800 character value for some attributes.
801 * XslStylesheet.cs : Made whitespace control setting overridable.
802 Added Version property (for the future compatibility mode).
803 Check unrecongnized top level element.
804 * XslTemplate.cs : Check priority as a number.
805 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
806 for xsl:preserve-space and xsl:strip-space support.
807 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
808 incomplete), PushScope and Pop
810 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
812 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
814 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
816 * Compiler.cs : In FromListString(), it should use default ns,
818 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
819 precedence. Doctype should be written even if SYSTEM id is absent.
820 Fixed possible multiple xmlns output.
822 - Encoding output using META element.
823 - Doctype name is fixed (html).
824 - Double quotation on PUBLIC and SYSTEM missing.
825 - Fixed incorrect tag name check for IMG.
826 - '>' should not be escaped.
827 * XmlWriterEmitter.cs :
828 Added newline before doctype. In WriteComment(), "--" and tail
829 '-' are not allowed (it escapes, while XmlWriter simply rejects).
830 * XslTransformProcessor.cs : cdata-section-elements should enclose
831 direct child tests only. Added PreserveWhitespace() (incomplete).
832 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
834 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
836 * IdPattern.cs : This should work against multiple ids.
838 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
841 * MSXslScriptManager.cs
843 * XslTransformProcessor.cs
844 * XsltCompiledContext.cs: Some work on msxsl script.
846 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
848 (in general: cdata-section-elements support, correct document()
849 base uri handling, and so on)
850 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
851 And move to document element. Added XslNameUtil.FromListString().
852 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
853 Added WriteCDataSection().
854 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
855 Added InsideCDataSection.
856 * GenericOutputter.cs :
857 In .ctor(), WriteState should be succeeded from output XmlWriter.
858 WriteNamespaceDecl() now drops declaration identical to existing one.
859 Removed obsolete htmlEmulation.
860 * XslOutput.cs : Added CDataSectionElements support.
861 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
862 * XslTransformProcessor.cs :
863 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
864 now considers xsl:exclude-element-prefixes on literal element.
865 Added PushCDataState() and PopCDataState().
866 * XsltCompiledContext.cs : When base uri of document() target is empty,
867 then it should use stylesheet's BaseURI, not that of current document.
869 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
871 * Compiler.cs : Modified decimal-format comparison code.
874 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
875 be called only when required.
876 * HtmlEmitter.cs : Improved indentation stuff.
877 * XslDecimalFormat.cs : Added incomplete implementation of
878 CheckSameAs() and FormatNumber().
880 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
881 from StringDictionary to ArrayList of QName (to keep order).
883 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
885 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
886 node type (i.e. attribute and namespace). Removed extraneous Clone().
887 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
889 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
891 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
892 XslStylesheet.cs : Added Keys support here.
893 * XslTransformProcessor.cs : Should call SetContext() to expressions
894 before evaluating current nodes.
895 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
896 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
897 for KeyPattern. It now uses CompiledStyle.FindKeys().
899 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
901 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
902 to Xalan tests and MS.NET implementation (only for test convenience).
903 * XslOutput.cs : Indent holds string rathen than bool. Its default value
904 varies in the context. When method="html", then default is "yes".
905 * XslTransformProcessor.cs : Extension element prefixes should not
906 be written as stylesheet namespaces.
907 * XsltCompiledContext.cs : Return type of generate-id() is string.
908 Implemented unparsed-entity-uri().
910 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
912 * Compiler.cs : More complete attribute set gathering.
913 GetNamespacesToCopy() should only return Local namespaces.
914 * GenericOutputter.cs : Added support for indentation.
915 Added easy hack for html output.
916 More correct Prefix handling (considers already defined ones).
917 Namespace emmission is moved to CheckState().
918 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
919 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
920 * GenericOutputter.cs, Outputter.cs :
921 Added CanProcessAttributes property for
922 use-attribute-sets of xsl:copy.
923 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
924 Added support for exclude-result-prefixes.
925 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
927 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
929 * Compiler.cs : It is not important, but attribute order became closer
930 to MS.NET and Xalan (assuming from OASIS tests).
932 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
934 * GenericOutputter.cs : Attribute wasn't overwritten its properties
935 because Attribute is struct it was let to another local variable.
937 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
939 * GenericOutputter.cs: make html output a warning, because doing
940 xml will be right most of the time.
942 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
944 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
945 here for a long time and it hurts thread safty and memory
948 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
950 * Compiler.cs: save the parser (will reduce memory allocation when
951 Jackson's jay patch is committed).
953 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
955 * Attribute.cs: Change to struct. Remove QName class.
956 * GenericOutputter.cs: use an Attribute [] rather than an
957 ArrayList. Allows us not to allocate Attributes, which is great
958 for speed. Roll our own allocation.
960 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
962 * Compiler.cs: add GetNsm to main class as well.
964 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
966 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
967 internal version so we get null if the attr doesnt exist.
969 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
971 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
972 where curVarScope == null
974 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
977 - Better handling of empty attributes (vs not being specified)
978 - Bug in handling #default
980 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
982 * Compiler.cs: Off by one when parsing localname of QName
983 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
984 children (so that they get overriden)
986 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
988 * GenericOutputter.cs: Output attributes in order recieved; not
989 required by spec, but useful for running test cases.
991 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
993 * GenericOutputter.cs - fix bug with outputting state.
994 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
995 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
997 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
999 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
1000 exprs on use, pass to nav.
1002 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
1004 * Compiler.cs: pass satic context to Pattern ctor.
1006 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
1009 GenericOutputter.cs - generic Outputter implementation,
1010 Attribute.cs - represents outputted attribute,
1011 Emitter.cs - abstract output emitter,
1012 TextEmitter.cs - text emitter,
1013 XmlWriterEmitter.cs - emitter to XmlWriter.
1014 * Checking of duplicating attributes is done in GenericOutputter.
1015 * Namespace outputting logic is implemented in GenericOutputter.
1016 * Outputter.cs: Writing namespace declarations is delegated to
1017 derived classes (GenericOutputter).
1018 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
1020 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
1022 * XslTransformProcessor.cs: evaluate variables at beginning
1023 when / is current node.
1025 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
1027 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
1028 Fix up namespace handeling
1030 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1032 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
1034 * XslDecimalFormat.cs: Stub for decimal-format.
1036 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1038 * TextOutputter.cs: Add option to ignore element content (Oleg).
1040 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1042 * Compiler.cs: Really give null for blank avt's
1044 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1046 * Compiler.cs: Fixed lre/lre04.
1048 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1050 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
1051 won't have default namespace. See http://www.w3.org/TR/xslt#qname
1053 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1055 * XslTransformProcessor.cs: add support for resolving documents.
1056 * XsltCompiledContext: add support for document () function.
1058 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1060 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
1061 of the abstract methods in Outputter, making them call other
1062 functions with default values, remove impl's in derived classes.
1064 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1066 * Outputter.cs: s/Close/Done
1067 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
1068 * XslTransformProcessor.cs: Flush output when popping, pop at end.
1070 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1072 * Outputter.cs: Add support for namespaces.
1074 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1076 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
1077 XslTransformProcessor.cs: move output logic from XslStylesheet to
1080 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1082 * XslOutput.cs: add support for encoding.
1084 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1086 * *.cs: Support for xsl:output. (Oleg)
1088 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1090 * Compiler.cs: handle extension and excluded namespaces.
1092 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1094 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1095 from the stylesheet for correct namespace resolution.
1097 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1099 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1100 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1102 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1104 * XslTransformProcessor.cs: Add a table to detect when an object
1106 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1107 exception when no use-attribute-sets are specified.
1109 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1111 * Compiler.cs: Add support for boolean attributes (yes/no).
1113 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1115 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1117 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1119 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1121 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1123 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1125 * XslTransformProcessor.cs: Add EvaluateNumber method.
1127 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1129 * XsltCompiledContext.cs: Implement more functions.
1131 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1133 * Compiler.cs: Add support for key, utility function to parse
1134 QName's from the XsltContext. Store keys in the CompiledStyle, not
1136 * XslKey.cs: Real implementation
1137 * XslStylesheet.cs: Move the keys to CompiledStyle.
1138 * XsltCompiledContext.cs: Implement the key function
1140 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1142 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1143 the functions ;-). Also wrote current ().
1145 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1147 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1148 done in XPath. Add stubs for XSLT functions.
1150 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1152 * Compiler.cs: To resolve a variable you now need to pass the
1153 processor, so that it can be passed to IsEvaluated. A local will
1154 only be resolved if it has already been evaluated.
1155 * XsltCompiledContext.cs: Pass along the processor.
1157 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1159 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1160 variable values in the XslTransformProcessor.
1161 * XsltCompiledContext.cs: If the scope is null, don't look there!
1162 * Debug.cs: New method Assert
1164 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1166 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1167 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1168 internal methods in XPathNavigator. Remove verbose debugging messages.
1170 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>