[Feb 16 2009] * FIXED: Release HTML DTDs when using load_html_file/2 in a thread. [Feb 15 2009] * FIXED: Memory leak in SGML parser. [Jan 21 2009] * FIXED: RDF writer: write valid XML if the namespace entity contains characters that must be %-escaped. Jacopo Urbani. [Jan 13 2009] * FIXED: RDF/XML could save illegal XML if multiple namespaces are used for predicates where one namespace is a prefix of another one. Jacopo Urbani. [Dec 19 2008] * FIXED: Correct usage of content_length option in sgml_parse/3 when using callbacks. Needed to deal with streaming input for parsing RDF. * ADDED: Pass content_length through process_rdf/3 [Oct 13 2008] * CLEANUP: Avoid repetition and warnings on option processing predicates. Matt Lilley. [Sep 11 2008] * PORT: Add AC_PREREQ to configure.h for systems that auto-select autoconf versions. After tip by Ulrich Neumerkel. [Aug 11 2008] * INSTALL: Remove all configure files from the git repository [May 20 2008] * MODIFIED: Streams in socket.pl and ssl.pl appeared unbuffered. They are now fully buffered. [Apr 18 2008] * MODIFIED: Renamed hash_term/2 to term_hash/2. Added hash_term/2 to library(backcomp), so most code should not notice this. [Mar 1 2008] * ENHANCED: Allow for GC from PL_handle_signals(), providing GC for foreign code building large structures. This is now used by the SGML/XML parser to avoid running unnecessarily out of stack. [Feb 28 2008] * FIXED: rdf_write_xml/2 loops if it encounters an rdf:Bag. [Feb 18 2008] * FIXED: More fixes for proper handling of rdf:Bag [Feb 13 2008] * FIXED: Emit rdf:Bag attributes (etc.) as rdf:li * FIXED: possible failure in rdf_write_xml with http://t-d-b.org? [Jan 23 2008] * PORT: Bug#346: Allow overriding COFLAGS and CWFLAGS in package configuration. Keri Harris. [Jan 14 2008] * FIXED: Bug#343: Handling bnodes in rdf_write_xml. Yver Raimond. * FIXED: Added support for rdf:NodeID to rdf_write_xml/2. Yves Raimond. [Dec 13 2007] * FIXED: library(rdf_write) to deal with operators. Related to Bug#332 [Nov 12 2007] * FIXED: Bug#320: Memory leak when parsing SGML NOTATIONs. Keri Harris. Oct 30, 2007 * FIXED: xml_write/3 quoting of < in attributes. Dmitry Kuzmin. Sep 11, 2007 * FIXED: xml_write/3 for multi-valued attributes such as IDREFS, NAMES, etc. Victor de Boer and Anjo Anjewierden. Jun 6, 2007 * MODIFIED: Avoid recursive expansion of entities, unless marked as SGML content. * FIXED: Strict XML comment syntax. Jacco van Ossenbruggen. * FIXED: give error on bad entities in XML mode. Jacco van Ossenbruggen. Feb 6, 2007 * MODIFIED: xml_quote_attribute no longer maps ' to ' See note in quote.c Nov 15, 2006 * FIXED: properly pass instructions. Oct 27, 2006 * ENHANCEMENT: Started branch XML_UNICODE to provide support for Unicode filenames, tags and elements. Aug 28, 2006 * DOCUMENTATION: Moved to sgml.doc, using the same system as the remainder of the system. Jul 25, 2006 * FIXED: space(default) handling. Juho Östman. Jun 20, 2006 * FIXED: illegal read. Can cause wrong data and/or crashes. Feb 16, 2006 * ENHANCED: various improvements of the sgml_write.pl library by Richard O'Keefe. Feb 12, 2006 * ENHANCED: xml_write/3: if encoding is `text', write the data as UTF-8 Feb 9, 2006 * FIXED: valgrind detected memory error. Not sure whether or not it was a real error. Feb 1, 2006 * PORT: Detect inline behaviour of compiler in configure Jan 19, 2006 * FIXED: Allow for different deparators in in/excluded namegroup. Anjo Anjewierden. Jul 7, 2005 * ADDED: entiry(+Name, +Value) to (re-)define CDATA entity values. Mar 31, 2005 * ADDED: make exceptions in call-backs from sgml_parse/3 return the parser immediately with the given exception. Mar 29, 2005 * ADDED: layout(Bool) option to the xml_write/3 and friends predciates. Mar 21, 2005 * ADDED: specify dialect for loading DTDs. After mail from Sebastien Cabot. * FIXED: Avoid error on thread_at_exit when using in single-threaded Prolog. Anjo Anjewierden. Mar 6, 2005 * ADDED: improved namespace and indentation support for xml_write/3. Mar 5, 2005 * ADDED: xml_is_dom/1. Option header(Bool) to xml_write to suppress writing the header. Mar 4, 2005 * ADDED: xmlns support to xml_write/3. * ENHANCED: library(sgml_write): Indent attributes if there are too many. Mar 01, 2005 * ADDED: encoding argument to xml_quote_* and xml_name/2 predicates. Feb 24, 2005 * ADDED: handle encoding="US-ASCII" for XML documents. Feb 22, 2005 * MODIFIED: Use Sgetcode() rather than Sgetc() to get data from a Prolog stream. Extended parser to accept characters outside 0..255 range. Feb 7, 2005 * ADDED: when converting attributes to integers on 32-bit machines, exploit 64-bit Prolog integers. Jan 6, 2005 * FIXED: Documentation Dec 21, 2004 * ADDED: library(sgml_write), providing conversion of parsed data to a file. Dec 20, 2004 * Working wide-character version. Consequences: - CDATA attributes and content never contain entities anymore as all text can now be represented. - Limit on quoted CDATA attribute values (was 2048 characters) has been removed. Dec 19, 2004 * Start working on wide-character support: introducing wide-character output buffers. Dec 15, 2004 * FIXED: Bug#212: Disallow � character entities. Nov 25, 2004 * FIXED: utf-8 tests, avoid conflict with UTF-8 support in Prolog Sep 13, 2004 * ENHANCED: load_html_file/2: add shorttag(false) to the load_structure/3 options for better parsing of common errornous HTML pages. Aug 26, 2004 * FIXED: Bug#177: catalog files from $SGML_CATALOG_FILES were not honoured. Simon Ambler. Also made catalog management thread-safe. Jul 22, 2004 * MODIFIED: Updated XML-Schema (XSD) namespace in xsdp_types.pl Apr 28, 2004 * ADDED: iso_639.pl: ISO-639 language identifiers. Apr 27, 2004 * ADDED: first version of xsdp_types.pl, a module to do type checking and type conversion for XSD (XML Schema DataTypes). Apr 26, 2004 * FIXED: Bug#149: Buffer overflow reading too long NAME, NMTOKEN, etc. Fabien Todescato. Jan 17, 2004 * FIXED: handling switching from SGML to XML mode. Fabien Todescato. Jan 9, 2004 * FIXED: avoid sharing DTD objects between threads. Fabien Todescato. Nov 20, 2003 * ADDED: xml_name/1 to test an atom to refer to a valid XML name. Nov 3, 2003 * FIXED: Error parsing SHORTREF declaration that has whitespace at the end. Richard O'Keefe. Sep 12, 2003 * FIXED: Memory leak in load_structure/3 (not freeing the parser data). Petter Egesund. Jul 8, 2003 * ADDED: handle UTF-8 sequences producing characters that cannot be represented as character entities. Suggested by C. M. Sperberg-McQueen. * FIXED: handling &#X, where 128<=X<256 with UTF-8 decoding enabled. C. M. Sperberg-McQueen. Jun 9, 2003 * FIXED: SGML SHORTREF declaration performed case-insensitive entity lookup. Richard O'Keefe. Jun 4, 2003 * ENHANCED: type the conflicting CDATA in #PCDATA that violates the DTD May 23, 2003 * FIXED: More catalog trouble. Richard O'Keefe. May 22, 2003 * FIXED: Lookup of system identifiers through the catalogue (avoid early tagging with file:) Richard O'Keefe. May 21, 2003 * FIXED: Handle -- in element-names (Bijan Parsia). May 8, 2003 * Fix registering catalog files May 5, 2003 * Incorporated better CATALOG parsing by Richard O'Keefe. May be incomplete or incorrect. * FIXED: call(end, Goal) passing the element-name incorrectly (breaks process_rdf/3). * FIXED: delay unification of value in load_structure/3. * FIXED: Properly expand UTF-8 values in CDATA attributes * FIXED: Properly handle unquoted attributes at the end of an empty element in XML mode * FIXED: #CONREF attribute handling in elements with declared content (CDATA/RCDATA). Richard O'Keefe. SWI-Prolog VERSION 5.0.10 ========================= * FIXED: properly handle elements that have only an declaration. Richard O'Keefe. * MODIFIED/ADDED: qualify_attributes option for xmlns mode. Default is now *not* to qualify attributes. * FIXED: Handle elements inside shorttag values. Thanks Richard O'Keefe for providing a clear description how to handle this. SWI-Prolog VERSION 5.0.9 ======================== * FIXED: correct handling of content_length(Len) option (was reading one character too many). Oops, normal reading was broken. Fixed. * FIXED: Correctly handle marked sections ending in ]]]> rather than ]]> Spotted by Adrian Boyko. * ADDED: xml_quote_attribute/2 and xml_quote_cdata/2, providing simple quote-support. * FIXED: parse(content) option to the parser (multiple bugs) required for process_rdf/3 (Girish Padmalayam). * FIXED: dtd2pl: printing of NAMEOF and NMTOKEN attributes (Joseph Wayne Norton). * FIXED: load_structure/3 to pass doctype(_) to the correct place. * ADDED: space(sgml) option. Was documented but omitted. SWI-Prolog VERSION 4.0.11 ========================= * MODIFIED: When processing non-validated data in space-preserve mode, emit ALL blank data (Richard O'Keefe). * FIXED: close file after reading DTD from a file. (Anjo Anjewierden) * FIXED: handling of (a) +(b) element declaraction (Richard O'Keefe) * ADDED: Warning when redefining (parameter) entities. * ENHANCED/FIXED: Process entities refering to files directly. This reduces memory needs and fixes path-problems in recursive includes. This applies for both normal and parameter entities. * ADDED: Test for legal value in attributes with type NAMEOF (a|b) * FIXED: Handle (a,b), (a&b) and (a|b) as equivalent in ATTLIST type declaration. * FIXED: option shorttag was spelled shortag. * FIXED: Ensure the output is properly closed, even if the parser encounters an unexpected end-of-file. SWI-Prolog VERSION 4.0.6 ======================== * FIXED: Data overwriting in if local stuff is too long (Andrew Dadakov). * FIXED: Report elements not in the DTD allowed by the ANY model as error (Andrew Dadakov). * FIXED: Call sgml_nomem() after strdup in case of out-of-memory (Richard O'Keefe). * PORT: Removed alloca() usage (Richard O'Keefe). * LIMIT: Make maximum string length 2048 to allow parsing HTML4 DTD. Maybe we should remove comments while fetching parameter-entity values? * FIXED: Include #FIXED and defaulted arguments for omitted tags (reported by Richard O'Keefe). * ADDED: handle plain silently if the catalog contains a DOCTYPE doc file.dtd entry. * FIXED: Various issues in attribute handling with new routines supplied by Richard O'Keefe. Added shorttag(Bool) to options you can set. * ADDED: `make check' to run the test-suite. * FIXED: Handling of & (Richard O'Keefe). * FIXED: dtd2pl to use model(Model) to avoid amibiguity between CDATA and (CDATA) model. Richard O'Keefe. * FIXED: Various output aspects of the sgml driver program, notably case and character escaping problems. By Richard O'Keefe. * ADDED: Ignore SGML declaration in * FIXED: Do not require ; after character-entity * ADDED: Expand character and parameter entities while parsing literals in a DTD (Richard O'Keefe). VERSION 1.0.13 ============== * FIXED: Interpret as "> (well, dependent on the delimiters). (Richard O'Keefe). * FIXED: Allow omitted end-tag for RCDATA and CDATA elements (only effective when hitting the end of the file). * FIXED: Proper parsing of declaration. Also fixed dtd_property(DTD, notations(Notations)) and modified dtd_property(DTD, notation(N, Decl)). * ADDED: (Richard O'Keefe). * FIXED: Ignore newline after entity * FIXED: Allow omitted ; expanding entities in CDATA attributes * FIXED: Possible crash with SHORTREF endding in &#RE. * FIXED: avoid crash on illegal syntax in DTD omited-tag declaration VERSION 1.0.12 ============== * FIXED: More white-space issues in handling quoted attribute values. * ADDED: XML NAMECHARS to the default set. This seems to match HTML-4 better and will only in exceptional cases harm normal SGML processing. * ADDED/MODIFIED: Attributes not in the source, but with a default or fixed value declared in the DTD are now included in the output. The old behaviour can be used using the defaults(false) option to load_structure/3. * FIXED: expand parameter-entities in by Milan Zamazal for integration as Debian (linux) package. VERSION 1.0.10 ============== * UPDATE: calls to select/3 for compatibility to SWI-Prolog 3.4 * FIXED: Allow , using a new state S_DECL0 after seeing < to decide whether this is a non-escaped < in CDATA or a real tag. Also changed comment-handling to avoid the need for parser->previous_char. * ADDED: sgml utility allow for parsing stdin. * PERFORMANCE: Improved expand_[p]entities(), providing about 10% overall improvement. * FIXED: crash in sgml (demo-)driver app causing a crash if the input file has no extension (Richard O'Keefe). * ADDED: support for RCDATA declared-content elements * FIXED: SGML-mode: immediately close EMPTY elements (i.e. do not allow for a closing ). * IMPROVED: Error reporting on elements not in the DTD. * ADDED: get_sgml_parser(Parser, dtd(-DTD)). VERSION 1.0.8 ============= * FIXED: Problem in windows version regarding text/binary file and \ <-> / difference. * FIXED: Problem finding HTML4 .soc file * FIXED: entity_file() to avoid a crash if the entity is not in the catalog. * ADDED: Parse not-quoted attribute values that require quotes by parsing upto the next layout character. Give a warning. For example:
is parsed as
, but a warning is displayed. * FIXED: Crash if start of file is not a declaration but ordinary non-blank text. * ADDED: Improved source-location handling and some additional call-backs to the call-back interface, preparing the parser for supporting SGML syntax highlighting and checking editors. See get_sgml_parser/2 and sgml_parse/2 predicates. VERSION 1.0.7 ============= * IMPROVED: Redirect all memory management to print a fatal error message instead of crashing. * IMPROVED: Handle the (illegal) comment more elegantly: assume and generate a warning if text was found outside --comment--. * FIXED: Some issues in marked-section handling * ADDED: Direct error reporting of sgml application through callback for demo purposes. Message now includes the current dialect. * FIXED: sgml application: do not convert case in XML mode. * FIXED: Do not report error on not-declared xmlns attribute in XML mode. * Cleaned Makefiles VERSION 1.0.6 ============= * ADDED: SGML based documentation of the package with converters to LaTeX and HTML in Prolog. * ADDED/MODIFIED: number(NumberMode) option to the load_structure/3. By default NUMBER and NUMBERS tokens are now parsed as tokens of digits. Using number(integer) they are converted to Prolog integers, provided they fit (Richard O'Keefe). * ADDED: If a document is parsed without DTD and a catalog is provided, try finding a matching DTD file from the catalog. If successful print a warning and load this DTD. * FIXED: Ensure the -xml flag to the sgml utility works again. * INSTALL: Check for existence of runtex * INSTALL: Do not cache Prolog related variables. * FIXED: signed/unsigned character handling in catalog.c (Richard O'Keefe) * MODIFIED: Representation for source-locations. VERSION 1.0.5 ============= * MODIFIED: Get SYSTEM entities relative to the file in which the entity is declared. Get PUBLIC entities from the second argument if the catalog (entry) is not found. * FIXED: Deal with elements only containing shortref references * MODIFIED: Only insert missing close-tags that should not be on closing outer environments, not because an element is encountered that fits in an outer environment. Improves error behaviour. * ADDED: Print default list values in dtd2pl * ADDED: Support for the content-model ANY. * ADDED: option -xml to pl2dtd to force it loading a DTD in XML mode. * FIXED: Do not expand SHORTREF inside CDATA marked sections and elements. * ADDED: Properly deal with NUTOKEN: handling DTD default and validate type. * FIXED: Expand parameter entities in SHORTREF declaraction (Richard O'Keefe). * FIXED: Handling of < as last character of a CDATA element * FIXED: proper handling of &#RE; in SHORTREF * FIXED: Open CDATA element when encountering a CDATA entity. * FIXED: SHORTTAG with attributes: ) * ADDED: Prolog interface: map multi-valued attributes to a list. * FIXED: ESIS output of the sgml utility to provide better compliant output for attributes (before the open-tag, including the type and in UPPERCASE). * ADDED: Handling and friends. * FIXED: Added &#RS;, &#RE;, &#TAB; and &#SPACE; (Richard O'Keefe) * FIXED: Processing instruction is now (i.e. optional closing ?) Q: Is this XML or SGML? Check docs! * FIXED: Line-number info for DOCTYPE declarations holding [declaractions]. * FIXED: NUMBER attribute declaration with default (skip layout afterwards) * ADDED: Support for NOTATION attribute * FIXED: memory allocation/free bug in model-reduction ((a|b)*) * ADDED: Passing processing instructions to the user * FIXED: Independent case-sensitivity switch for entities (SGML entities are case sensitive). * ADDED: SGML Blank-space handling * FIXED: Completeness test for A&B? * ADDED: Dummy make check (Richard O'Keefe) VERSION 1.0.1 ============= * ADDED: Programmable XML namespace canonisation. * ADDED: White space handling using the xlm:space attribute as well as allow for setting the initial default as option to load_structure. * FIXED: Allow for (i.e. without CDATA type decl). * FIXED: Allow for (i.e. no public nor system) * FIXED: Avoid crash on bad attribute-list * ADDED: Reporting errors and warnings through print_message/2. * FIXED: Handling of end-of-file in CDATA