NOTICE: This file isn't kept up to date anymore. Look at the timeline of the leading fossil repository (http://tdom.org) or at the backup repository at https://core.tcl.tk/tdom/timeline for detailed lists of code changes. User interface changes/enhancements and other important changes will still be documented in the CHANGES file. 2012-05-17 Rolf Ade * generic/dom.h * generic/tcldom.c: Compatibility with Tcl 8.6 - Beginning with 8.6, interp->errorLine isn't public visible anymore (TIP 330). * generic/domxslt.c: Fixed wrong size on memcpy on 64 bit (when sizeof(int)!=sizeof(int*)) 2009-11-10 Rolf Ade * expat/xmltok_impl.c: Fix for possible DoS attack (see CVE-2009-3720) 2008-08-27 Rolf Ade * Makefile.in: Added missing space in target pkgIndex.tcl-hand. Thanks to Gustaf Neumann for reporting the problem and providing a fix. 2008-05-25 Rolf Ade * lib/tdom.tcl: The XPath function element-available() should, according to the rec, return true "if and only if the is the name of an instruction". That is, not for all known XSLT elements. 2008-03-04 Rolf Ade * generic/tclexpat.c: Editorial changes. * generic/domhtml.c: * generic/domxslt.c: Added a few casts, to pacify picky compliers. 2007-12-26 Rolf Ade * generic/dom.c * generic/tcldom.c: Fixed a memory leak in case of --enable-threads. 2007-10-30 Rolf Ade * generic/domhtml.c: * tests/htmlreader.test: ID Attributes in HTML documents parsed with -html do now what you expect: you find it with getElementById. 2007-10-29 Rolf Ade * doc/domNode.* * doc/domDoc.*: Fixed documentation error in the documentation of the replaceChild method. 2007-10-08 Rolf Ade * generic/domhtml.c * tests/htmlreader.test: Fixed handling of attributes without value. Now, an attribute without value gets the attribute name as value. 2007-10-04 Rolf Ade * tests/domDoc.test: Fixed test domDoc-1.2: Test was broken in case of locale != ISO-8859-1 (or -15). 2007-10-03 Rolf Ade * win/makefile.vc: makefile.vc generated a pkgIndex.tcl file, that didn't work in case of spaces in the install path. Thanks to Koen Danckaert. 2007-09-28 Rolf Ade * tests/all-bench.tcl * tests/domNode.bench * tests/xpath.bench: Added this files: Start of a benchmark suite. 2007-09-25 Rolf Ade * win/makefile.vc * win/nmakehlp.c * win/rules.vc * win/tdom.rc: Updated. (Thanks to Pat Thoyts.) * tdom.m4 * extensions/tnc/configure: Fixes tnc building against uninstalled tdom. (Thanks to Daniel A. Steffen.) 2007-08-23 Rolf Ade * generic/domxpath.c * tests/dom.test * tests/xmlsimple.test * tests/xpath.test * tests/xslt.test: Fixed bug triggered by invalid XSLT XPath pattern (normal XPath expr (via selectNodes) wasn't infected). Checked the code for similar spots and fixed a few. Replaced a fprintf(stderr, ..) called in an 'impossible' case with a more appropriate domPanic call. 2007-08-18 Rolf Ade * generic/domxslt.c: Code cleanup in document() implementation. * generic/dom.c * generic/dom.h * generic/domxslt.c * generic/tcldom.c: More constification and clean up. * generic/dom.c * generic/dom.h * generic/domalloc.c * generic/domxpath.c * generic/domxpath.h * generic/domxslt.c * generic/tcldom.c * generic/xmlsimple.c: Big const ification. 2007-08-15 Rolf Ade * configure * configure.in * unix/CONFIG * tdom.m4: New default build: --disable-tdomalloc. * CHANGES: Updated. * README * README.AOL * configure * configure-tcl8.0.5 * configure.in * tests/loadtdom.tcl * mac/Prefix/tDOMPrefix.h * mac/Prefix/tDOMPrefix_OSX.h * win/makefile.vc * win/makefile805.vc: * win/pkgIndex.tcl: Bumped version to 0.8.3. --- Release 0.8.2, 14. Aug. 2007 --- 2007-08-13 Rolf Ade * win/pkgIndex.tcl: Bumped version to 0.8.2 2007-08-12 Rolf Ade * generic/tcldom.c: Corrected a typo in the doc cmd usage message. Updated the asXML related parts of the doc and node cmd usage msg. Corrected a typo in the error msg in case of wrong # of args to asXML. * generic/tdomStubLib.c: Ensure that the new code build also with tcl8.0.x (although that old versions doesn't have extension stubs tables.) * extensions/tnc/configure * extensions/tnc/configure.in * extensions/tnc/tnc.c: Tweaks to build tnc with win/msys/mingw. * tdom.m4: Removed irritating breaks in TDOM_PATH_CONFIG. * unix/tclAppInit.c: Editorial fix. * generic/tdomStubLib.c: Rewritten from the scratch. 2007-08-11 Rolf Ade * generic/domxslt.c: Code cosmetic. * generic/tcldom.c: Updated error msg in case of wrong # of args to the asXML method to the new added option -escapeAllQuot. * generic/tdom.h * generic/tclexpat.h: Fixed build problem with the build environment win/msys/mingw. * generic/aolstub.cpp: Fixed editorial mistake in comment. * unix/tclAppInit.c: Rewritten from the scratch. New feature: tcldomsh will read ~/.tcldomshrc at start up. 2007-08-07 Rolf Ade * generic/dom.h: Another change needed, to complete the new type of domDoc->documentNumber. 2007-08-07 Rolf Ade * generic/dom.c: Type gymnastic for 64 bit systems. * generic/dom.c * generic/dom.h * generic/tcldom.c: Changed domDoc->documentNumber, domUniqueNodeNr and domUniqueDocNr to unsigned long, to prevent hard to debug / reproduce problems on 64 bit systems. * win/makefile.vc: Don't use precompiled headers. * extensions/tnc/makefile.vc: Brought in sync with tdom core. * generic/tclexpat.c: Compiler pacifying. * generic/tdomDecls.h: Fixed a wrong function signature. * generic/tdomStubLib.c: Made the compiler happy. * generic/dom.c: Corrected an error msg. * generic/tclexpat.c: Still problems on 64bit w/ -externalentitycommand. This health the biggest pain. 2007-08-05 Rolf Ade * win/makefile.vc * win/makefile805.vc: Bumped version to 0.8.2. Missed that in 0.8.2rc1 * README * README.AOL * configure * configure-tcl8.0.5 * configure.in * tests/loadtdom.tcl * mac/Prefix/tDOMPrefix.h * mac/Prefix/tDOMPrefix_OSX.h: Bumped version to 0.8.2. * generic/domhtml.c * generic/domxpath.c * generic/domxslt.c * generic/tcldom.c * generic/xmlsimple.c: Casted arg of ctype.h is* macros/function calles to unsigned char to reduce compiler warning noise. * generic/tcldom.c: * tests/domDoc.test: In case of asXML with indentation: indent XML comments as well. * doc/domNode.* * doc/domDoc.*: Added documentation to the new variable references feature of the selectNodes method, for the deleteXPathCache method and the -escapeAllQuot option of the asXML method. * generic/tcldom.c: Fixed a mem leak introduced by deleteXPathCache. Added option -escapeAllQuot to the asXML method. * generic/tcldom.c * tests/domDoc.test: Added method deleteXPathCache: basic control over the xpath expression cache. * generic/tcldom.c * generic/domxpath.c * generic/domxpath.h * generic/domxslt.c * tests/xpath.test: Variable references (at the places allowed by the XPath syntax) will now be resoved as Tcl variables, relative to the scope of the expression. Ignoring the XPath syntax rules at this point, any valid Tcl variable name will work. 2007-08-03 Rolf Ade * generic/tcldom.c: Added doc method renameNode, without XML namespace awareness. There will be a final (XML namespace aware) method implementation after 0.8.2, therefore, this will slip in as hidden or 'unsupported' and at least undocumented method. 2007-07-31 Rolf Ade * generic/domxpath.c * tests/xpath.test: Bug fix: floats in xpath expressions starting with . could have an additional (erroneous) dot in it without detection. * expat/* * extensions/tnc/tnc.c * generic/dom.c * generic/domxslt.c * generic/tcldom.c * generic/tclexpat.c * generic/tdom.decls * generic/tdom.h * generic/tdomDecls.h: Update to expat 2.0.1; minor build cosmetic. 2007-07-27 Rolf Ade * tclconfig/tcl.m4 * tclconfig/README.txt * configure.in * configure * extensions/tnc/configure.in * extensions/tnc/configure: Updated to TEA 3.6. Rebuild configure. 2007-07-25 Rolf Ade * generic/dom.c: Fix for the -externalentitycommand problems on (some) 64-bit plattforms. * tests/xpath.test: Added a few tests related to white-space in XPath expressions. 2007-07-23 Rolf Ade * generic/domhtml.c * tests/htmlreader.test: Fix for problem reported by http://tech.groups.yahoo.com/group/tdom/message/1666 2007-04-18 Rolf Ade * doc/domDoc.*: Emendation. 2007-03-03 Rolf Ade * Makefile.in: Fixed (at least for most of the cases) bug in test target, in case the user builds in a dir elsewhere. 2007-02-04 Rolf Ade * tdom.m4 * configure * extensions/tnc/configure * README * unix/CONFIG: Modified the tdom.m4 configure macros to use the current documentation style of TEA in case of configure --help. Fixed a bug in the TDOM_ENABLE_DTD. Re-generated configure and tnc configure. Added some explanations about the tDOM specific configure options to unix/CONFIG and a pointer to that information to README. * extensions/tnc/tnc.c: Minor editorial changes. * extensions/tnc/test.tcl: Fixed the loading of the tDOM scripted library in case of run with tcldomsh. * generic/domxslt.c: Fixed bug in xsl:fallback handling. 2007-02-02 Rolf Ade * tdom.m4 * configure: Corrected spelling error in tdom.m4, re-generated configure. Thanks to Larry Virden for reporting. 2007-01-16 Rolf Ade * extensions/tnc/configure.in: The build tool combination TEA/cygwin/VC++ needs a crude hack. 2007-01-10 Rolf Ade * Makefile.in: More corrections: Did not install the tDOM stubs library. Minor other corrections related to distclean. Again thanks to Andreas Kupries. * extensions/tnc/Makefile.in: Don't call target install-doc while installing - the tnc doc is in the top level doc dir. * extensions/tnc/pkgIndex.tcl.in: Fixed the name of the shared lib. Now uses @PKG_LIB_FILE@ for the dll name. 2007-01-09 Rolf Ade * Makefile.in: Did not install tdomConfig.sh anymore, which causes trouble building tDOM extensions (including tnc). Thanks to Andreas Kupries for reporting the problem with analysis. 2007-01-05 Rolf Ade * generic/domxpath.c: In XPath expressions: Whitespace between the abbreviated attribute axis specifier @ and the attribute name is allowed. 2006-11-22 Rolf Ade * generic/domhtml.c: Normalize case of attribute also (not only elements). Accept space on both sides of the = of attribute values. 2006-11-08 Rolf Ade * generic/domxpath.c * tests/xpath.test: Fixed seg fault in XPath expr parser for a certain kind of erroneous XPath expressions. 2006-08-26 Rolf Ade * CHANGES * configure.in * Makefile.in * configure * tclconfig/README.txt * tclconfig/tcl.m4 * extensions/tnc/configure.in * extensions/tnc/configure * extensions/tnc/Makefile.in: Updated the TEA build system to 3.5. 2006-05-24 Rolf Ade * generic/dom.c * tests/dom.test: Fix of the isQName method: Strings with valid prefix and non-NCNameStart char as first char after the ':' wasn't detected as invalid QName. 2006-01-08 Rolf Ade * generic/domxslt.c * tests/xslt.test: Fixed a rounding bug of format-number() (http://groups.yahoo.com/group/tdom/message/1217). 2006-01-06 Rolf Ade * doc/domDoc.*: Fixed markup errors. 2005-12-10 Rolf Ade * generic/dom.c * generic/dom.h * generic/domxslt.c * tests/xslt.test: Fixed bug in namespace handling in xsl:copy-of. 2005-12-03 Rolf Ade * generic/dom.c * tests/domNode.test: Fix of the cloneNode method: if the node to clone (or, in case of -deep, a node within the subtree to clone) had a namespace declaration attribute then the result was wrong. * tests/domDoc.test: Added a test for the special handling of the content of script/style tags in case of asHTML. 2005-10-19 Rolf Ade * generic/domxpath.c * generic/domxpath.h * tests/xpath.test: Fixed string-length() and substring() to work on chars, as they should, not on bytes. 2005-09-27 Rolf Ade * tests/htmlreader.test: Added a test case, reported by Richard Suchenwirth, which crashes 0.8.0, but raises error with current cvs head, without any mem problems. 2005-09-24 Rolf Ade * generic/domxslt.c: Doh! The code detected ill grouping-size values and set errMsg accordingly, but didn't propagate the error. Fixed. Do memory cleanup after detecting wrong xsl:number level attribute value. Fixed memory leak in case of incorrect xslt attributes of included or imported xsl:stylesheet elements. Fixed memory leak in case of syntactically wrong xsl:key use attribute XPath expression. Fixed memory leak in case of toplevel parameter or variables which are syntactically incorrect, because they have both a select attribute and content. 2005-09-19 Rolf Ade * generic/domxpath.c: Improved detection/reporting of XPath syntax errors. Fixed two memory leaks in the XPath parser in case of some kind of erroneous XPath expressions. 2005-09-17 Rolf Ade * generic/domxpath.c: id() on an empty node set should return an empty string, according to the rec, not raise an error, as it did up to now. Fixed a memory leak in concat() in the case of xpath expressions as arguments, which raise error. Normally, XPath expressions doens't raise error at all; that's how XPath is designed. That is unfortunately not completely true with current tDOM, because tDOM doesn't do an as rigoros as possible argument check at XPath expression parsing time (that will change) and because of user defined XPath extension functions. 2005-09-16 Rolf Ade * generic/domxslt.c: Fixed memory fault in case of external documents resolved based on the base URI of a node of the source element. 2005-09-13 Rolf Ade * generic/domxpath.c: Bug fix: The namespace axis will be empty unless the context node is an element. * aclocal.m4 * configure * tdom.m4 * tdomConfig.sh.in * extensions/tnc/configure * extensions/tnc/configure.in: Improvement of the build system. Now works also with the tool combination cygwin/TEA/VC++. Thanks to Andreas Kupries for his patch. 2005-08-26 Rolf Ade * generic/tdominit.c: Removed tests about mt-ness of tclsh/tdom, due to popular demand. Mt compiled tDOM now will load into non-mt tclsh, as will a non-mt compiled tDOM into a mt tclsh. NOTES: Using a non-mt tDOM within only one thread of a mt tclsh should work just fine. But never ever use a non-mt tDOM in several threads of a mt tclsh. That may crash randomly. Use, how surprising, an mt-enabled tDOM for that. This will work fine. Using a mt aware tDOM within a non-tm tclsh is little bit slower and memory demanding. It will also have a few methods, that are superfluous within the non-tm tcl context. It should always work, but for best results use a non-mt tDOM with non-mt tclsh. 2005-08-20 Rolf Ade * generic/dom.c * generic/dom.h: Added function domPreviousSibling(). * generic/domxslt.c: Bug fix: Use domPreviousSibling() in xsltNumber() to prevent erroneous results, if attribute nodes are involved in the numbering. 2005-06-10 Rolf Ade * generic/dom.c * generic/dom.h * generic/domhtml.c * generic/tcldom.c * generic/xmlsimple.c: Internal dispersion: Cleaned up rootNode/toplevel nodes connection, added new function domSetDocumentElement. * tcldom.c: Closed memory leak in case of not well-formed input to the simple or html parser. * generic/domlock.h: Removed unused variable. * tests/dom.test: Added test, to document handling of white space outside the document element even in case of -keepEmpties (it's markup white space and will be removed). * tests/domDoc.test * tests/htmlreader.test * tests/xmlsimple.test: Added a few tests. 2005-05-13 Rolf Ade * tests/htmlreader.test * generic/domhtml.c: Fixed seg fault in case of some garbage input. 2005-05-12 Rolf Ade * tests/domNode.test * generic/tcldom.c: Fix: domNode nodeValue $newValue didn't check the newValue for being valid pcdata. 2005-05-02 Rolf Ade * tests/parser.test * generic/tclexpat.c: Bug fix: expat parser method parsechannel didn't (depending on the encoding of the channel) report parsing errors. 2005-04-11 Rolf Ade * tclconfig/ChangeLog * tclconfig/ac_c_bigendian_cross.m4: Deleted. * tclconfig/README.txt: Updated. * apps/xslt.tcl: Updated to request tdom 0.8.1. * Makefile.in * configure * configure.in * tdom.m4 * tdomConfig.sh.in * tclconfig/tcl.m4 * extensions/tnc/Makefile.in * extensions/tnc/configure * extensions/tnc/configure.in * extensions/tnc/tnc.c: Updated to use TEA 3.2. Thanks to Daniel A. Steffen and Andreas Kupries for input. 2005-04-04 Rolf Ade * expat/expat.h: Removed last comma in enum XML_Status declaration, to prevent compiler errors (xlc on AIX 64). (Current expat CVS head has the same fix.) 2005-03-26 Rolf Ade * tests/xslt.test * generic/dom.c: Fix in domAppendNewElementNode(), domAppendLiteralNode() and domAppendNewTextNode(): if the created node is a child of doc->root, set the parentNode according. * generic/domxslt.c: Removed (anyway not correctly working) work-around to set parent of the childs of doc->root (problem now correctly fixed by changes in dom.c). * tests/domNode.test * generic/nodecmd.c: Changes, to prepare adding of node creating cmds, which creates namespace aware nodes. 2005-03-21 Rolf Ade * tests/domDoc.test: Fixed flawed test, which slipped through, somehow. 2005-03-18 Rolf Ade * doc/domDoc.* * doc/domNode.* * CHANGES * tests/domDoc.test * generic/tcldom.c * generic/dom.h * generic/dom.c: Added document method selectNodesNamespaces, to provide a document global XPath prefix/namespace mapping. 2005-03-12 Rolf Ade * tests/xslt.test: Added two tests about two subtleties of the XPath syntax: white space between the $ and a varname are not allowed, while white space between the braces of node() is allowed. 2005-03-11 Rolf Ade * generic/nodecmd.c * tests/dom.test: Using of a node creating command outside of node context after that node creating command was already used in node context didn't raised error (as it should) but could have all kinds of effects (including seg fault). 2005-02-26 Rolf Ade * generic/tcldom.c: Fix for MT-enabled tDOM: If a doc was attached to more than one thread, nodeCmd creation was borken (only one thread got a nodeCmd for a given node). 2005-02-03 Rolf Ade * generic/domxslt.c: Bug fix: current() did not work in xsl:key use expressions. Moved setting of xs->current from all about the place into evalXPath. A bit code massage, to avoid bogus compiler warning. * doc/domDoc.* * tests/domDoc.test * generic/dom.c * generic/domxslt.c * generic/tcldom.c: Added support for xsl:output cdata-section-elements attribute. Added method cdataSectionElements to domDocs, as tcl interface to cdata-section-elements. * doc/domDoc.*: Added documentation for the domDoc method internalSubset. * generic/domxpath.c: Editorial changes. 2005-02-02 Rolf Ade * win/makefile.vc: Updated to provide the new defines PACKAGE_NAME and PACKAGE_VERSION introduced by the update to TEA-3 support. 2005-01-19 Rolf Ade * generic/dom.c * generic/dom.h * generic/domhtml.c * generic/xmlsimple.c: Renamed exported symbols attrNames and tagNames to tdom_attrNames and tdom_tagNames, to avoid name clash. startDoctypeDeclHandler() and endDoctypeDeclHandler(): added missing static. 2005-01-16 Zoran Vasiljevic * Makefile.in: Bumped version to 0.8.1. * configure: Added TEA-3 support. * configure.in: Made AOLserver 4.x virtual-server aware * tdom.m4: and added examples how to build the * generic/aolstub.cpp: lib as AOLserver module for 4.x series. * generic/tdominit.c: * README: * README.AOL: * mac/Prefix/tDOMPrefix.h: * mac/Prefix/tDOMPrefix_OSX.h: * win/makefile.vc: * win/makefile805.vc: * win/pkgIndex.tcl: * tclconfig/ChangeLog: * tclconfig/tcl.m4: * tests/loadtdom.tcl: * unix/CONFIG: 2005-01-11 Rolf Ade * doc/domDoc.* * doc/domNode.*: Added documentation for the -cache option of the selectNodes method. * lib/tdom.tcl: Scripted xpath function element-available: moved xsl:output to the available elements, since it's in fact available in the meantime (with exception of the 'version' and 'cdata-section-elements' attributes) - the output options can be queried from the result doc, but it's the responsibility of the application, to serialize the tree according to that settings. 2005-01-10 Rolf Ade * doc/dom.*: Corrected typo. * generic/dom.c: Fixed a leftover reference to embedded hash table in domDocument struct. 2005-01-10 Rolf Ade * generic/dom.c * generic/dom.h * generic/domxpath.c * generic/domxpath.h * generic/tcldom.c * tests/domNode.test: Don't embed Tcl_HashTables into dom Docs, use pointers to the hash table. Added -cache option to the selectNodes method. 2005-01-07 Rolf Ade * generic/dom.c * generic/domalloc.c * generic/domxslt.c * generic/domxpath.c * generic/tclexpat.c * generic/nodecmd.c * generic/nodecmd.h * generic/tcldom.c * tests/domDoc.test * generic/tcldom.h: Clean up, to decrease (innocuous) compiler warnings (thanks to Pat Thoyts for triggering input and patch). * win/makefile.vc: Improved VC++ compiler makefile. Thanks to Pat Thoyts for contribution. * win/nmakehlp.c * win/rules.vc * win/tdom.rc: Added this files. Thanks to Pat Thoyts for contribution. 2005-01-06 Rolf Ade * generic/tcldom.c * tests/domDoc.test * tests/domNode.test * doc/domDoc.* * doc/domNode:*: Handle multiple -namespaces options to selectNodes method. Added methods transform and delete to xsltCmds. Ensure, that documents created with the [dom createDocument* methods] are created as docCmds in case of 'auto' creation mode. * tests/dom.test Added a few tests: related to createNodeCmd * tests/element.test (dom), node text method (domNode), chancing * tests/parser.test callback from within a callback (element, * tests/xslt.test parser) and catching of recursive xsl include/import (xslt). 2004-12-21 Rolf Ade * generic/domxslt.c: xsl:key with match expressions, which matches attributes, did not work. Prevent, that a stylesheet import/include itself. Editorial changes. * generic/dom.c: domAppendNewElementNode(): Set the namespace of a per xslt transformation generated node wrong under certain circumstances. This fixes http://groups.yahoo.com/group/tdom/message/1008. Removed leftover (former local used) define TNODE. 2004-12-12 Rolf Ade * generic/domxpath.c * tests/xpath.test: xpath expressions ancestor-or-self::node() and parent::node() returned wrong result if the context node is /. 2004-12-10 Rolf Ade * doc/expat.* * generic/tclexpat.c * generic/tclexpat.h * tests/parser.test: Don't allow the methods parse, parsechannel, parsefile, free and reset from within a callback of the parser be used but raise a tcl error. 2004-10-25 Rolf Ade * doc/domNode.*: Added documentation for the '-namespaces' option of the selectNodes method. * doc/dom.*: Added a note to the -externalentitycommand option of the parse method, that the programmer is responsible for closing the channel, if the resolver script returns a channel. 2004-09-29 Rolf Ade * win/pkgIndex.tcl: First [load] the lib, which has [package provide tdom], so that a [package require tdom] within the script lib doesn't loop. * generic/tcldom.c: Added the with 0.8 added doc methods to the doc_usage. 2004-09-21 Rolf Ade * doc/domDoc.*: Add documentation for 'selectNodes' method. * generic/dom.c * generic/dom.h * generic/domxpath.c * generic/domxpath.h * generic/domxslt.c * generic/tcldom.c: Added the '-namespaces' option to the selectNodes method. Not resolved namespace prefixes within the xpath expression now raises an error. *** POTENTIAL INCOMPATIBILITY *** 2004-09-13 Rolf Ade * generic/domxslt.c: Corrected a typo in an error msg. 2004-09-08 Rolf Ade * generic/domxslt.c: Editorial changes. 2004-09-02 Rolf Ade * generic/domxpath.c * generic/tcldom.c * tests/domNode.test: toXPath method: fixed bug with non-element top level nodes, closed mem leak. 2004-08-23 Rolf Ade * README * README.AOL: Corrected typos (thanks to G. Neumann) 2004-08-20 Rolf Ade * expat/*: Update to expat 1.95.8. 2004-08-19 Rolf Ade * unix/CONFIG * generic/dom.h * generic/tcldom.c: Made tDOM work out of the box on 64-bit systems like Itanium 2 (though --disable-tdomalloc configure option at build time is still needed). 2004-08-17 Rolf Ade * generic/dom.h: Added fluff, to fix build problemx on AIX w/ xlc compiler. * generic/domxpath.c * generic/tcldom.c: Removed unused variables. 2004-08-15 Rolf Ade * generic/dom.h * generic/dom.c * generic/domxslt.c * generic/tcldom.c * generic/xmlsimple.h * generic/xmlsimple.c * tests/dom.test: Pass external entity resolver script around in string representation (insteand of Tcl_Obj), to avoid problems with mt builds. --- Release 0.8.0, 11. Aug. 2004 --- 2004-08-10 Rolf Ade * extensions/tnc/makefile.vc: Link against tDOM 0.8.0. * doc/dom.*: Corrected a spelling mistake. 2004-07-28 Rolf Ade * lib/tdom.tcl: [namespace export] the public procs in ::tDOM. Added a few more encodings to IANAEncoding2TclEncoding. 2004-07-27 Rolf Ade * test/dom.test * doc/dom.* * generic/dom.h * generic/tcldom.c: New (experimental) method setObjectCommands. * test/domNode.test * generic/dom.c * generic/tclexpat.c * generic/tcldom.c: Reworked internal base URI handling, to fix a bug of the old approach and to be closer to (though not fully support) what DOM 3 say about base URI handling. * tests/dom.test * doc/dom.* * generic/tcldom.c: New method createDocumentNode. * tests/domDoc.test * doc/domDoc.* * generic/dom.c * generic/tcldom.c: Added methods nodeType, getElementById, firstChild, lastChild, appendChild, removeChild, hasChildNodes, childNodes, ownerDocument, insertBefore, replaceChild, appendFromList, appendXML, selectNodes, baseURI, appendFromScript and insertBeforeFromScript to dom docs. Beside other things, this allows much easier handling of top level nodes. The result tree may not be an XML document, but a general parsed entity. * tests/domNode.test * doc/domNode.* * generic/tcldom.c: Improved speed of the getAttribute shortcut '@attname' (and, not so notable, of tcl coded methods of the dom, domDoc and domNode cmds). Corrected typo in domNode usage msg for getElementByID. Improved error msg for getAttribute, if attribute is not found. Changed behavior of getElementByID: if no element with the given id is found, returns now the empty string, not a TCL_ERROR (closer to DOM rec, getElementByID never raise an exception). Bug fix: nodeName now returns the per DOM rec correct values for comment and cdata section nodes (were as yet reported as if they where text nodes). * tests/entity.test * generic/tclexpat.c: Better error msg in case of 'filename' and not valid file name. * tests/xpath.test: Documented behaviour in case of using (senseless, wrong) 'xslt variable' in selectNode exprs. * tests/xslt.test: More tests for script errors in external entity handler or errors in the requested external entities. 2004-07-19 Rolf Ade * generic/domxslt.c: Better error msg in case of XML parsing errors in external entities. * generic/nodecmd.c: Bug fix: Check, if refnode given to insertBeforeFromScript is valid. 2004-07-13 Rolf Ade * generic/domxslt.c: Ensure, that the first element node of the result tree is the documentElement of the generated document. * tests/xmlsimple.test * generic/xmlsimple.c: Empty CDATA sections should not create a node. 2004-07-08 Rolf Ade * generic/tdominit.c: Test, if a non-mt tDOM is tried to load into a mt tclsh. 2004-05-26 Rolf Ade * doc/dom.* * tests/dom.test * tests/domNode.test * tests/tdomcmd.test * generic/tcldom.c * generic/dom.c * generic/dom.h * generic/nodecmd.h * generic/nodecmd.c: Added isPIName, isComment, isCDATA and isPIValue method to the dom command. Created new global (thread wide) flags for name and value checks (Names and FQ Names (element, attribute and processing instruction names), text nodes, comments, CDATA sections and processing instruction values). New methods setNameCheck and setTextCheck to control this flags. * generic/nodecmd.c: Bug fix in case of appendFromScript script. * generic/domxslt.c: Uses the new domIsComment, domIsPINAME and domIsPIValue API functions of dom.c. Improved xsl:processing-instruction processing (now instantiating the content). * generic/domxpath.c: Minor editorial changes. * tests/domCmd.test: Deleted this file, moved the tests to the new dom.test or domDoc.test. * tests/dom.test: Moved the tests from this file to the new domNode.test and collected dom command tests here. * tests/domDoc.test * tests/domNode.test: Created this files, tests from dom.test and domCmd.test. * doc/expat.* * tests/xpath.test * tests/xslt.test: Minor changes. 2004-05-11 Rolf Ade * apps/xslt.tcl: Fixed the test for running in a source tree with tcldomsh. (doh!) 2004-05-08 Rolf Ade * generic/xmlsimple.c: Removed superfluous arg baseURI from XML_SimpleParse(). * generic/domhtml.c * tests/htmlreader.test: Fixed html-2.1 and html-2.2. (This html reader is crusty stuff...) 2004-03-26 Rolf Ade * generic/domxpath.c: Fix of the template priority calculation and clearing out of xpathGetPrio(). 2004-03-14 Rolf Ade * generic/xmlsimple.c: Fixed a few simple parser seg faults in case of not-wf input. See xmlconf/xmltest/not-wf/sa/022.xml, xmlconf/xmltest/not-wf/sa/042.xml for examples. 2003-12-30 Rolf Ade * Makefile.in * extensions/tdomhtml/pkgIndex.tcl.in * extensions/tnc/Makefile.in: Doh! Undo the last changes; I fixed this already 2003-10-12. * generic/dom.c: Removed superfluous comma from the tdomMethod enum, which bothered the AIX xlc compiler. * generic/domxpath.c: Editorial change: Removed some superfluous casts to (char*) from tdomstrdup result - its defined to return char*. * generic/domxpath.h * generic/domxpath.c * tests/xslt.test * generic/domxslt.c: Implemented the special constraints on certain xpath pattern/expr (no current() func in pattern, no var references in template and key match pattern and key use expr, no key() func in key match pattern and use expr.) 2003-12-24 Rolf Ade * Makefile.in * win/pkgIndex.tcl: * extensions/tnc/pkgIndex.tcl.in * extensions/tdomhtml/pkgIndex.tcl.in * extensions/example/pkgIndex.tcl.in: Bug fix: Protect against spaces in the path to the package. 2003-12-20 Rolf Ade * win/pkgIndex.tcl: Also updated to new version nr 0.8.0. 2003-12-17 Rolf Ade * doc/domNode.* * generic/tcldom.c: Added baseURI method, which returns the current base URI and has an optional argument to set the base URI. (The getBaseURI is deprecated.) 2003-12-15 Rolf Ade * generic/dom.c * generic/domxslt.c: More fixes to ensure ns integrity of xslt result trees. 2003-12-14 Rolf Ade * tests/attribute.text: Made test results independent from the (undefined) order of [array get]. * tests/dom.test: Build expected result of some tests with [list], instead of providing a string rep. This hides the changes in list string rep by TIP 148, so that the tests work both with pre- and post TIP 148 tcl. 2003-12-11 Rolf Ade * tests/xslt.test * generic/domxpath.c: Bug fix: double mem free in case of pattern w/ FQ element with positional dependent predicate. * generic/dom.c * tests/domCmd.test * tests/pcdata.test * tests/tdomcmd.test * generic/tclexpat.c: Bug fix: Don't quash white space of non white space only content in trim mode. 2003-12-09 Rolf Ade * lib/tdom.tcl: Improved regexp to extract encoding. Corrected typo. * generic/domxslt.c * generic/domxpath.c * generic/dom.c: Bug fix in namespace handling: copy-of from result tree fragments could mess up ns handling, if a default namespace is already in scope in the result tree. 2003-12-08 Rolf Ade * win/makefile.vc * win/makefile805.vc: Also updated to verson nr. 0.8.0. 2003-11-28 Rolf Ade * generic/tcldom.c: Switched back to Tcl_Panic() in one case, to make MT builds work. * generic/domxslt.c * generic/dom.c: With MT tDOM, a domDoc extRefHandler script may be used within another thread. 2003-11-27 Rolf Ade * generic/domxslt.c * generic/dom.c * tests/xslt.tests: Another fix, to ensure namespace integrity of the result doc. 2003-11-26 Rolf Ade * generic/domxslt.c * tests/xslt.test: Fix, to ensure namespace integrity of the result doc. Fixed parentNode of documentElement and siblings of the result tree. 2003-11-24 Rolf Ade * tests/tdomcmd.test: Added this file. * generic/dom.c * tests/dom.test: Don't include PIs inside the internal subset into the tree. * generic/tcldom.c * generic/dom.h * generic/domxslt.c * tests/xslt.test * generic/dom.c: Added domDoc methods omit-xml-declaration, indent, standalone, encoding and mediaType. * generic/tclexpat.c * generic/tclexpat.h * generic/dom.c: Changed parserObj behavior: parser don't need a reset call after a final parse or parsing error. * tests/xslt.test * generic/domxslt.c: Bug fix: seg fault for document('') with stylesheet tree with empty baseURI. Minor optimizations. Fixed invalid memory read. * generic/tcldom.c * tests/dom.test: (Probably) temporarily disabled automatically clean up of nodeObjCmds, to work around bug: Storing the same node in different evaluation contexts with the optional objVar argument (as in [$doc documentElement root]) at the same time did not work. * generic/domxpath.c: Fixed a mem leak with some sum() calls with NaN result. Fixed invalid memory read. * generic/tcldom.c: Fixed mem leak with -externalentitycommand. Fixed mem leak with parsing xml document with external entity and parsing error in an external entity. Minor code clean up. * tests/parser.test: * generic/tclexpat.c: Fixed memory problem, if handler script return TCL_ERROR. Made the cget method work for the parser related options, even if there are no handler scripts set. * generic/tcldom.c * generic/dom.c * generic/tclexpat.c * generic/domlock.c: Always use domPanic as panic function. 2003-11-20 Rolf Ade * generic/domxslt.c: Bug fix: Setting a top-level xslt param with -parameters and using this param for setting another top level var could end in seg fauld. 2003-11-10 Rolf Ade * generic/tcldom.c: Replaced a C++ style comment with a C style comment. 2003-11-02 Rolf Ade * tests/xpath.test: Added a few tests related to declarations to chapter 4.2 and 4.4 in the errata to the XPath rec. * generic/domxpath.h: Fixed memory leak, if floor or ceiling are called with non-numbers. 2003-11-01 Rolf Ade * generic/domxslt.c: Minor bug fix: Special handling is needed, if xsl:copy-of is used, to copy namespace nodes. 2003-10-26 Rolf Ade * apps/xslt.tcl: Removed not needed code. * generic/dom.c * tests/dom.test: Bug fix: Under some circumstances it was possible, that an URI change for a subtree was not stored in the tree (resulting in wrong base URI for that nodes). * generic/domxpath.c: number() bug fix: Now works according to the XPath rec understanding of a Number, not with the libc understanding of a double. * generic/domxpath.c * generic/dom.h * generic/dom.domxslt.c: Globalized the macro IS_XML_WHITESPACE. 2003-10-24 Rolf Ade * generic/domxslt.c: Bug fix for document() func, if called with 2 args and first arg evaluates to the empty string. Improved error reporting, if an XSLT variable is tried to reset, although there is already such a variable in scope: now the name of the var is also reported in the error msg. * apps/xslt.tcl: Updated to use the new asText option. 2003-10-23 Rolf Ade * expat/* * CHANGES: Update to expat 1.95.7. 2003-10-22 Rolf Ade * generic/domxpath.c * tests/xpath.test: Bug fix in the xpath lexer: In a union expr, a NCName test with a name equal to an operator was wrongly interpreted as operator. 2003-10-21 Rolf Ade * generic/domxslt.c: Fixed bug with current(), if it is used in the select expr of an xsl:sort. * generic/domxpath.c * generic/domxpath.h * generic/domxslt.c: Changed handling of key node sets. It's a somewhat focused optimization, for the price of a very small overall cost. I've done it anyway, because it's a very notable speed up for an important xslt pattern (the so called Muenchian Method for grouping). * generic/tcldom.c: Removed two unused variables. 2003-10-17 Rolf Ade * generic/dom.c: Fixed dom parse -channel option, which got accidentally broken, due to the lately switch from Tcl_GetStringFromObj() to Tcl_GetString(). * generic/tcldom.c: Added again some recently implemented methods to domObj_usage and node_usage, which got accidentally removed by the lately editorial changes. 2003-10-16 Zoran Vasiljevic * generic/tcldom.c: added "dom detachDocument" command to match the already present "dom attachDocument". This is used only for threaded tdom builds. * generic/domlock.c: changed lock caching to accommodate for situation with huge number of created documnents Also, added new "domDoc" command as a first-class tdom citizen, analogous to the already existing "domNode". It operates on the document token. Attempt has been made to start to follow Tcl-style-guide but we still have a way to go. The first thing is to try to force the 78-chars margin where possible/feasible. Therefore, many of the source files have been cosmetically touched, without code or functionality changes. 2003-10-12 Rolf Ade * generic/domxpath.c * generic/domxslt.c: Removed not used vars. * generic/dom.c * generic/dom.h * generic/domhtml.c * generic/tcldom.c * generic/tclexpat.c * generic/tclexpat.h * generic/xmlsimple.c: Merged domCreateEmptyDoc() and domCreateDoc(), now there is only one API proc: domCreateDoc(). 2003-10-10 Rolf Ade * Makefile.in * extensions/tdomhtml/pkgIndex.tcl.in * extensions/tnc/Makefile.in: Fixed pkgIndex.tcl problem, if the path to the packages contains a space. * doc/domDoc.* * doc/domNode.* * CHANGES * generic/dom.h * generic/dom.c * generic/tcldom.c * tests/domCmd.test: Added implementation for new method normalize (and as a by-product a C implementation for the method appendData). 2003-10-09 Rolf Ade * tests/domCmd.test * generic/tcldom.c: Made code robust against renaming of domDoc cmds (well, unlikely, not to say very unlikely, but at least it also simplified code and reduces obj size by a few bytes). Changed sharedDocs hash table (only MT build) from TCL_STRING_KEYS to TCL_ONE_WORD_KEYS. 2003-10-08 Rolf Ade * generic/tcldom.c: Fixed the preliminary (and MT only) method renumber. 2003-10-07 Rolf Ade * generic/nodecmd.c * generic/nodecmd.h * generic/tcldom.c * tests/dom.test * doc/domNode.* * CHANGES: Added new method insertBeforeFromScript to domNodes. Bug fixes for appendFromScript: In case of error in the script, the tree will not be altered. The appendFromScript may only be used for ELEMENT_NODEs. 2003-10-04 Rolf Ade * generic/domxpath.h: Removed prototypes of functions, which are not implemented. Editorial changes. * generic/domxpath.h * generic/domxpath.c * generic/domxslt.c * generic/tcldom.c * tests/dom.test * tests/domCmd.test * CHANGES * doc/domDoc.* * doc/domNode.*: Added new method 'asText' to domDocs and domNodes. Renamed xpathGetTextValue() to xpathGetStringValue(), to be more according to the vocabular of the XPath rec. 2003-10-01 Rolf Ade * generic/dom.c: Removed unnecessary check of domModuleIsInitialized in domReadDocument(). Corrected typo in a comment. * generic/dom.c * generic/dom.h * generic/domxpath.c * generic/domxslt.c * generic/tcldom.c * tests/dom.test: Reworked usage of nodeNumber. It is now used only in one place, the new domPrecedes function. Also in domPrecedes is a fall-back mechanism, which is used if the document has an invalid node numbering. Removed the forced re-numbering in case of invalid node numbering of the doc for every single selectNodes. Added preliminary method renumber for MT-enabled builds. Carefully reviewed every rsAddNode usage in domxpath.c. Some minor editorial changes. 2003-09-28 Rolf Ade * generic/tclexpat.c: Removed two unused vars. * tests/domnamespace.test * generic/dom.h: Changed type of domNameSpaceIndex, domNodeFlags, domAttrFlags, domDocFlags and info in dom*Node structs from int to unsigned int. This fixes bug with docs with more than 128 different namespaces. * tests/xpath.test * generic/domxpath.c: Bug fix: preceding-sibling axes could give wrong results in case the context node is a child of rootNode (e.g the documentElement). * tests/dom.test * generic/tcldom.c * generic/dom.c: Bug fix for replaceChild: If the node to replace was wrong, the doc got mangled. Bug fix for appendChild, replaceChild: the new node could not be a sibling or child of node. Speed improvment in some cases for removeChild, replaceChild, appendChild. 2003-09-22 Rolf Ade * tests/dom.test * doc/domNode.* * generic/tcldom.c * generic/dom.c: Reworked insertBefore: Bug fix: If the refNode was invalid, the involved documents got mangled. Bug fix: Dead loop, if the node to insert was the node itself. Bug fix: the rootNode of node's document could be used as node to insert. Bug fix: It was not possible, to insert a node before refNode, which was already a children of node. Bug fix: It was not possible, to insert a sibling of node. Feature enhancement: If the refnode is the empty string, the newNode is inserted at the end of the children list of node. Optimization: Average speed was O(n/2) (n: number of childs of node) in case the node to insert was out of the tree, and 0((n+m)/2) (m: number of nodes in the fragments list) in case the node to insert was out of the fragments list. Now its O(1). * tests/dom.test: Removed 'knownBug' constraint from two tests, which documented known bugs, that are fixed in the meantime. 2003-09-17 Rolf Ade * tests/cdata,test * tests/element.test * tests/parser.test: Added a few tests related to the new flexibility of the -elementstartcommand, -elementendcommand and -characterdatacommand scripts. * doc/expat.*: Added documentation for the now implemented cget method. Added information about the default for the -paramentityparsing option. * generic/tclexpat.c * generic/tclexpat.h: Enhanced the new cget method of parserObjs to also report the state of -noexpand, -useForeignDTD, -paramentityparsing (those by doing the bookkeeping with an enhanced TclGenExpatInfo struct, because the expat parser do not proived an API to request this settings) and -namespace. Improved argument check of the parser obj method calls. Optimization for calling handler scripts. 2003-09-16 Zoran Vasiljevic * Makefile.in: added SHLIB_CFLAGS to set of compiler switches in order to silence the picky linker. 2003-09-14 Rolf Ade * lib/tdom.tcl: Fixed scripting bugs in ::dom::domDoc::importNode and ::dom::domNode::length * Makefile.in: dist target: Don't include CVS dirs and hidden files into the distribution file. 2003-09-14 Zoran Vasiljevic * Makefile.in * configure * configure.in: made more TEA-2 compatible by moving the tcldomsh target out. Also, honour the MATH_LIBS as calculated by the tcl.m4 instead of plumbing our own. Also, fixed "make dist" to produce distribution file. * tclconfig/ChangeLog * tclconfig/tcl.m4: imported fresh new versions from SF * unix/CONFIG: cleanup * macosx/README: cleanup 2003-09-14 Rolf Ade Merged fixes from 0.7.8 into HEAD. This includes: 2003-08-06 Zoran Vasiljevic * generic/nodecmd.c: removed optimized domAppendChild1 in favour of generic domAppendChild since former was trashing memory in certain situations. 2003-08-06 Rolf Ade * tests/all.tcl * tests/domCmd.test: Added contraint need_uri, so that the few tests, which needs the tcllib uri package are skipped, if the uri package isn't present. 2003-07-06 Rolf Ade * generic/tclexpat.c: Fixed bug in the subtree skipping feature of event handlers. Should be merged with HEAD. * lib/tdom.tcl: Fixed error reporting in tDOM::extRefHandler. 2003-07-03 Zoran Vasiljevic * generic/domlock.c: fixed double mutex unlock. * generic/tcldom.c: allows same thread to issue several "attachDocument" commands to artificially bump the document refcount thus making the document sticky. Also, fixed variable tracing issues when tearing down the dom document. Now, all node object command variables are automatically untraced. This prevents memory trashing when such variables are unset by user or by Tcl. 2003-09-14 Rolf Ade * generic/tclexpat.c: Added cget method implementation for all parser options with the exceptions of -namespace, -useForeignDTD and -paramentityparsing. Revamped behind the scene code for handling of the -elementstartcommand, -elementendcommand and -characterdatacommand options. Up to now, the arguments to this options must have been the name of an already defined tcl proc. This allowed a special high performance calling of that procs. The new code behaves exactly the same way for every script, which worked with previous versions. Additionally it allows, to specify a not already defined tcl proc and, probably more important, allows 'arbitrary' tcl scripts as argument to that options. All in this checkin in the work of Harry Moreau (hmoreau@online.ie). Many thanks for this contribution. 2003-06-13 Rolf Ade * generic/tcldom.c: Added an argument check for XSLTCmds. 2003-06-11 Rolf Ade * generic/domxslt.c: Fixed a bug in xsl:number. If there is no 'count' attribute given to xsl:number, it must default to the pattern that matches any node with the same node type as the current node and, if the current node has an expanded-name, with the same expanded-name as the current node. But in case of PROCESSING_INSTRUCTION_NODEs as the current node and no 'count' attribute, it counted all pi's regardless of the name. Now, the name is respected, as it should be. 2003-06-11 Zoran Vasiljevic * generic/domlock.c: fixed double mutex unlock. 2003-05-19 Rolf Ade * doc/dom.*: Corrected the documentation of the createDocumentNS method: the args uri and docElementName were documented in the wrong order (reported by Vico Klump). Minor markup changes. 2003-05-16 Zoran Vasiljevic * generic/dom.h * generic/tdom.decls * generic/tdomDecls.h * generic/tdomStubInit.c * generic/tdomStubLib.c * generic/tdominit.c: fixed so it compiles cleanly when -NS_AOLSERVER is defined. 2003-05-16 Rolf Ade * generic/dom.h * generic/tcldom.c * generic/domxslt.c * generic/tclexpat.c: Switched to use XML_ParserCreate_MM(), to be able (at tDOM build time) to make the expat parser use custom *alloc/free() functions (macro MEM_SUITE in dom.h). For TCL_MEM_DEBUG and NS_AOLSERVER builds the mem functions, used by the parser default now to Tcl_Alloc()/Tcl_Realloc()/Tcl_Free(). Switched to XML_FreeContentModel(), for freeing stored element content models. 2003-05-11 Rolf Ade * generic/dom.c * generic/domxslt.c * generic/xmlsimple.c: Renamed the documents rootNode (in the sense of the XPath data model, that is not the document element) from "(rootNode)" to "", in preparation for the promissed 'domDoc without documentElement' feature, to fix a somewhat outlying problem with xslt numbering and because it's clearly more the 'right thing' according to the rec. * generic/domxslt.c: Removed the arg xs from sortNodeSetFastMerge(), because it isn't used. 2003-04-20 Rolf Ade * extensions/tdomhtml/tdomhtml.tcl: Proc newdoc: New optional argument (list of names of local variables) allows the use of local variables (in the scope of the caller of newdoc) in the script argument of newdoc. Contributed by Chuck Ferril. 2003-04-16 Rolf Ade * generic/domxslt.c: Optimization: Improved caching of external documents. 2003-04-12 Rolf Ade * README * README.AOL * configure.in * configure * configure-8.0.5 * tests/loadtdom.tcl * mac/Prefix/tDOMPrefix.h * mac/Prefix/tDOMPrefix_OSX.h * extensions/tnc/tnc.c: Bumped version to 0.8.0 (alpha). 2003-04-09 Rolf Ade * generic/dom.c: Fixed a bug in the creation of the error msg in case of parsing errors in an external entity. * generic/dom.c * generic/dom.h * generic/domxslt.c * tests/domCmd.test * doc/dom.* * generic/tcldom.c: Added option -paramentityparsing to the [dom parse] method. [dom parse] option parsing now uses Tcl_GetIndexFromObj() (which additionally fixes a minor bug with the current option parsing). * generic/tcldom.c: Removed an unused variable. Improved error reporting in case of not found attribute. Better options check for the 'xslt' methods. Changed implementation of the dom method isQName to use the lately introduced API function domIsQNAME. * generic/tclexpat.c tests/parser.test: Fixed a bug in the value parsing of the -paramentityparsing option. * tests/domCmd.test: Added tests for the interface of the xsltCmds. * tests/xpath.test: Added test which documents the bug prior to domxpath.c r1.63. * doc/dom.*: Added 'package require tdom' to the syntax decription (http://groups.yahoo.com/group/tdom/message/446) * doc/domDoc.*: Added documentation for the toXSLTcmd method and the resulting xsltCmds. Corrected the documentation for the xslt method (missed -ignoreUndeclaredParameters and -xsltmessagecmd in the method syntax). 2003-04-05 Rolf Ade * generic/tclexpat.c: Bug fix: If the parsing state is already not TCL_OK return in the notstandalonehandler immediately success, otherwise the error msg will be overwritten with a false diagnostic. A few editorial changes. 2003-04-04 Rolf Ade * generic/dom.c * generic/dom.h: Added domIsQNAME. * generic/dom.c: Bug fix: For textNodes getLine/getColumn method report the position of the first char of the text node. * generic/domxpath.c: Bug fix: Detects now some erroneous XPath expressions. Added parameter number check to XPath functions substring and concat (the last two XPath functions, without such check, they must have slipped thou somehow, up to now). * generic/domxslt.c: Improved interal function reportError(), can now be used with all kind of nodes not only element nodes. Improved behavior in case of dubious numbering (negative roman number or latin letters fall back to default latin numbers). Fixed a potential memory leak (in case of overwriting named templates without match attribute with an other named template). Improved error reports: for more detected errors there is now a line/column number given. Plenty of improvements in detecting erroneous stylesheets: more checks for format-number formatting patters (although especically format-number patterns are still a can of worms), added parameter number check for additional XPath function current(), template, parameter, variable, sort, choose, copy, and message elements. 2003-03-26 Rolf Ade * generic/domxslt.c: Fixed some memory problems, mostly in case of erroneous stylesheets. --- Release 0.7.7, 25. Mar. 2003 --- 2003-03-25 Rolf Ade * configure.in * configure * configure-tcl8.0.5 * README * README.AOL * win/makefile.vc * extensions/tnc/makefile.vc * mac/Prefix/tDOMPrefix.h * mac/Prefix/tDOMPrefix_OSX.h * mac/tDOM_OSX.prj.xml: Bumped the version number to 0.7.7. * generic/tcldom.c: Fixed error, which prevents building 0.7.6 with -DTCL_THREADS=1. (Arrrg.) --- Release 0.7.6, 24. Mar. 2003 --- 2003-03-22 Rolf Ade * mac/Prefix/tDOMPrefix.h * mac/Prefix/tDOMPrefix_OSX.h * mac/Prefix/tncPrefix.h * mac/Prefix/tncPrefix_OSX.h * mac/tDOM_OSX.prj.xml: Final tweaking for 0.7.6. * expat/VERSION * expat/expat.h: Updated to an after 1.95.6 version, which fixes the problem, that some compilers had with the 1.95.6 version. 2003-03-22 Rolf Ade * README * README.AOL * configure.in * configure * configure-tcl8.0.5 * mac/tDOM.r * mac/tDOM_OSX.prj.xml * mac/tnc.r * extensions/tnc/makefile.vc: Updated to new version number 0.7.6. * mac/tDOM/*: Added dir/files, to have a version number independed output dir for the mac build. * mac/tDOM.0.7.5/* * mac/tDOM.0.7.5: Removed in favor of a version-less tDOM output directory. * configure * configure.in: tdomstub_BUILD_SPEC must point to the plattform specific build dir. * generic/tcldom.h: Removed hard coded version number, uses now VERSION define. * win/makefile.vc * win/makefile805.vc * win/pkgIndex.tcl: Updated to new version 0.7.6. * extensions/tnc/tnc.c * extensions/tnc/tests/tnc.c: Added code needed to handle effects of the -useForeignDTD option. * doc/domNode.* * generic/tcldom.c * tests/dom.test: Renamed 'startBefore' method to the better name 'precedes' and changed behavior: the method now returns simply a boolean value. 2003-03-19 Rolf Ade * generic/tcldom.c * generic/domxslt.c * generic/dom.h * generic/dom.c: Replaced a few exit() code with Tcl_Panic(), which ensures, that even windows users get a useful error msg. * generic/dom.c: Fixed a mem leak in handling external entities. * doc/expat.* * doc/dom.* * tests/domCmd.test * tests/data/domCmd1.dtd * tests/data/domCmd2.dtd * tests/entity.test * lib/tdom.tcl * tests/domCmd.test * generic/tclexpat.c * generic/tcldom.c * generic/domxslt.c * generic/dom.h * generic/dom.c: Added option -useForeignDTD to dom parse and expat. * generic/domxslt.c: Fixed several potential memory leaks while processing erroneous stylesheets. Bug fix: added missing memory clean to grouping-separator/grouping-size support. * generic/tcldom.c: Fixed potential memory problem while processing erroneous stylesheet. Improved error msg in case of script errors in the -externalentitycommand script. * doc/domNode.* * tests/dom.test * generic/tcldom.c: Added method 'startBefore', to compare the relative order of two nodes out of the same document. * generic/nodecmd.c: Added explicit memory clean up of the nodecmd stack, to reduce 'noice' while memory leak debugging. * tests/dom.test: Added a reminder for a minor known memory problem. * tests/data/mondial-europe.xml: Added this file (used by the usage example of xe). * xe/xe-input: Changed pathes to point to the location of mondial-europe.xml. 2003-03-19 Zoran Vasiljevic * Makefile.in: installs the tdomConfig.sh into the $(libdir) whatever that points to. 2003-03-08 Zoran Vasiljevic * expt/internal.h: disabled FASTCALL & friends since those do not work anywhere, as of my knowledge. 2003-03-06 Zoran Vasiljevic * generic/domalloc.c: removed include malloc.h since not needed nor not found on macosx * configure.in: adds "-lm" even when linking the shared image since Starkit users need that. Also, fixed alternative libdir usage when installing in non-standard (user-given) location. * unix/CONFIG: new file. Adds some examples how to build the extension on some common Unix platforms. * mac: added Bernards CodeWarrior files for Mac builds. * macosx: added directory where we will supply the ProjectBuilder files (hopefully :) 2003-03-03 Rolf Ade * tests/dom.test * generic/tcldom.c: Fixed bug with using the 'domNode' cmd without argument (spotted by Bernard Desgraupes). 2003-02-27 Rolf Ade * generic/domxslt.c: xsl:number attributes grouping-separator and grouping-size now also interpreted as attribute value templates. (The last two (missing up to now only by mistake) attribute value templates under the recognized xsl attributes.) 2003-02-26 Rolf Ade * generic/tcldom.c: Removed unused variables. * lib/tdom.tcl generic/dom.c: Improved ::tDOM::xml(Read|Open)File. Now handles also utf-16 files with BOM right. * generic/domxslt.c: Made some functions static. Removed a TODO note, which already was done. Improved some error msgs (now with line/column info, if available). Bug fix: xsltXPathFuncs must return -1 to signal error, because if the source of the function call was inside of domxslt.c the result code (rc) check rule is rc < 0. Fixed text in a xsl:attribute error msg. Fixed memory leak in error case in ExecAction, case forEach. Added a missing result code check in ExecAction, case procinstr. Bug fix: Even literal result element subtrees are relevant for xslt variable scope (default case of ExecAction). Bug fix: the expression context of the match expr of a xsl:template is the xsl:template node. Now the xslt white space stripping is done before the top level processing (was done after toplevel processing). 2003-02-25 Rolf Ade * expat/VERSION * expat/internal.h: Applied post 1.95.6 patch, to fix compiler warnings ("warning: `regparm' attribute directive ignored") from gcc on Solaris. 2003-02-22 Rolf Ade * generic/tcldom.c * generic/tdom.decls * generic/tdom.h * generic/tdomDecls.h * generic/tdomStubInit.c: Added tcldom_getNodeFromName(), tcldom_getDocumentFromName() and the dom.h typdefs to the tDOM stubs table. Needed for the new tnc feature (and elsewhere, on the long run). * doc/tnc.* * extensions/tnc/configure * extensions/tnc/configure.in * extensions/tnc/makefile.vc * extensions/tnc/test.tcl * extensions/tnc/tnc.c: Added new tnc method getValidateCmd. Changed to use the same memory allocator/free defines as the tDOM core. Bumped the version to 0.3. * extensions/tnc/tests * extensions/tnc/tests/all.tcl * extensions/tnc/tests/loadtnc.tcl extensions/tnc/tests/tnc.test: Started test suite for the tcl interface of the tnc command and the validator commands. * generic/tclexpat.c: Better eContents cleanup. Bug fix: of course we have to call the parserResetProcs of the registered C handler sets while reseting the expat parser command. * lib/tdom.tcl: Smaller fixes. Changed the values of the system-properties xsl:vendor (included me) and xsl:vendor-url (to http://www.tdom.org). 2003-02-22 Zoran Vasiljevic * generic/dom.h: Added (char*) cast to argument of Tcl_Free in the FREE macro. This avoids some compiler warnings. * generic/dom.c: Added some typecasts to MALLOC to avoid compiler warnings. 2003-02-21 Rolf Ade * generic/domxslt.c: Bug fixes: Return after detecting the error (xsltPathFuncs), ensure that savedLastNode is always set right (ExecAction, case copy). Editorial changes. * configure.in * Makefile.in * configure * configure-tcl8.0.5: Don't remove tdomConfig.sh with a 'make clean', only with a 'make distclean'. 2003-02-09 Rolf Ade * expat/*: Update to expat 1.95.6. * apps/xslt.tcl: Updated to use the new -xsltmessagecmd option of the xslt method and the -doctypeDeclaration of the asXML/asHTML methods. Added a few comments. 2003-02-09 Rolf Ade * generic/dom.c * generic/dom.h * generic/domxslt.c * generic/tcldom.c * doc/domDoc.* * tests/domCmd.test: Public and system identifier information are now stored (if parsed with the expat parser or generated by the xslt engine, if given), exposed to the script level (even writable, more than DOM 2 allows) and will be, on demand, respected while serializing. * generic/dom.c: Bug fix: Hold ID => node mapping consistent even after resetting or removal of known ID attributes. * generic/domxslt.c: Bug fix: invalid memory read. * generic/tcldom.c: Bug fix: invalid memory read. 2003-01-30 Rolf Ade * generic/dom.c * generic/tcldom.c * generic/xmlsimple.c * tests/xslt.tests: Fixed bug reported by Wilhelm Klink (http://groups.yahoo.com/group/tdom/message/404 see test xslt-4.1). Again a problem (sideeffect) of renumbering node->nodeNumber (which is necessary after modification of the tree for some XPath expr to work). The keys of the entries in the baseURIs hash table of the documents where the nodeNumber of the (subtree root) nodes with new baseURI. Since this nodeNumber isn't necessarily constant over the lifetime of a node (because of the possibility of re-numbering the tree), this could not work anymore. Instead the nodeNumber, we now use the pointer to the node structure as Key for the baseURIs hash table. This pointers stay always constant, even if the nodeNumber changes. Additional code was added to domFreeNode(), to ensure, that an entry in the baseURIs hash table gets freed, if the related node is in deed freed. Removed the yesterday added reseting of the domUniqueNodeNr counter, because it turned out in testing, that there are problems with sorting of resultSets, which includes nodes from different documents (which may happen with some special XSLT constructs (document() calls with a nodeset as argument)). The reseting of the domUniqueNodeNr is still desirable, but it turned out, that it should be carefully considered, when it should be done. 2003-01-29 Rolf Ade * generic/dom.c * generic/tcldom.c * tests/xslt.test: Changed escaping of serialized XML. The previous behavior wasn't 'wrong', but now we do it along the lines of almost all other (important) tools and it seems there's al least some xslt code out there, which banks on this 'common' way of serializing. Though, there is a small risk, that this is an incompatible change for a few users. * generic/dom.c * generic/dom.h * generic/xmlsimple.c * tests/dom.test: Fixed the problem of 'changing node references' under some circumstances (reported by Wilhelm Klink). This also decrease the possibility of a potential problem for extremely long running single threaded tDOM applications. * generic/dom.c * generic/tcldom.c * tests/dom.test: Fix for the problem with ownerDocument reported by Oleg Oleinick (see test dom-29.1). * generic/tcldom.c * tests/dom.test: Fixed bug with COMMENT_NODEs while using the asList method (problem reported by Ramon Ribó). While at it, also added code for handling processing instructions, which was also missing, up to now. 2003-01-11 Rolf Ade * generic/dom.c * generic/dom.h * generic/domxslt.c * generic/domxslt.h * generic/tcldom.c: Added conversion of XSLT stylesheet DOM trees to 'cached' xslt cmds (new domDoc method toXSLTcmd). Works for non threaded tcl; needs additional work for multi-threaded tcl and documentation. * generic/domxslt.c: Fixed a bug introduced during rework of the white space stripping for XML sources. * generic/tclexpat.c: Editorial change (Typo in comment) 2002-12-28 Rolf Ade * generic/domxslt.c * generic/domxslt.h * generic/tcldom.c * doc/domNode.* * doc/domDoc.* * tests/xslt.test: The xslt method now understands also the options -ignoreUndeclaredParameters and -xsltmessagecmd. * tests/xpath.test * generic/tcldom.h: Editorial changes. 2002-12-23 Rolf Ade * generic/domxslt.c: Reworked the white space stripping for XML sources a bit. Better white space handling in token lists. 2002-12-21 Rolf Ade * generic/domxpath.c: Fixed the changes by me in rev. 1.60 in the XPath Lexer. 2002-12-20 Zoran Vasiljevic (zoran@archiware.com) * generic/tcldom.c * generic/dom.c * generic/domxpath.c * generic/domalloc.c * generic/domhtml.c * generic/docxpath.c: added DBG macro around some fprintf's 2002-11-28 Rolf Ade * generic/domxslt.c: Reuse already parsed trees only if it is requested again for the same matter (as stylesheet or as source dir), otherwise create a new tree, because of the different white space stripping rules for stylesheets and source documents. 2002-11-27 Rolf Ade * win/makefile805.vc: Added this file. VC++ 6.0 makefile to compile against tcl8.0.5, contributed by Sumit Pokhariyal. * generic/domxpath.c: FQ names with a localname equal to a XPath 'keyword' (for example ns1:div) are now recognized as node test (they raised error up to now). Changed generate-id() to return the more generic named 'id' instead of the up to now used 'node'. --- Release 0.7.5, 27. Nov. 2002 --- 2002-11-24 Rolf Ade * Makefile.in: Changed the order of the include dirs, to avoid clash with tcldom.h out of TclDOM-2.4, which will be installed in the same directory as tcl.h 2002-11-22 Rolf Ade * configure-tcl8.0.5: Added this file. Special configure for Tcl8.0.5 users. * README: Updated notes for Tcl8.0.5 users. 2002-11-21 Rolf Ade * doc/expat.*: We don't have a 'provide expat' anymore, it's all tdom. Fixed a typo. 2002-11-17 Rolf Ade * generic/domxslt.c: Report error, if xsl:import elements not come first. * doc/tnc.*: Better wording. 2002-11-16 Rolf Ade * win/makefile.vc * extensions/tnc/makefile.vc: A bit final tweaking for 0.7.5. 2002-11-16 Zoran Vasiljevic * generic/dom.h * generic/dom.c * generic/tcldom.c * generic/tclStubLib.c: fixed references to panic (now Tcl_Panic) Also, fixed some 8.0.5 compilation issues. * README: added some 8.0.5 compilation notes 2002-11-16 Rolf Ade * generic/tcldom.c: Fixed bugs, which only raised there head if compiled against tcl8.0.5. * tests/all.tcl * tests/loadtdom.tcl * tests/domCmd.test * tests/domnamespace.test * tests/htmlreader.test * tests/i18n.test * tests/xmlsimple.test * tests/xslt.test: Made test suite also running under tcl8.0.5. Added constraint to the tests, which uses i18n tcl features. * doc/tnc.xml * doc/tnc.html * doc/tnc.n: Updated documentation. 2002-11-15 Zoran Vasiljevic * generic/dom.h: added IS_DELETED node flag Changed domFreeNode to accept one additional parameter. This parameter is used to signal the function to perform node-walk and invoke user-supplied callback w/o actually freeing the node. This functionality is required for example when a thread detaches from the shared DOM tree and wants to detach all eventual node commands from its interpreter. Added "struct domNode *deletedNodes" in the document structure This is the head of all nodes spliced out of the tree but not yet free'd. This is needed in order to avoid memory trashing when one thread deletes the node and the second thread still holds the reference to it over the nodecmd command. Added "struct domNode *nextDeleted" to maintain the list of deleted nodes, as explained above. * generic/tcldom.c: introduced changes in the way nodes are deleted from the tree in multi-threading shared-tree situations. We now do not delete nodes having references from nodecmds from different threads/interpreters. Instead, we put them on the deleted nodes list and tear-down this list when we delete the document. * generic/tcldom.c: when a thread detaches from the shared dom tree it will now properly delete all commands attached to nodes. Also, the dom object command barks when attempting to use already deleted node (the node put on the deletion list). 2002-11-15 Rolf Ade * tests/dom.test: Added some tests for as yet not covered node methods. * tests/htmlreader.test: Minor fix: added tcltest cleanup. * generic/tcldom.c: Changed 'attributes' method to return the empty string as result for non element nodes, according to the DOM 2 rec, chapter "Interface Node". Fixed a seg fault in hasAttributeNS. Closed a mem leak in appendXML. * lib/tdom.tcl: Added simple debugging feature to tDOM::extRefHandler. 2002-11-14 Zoran Vasiljevic * generic/tcldom.c: fixed UMR report from Purify 2002-11-12 Rolf Ade * win/makefile.vc * extensions/tnc/makefile.vc: Updated to the new version nr and the lib name convention of the new TEA 2 build system. 2002-11-09 Rolf Ade * generic/tcldom.c: HTML serializer: No content escaping for the HTML tags script and style, according to XSLT rec 16.2. Fixed a memory problem during interp deletion. * generic/dom.c * generic/domxpath.c: Minor changes. 2002-11-03 Rolf Ade * lib/tdom.tcl: tDOM::xmlOpenFile fix for files < 4 Byte size. * generic/domxpath.c * generic/domxpath.h: Fixed ridiculously long runtime of certain // expr on certain documents. During analysis and testing, it turned out, that it would have been an even simpler approach, to simply expand the abbreviation // in the according productions. Though, the chosen implementation seems often to be (slightly) faster and is a start to collect experiences with early predicate evaluation. 2002-11-02 Zoran Vasiljevic * lib/tdomhtml.tcl: removed in favour of new tdom extension * extensions/tdomhtml: added new tdom extension for HTML generation based on tdomhtml.tcl and internal tdom appendFromScript mechanism. This is a Tcl-only extension which merely needs to be "make install"'ed. * Makefile.in: removed traces of tdomhtml.tcl file since it now lives in its own extension * configure.in: * configure: added TDOM_LD_SEARCH_FLAGS processing to help runtime linker locate eventual custom shared libraries 2002-11-01 Rolf Ade * Makefile.in: Fixed 'missing separator' problem (using tab instead of white space). * lib/tdom.tcl: Updated function-available, corrected ridiculous typo by my (element-avaliable -> element-available). Somewhat fixed and updated element-available. * generic/domxpath.c * tests/xpath.c: Full qualified XPath function names now are accepted as syntactical correct expr. The function call is resolved to the Tcl proc dom::xpathFunc::::. * generic/dom.c * generic/dom.h * generic/domxslt.c * generic/nodecmd.c * generic/tcldom.c * tests/xpath.test: Fixed old problem with Combine Set XPath expressions and XSLT sorts on trees, in which new nodes are inserted after the initial parsing (doc order of result). 2002-10-31 Zoran Vasiljevic * lib/tdom.tcl: does now "package require tdom" only, instead of "package provide tdom 0.7.5". The "package provide" with a correct version is done by the C-module now (which is better). Some cosmetic changes as well (keep 80-columns wide!). * lib/tdomhtml.tcl: renamed version of domhtml.tcl Also did some simplification in html2tcl, renamed some internal private functions and added namespace-wide definitions of html command names. The _2tcl procedure now creates the missing elementNode commands as it parses the html code, on the fly. * Makefile.in: changed order of loads in the pkgIndex.tcl. First the C-module is loaded, followed by the tdom.tcl library file, followed by the tdomhtml.tcl library file. Thus, the tdomhtml.tcl has become the first class citizen. * CHANGES: added this file 2002-10-31 Rolf Ade * generic/tcldom.c * tests/dom.test: Fixed argument check of domObj method documentElement. Fixed domNode method appendFromList (wrong list format could result in seg fault). Thanks to Oleg Oleinick, for reporting both problems. * generic/domxslt.c * generic/domxpath.c * generic/dom.c: Fixed mem leaks/possible invalid read 2002-10-30 Zoran Vasiljevic * generic/domxslt.c: added proper cast to arguments passed to FREE() macro to avoid compiler barking at us. 2002-10-30 Rolf Ade * generic/tcldom.c: Added -escapeNonASCII and -htmlEntities also to node_usage and domObj_usage. * extensions/tnc/test.tcl: Updated to use new tDOM features. Made more usable. * apps/xslt.tcl: Updated to using domDoc xslt method, -escapeNonASCII for asXML and asHTML and additionally -htmlEntities for asHTML. * generic/domxslt.c: Implemented "Forwards-Compatible Processing" (XSLT rec 2.5), with limitations: xsl:version attributes on literal result elements are not supported. Fixed a bug in XPath func format-number(). XsltProcess now accepts also a domDoc. Improved the setting of the documentElement of the resultDoc. 2002-10-29 Rolf Ade * generic/tcldom.c: * doc/domDoc.* * doc/domNode.*: Added -escapeNonASCII as option to the asXML and asHTML methods and -htmlEntities as option to the asHTML method. Added "xslt" method to domDoc commands. * generic/dom.c: Better error reporting in case of parsing errors in external entities. * doc/expat.*: Fixed a documentation bug. 2002-10-29 Zoran Vasiljevic * generic/tcldom.c * generic/nodecmd.c * generic/nodecmd.h: modified "dom createNodeCmd" to accept the -returnNodeCmd" optional argument. All commands created with this option willreturn the dom object command for accessing the generated node. * ChangeLog: added this file