2010-08-16 Dave Beckett * Snapshotted raptor2_1_9_0 for 1.9.0 release (GIT 9223bfb82c7291dfc778d5bde690a6ecdb652e8e) 2010-08-15 Dave Beckett * UPGRADING.html: remove overview section * INSTALL.html, LICENSE.html, NEWS.html, README.html, RELEASE.html, UPGRADING.html: Tidy HTML style and change title to Raptor RDF Syntax Library * TODO.html: Empty document and point at bugs.librdf.org * UPGRADING.html, Makefile.am: Added UPGRADING.html * docs/tmpl/section-general.sgml: Update tmpl for adding raptor_log_message * src/raptor.h: Remove newline so raptor_log_message gets scanned by gtk-doc! * docs/raptor-sections.txt: Add raptor_log_message * docs/.gitignore: Ignore raptor-fake.i for real * docs/.gitignore: Ignore raptor-fake.i * docs/Makefile.am, docs/tmpl/section-general.sgml: Make raptor-fake.i generate properly * scripts/Makefile.am: restore CLEANFILES * docs/Makefile.am, scripts/Makefile.am, scripts/fix-gtkdoc-header.pl: Attempt to fix raptor.h header to make gtk-doc happier * docs/raptor-1-to-2-map.tsv: more words in notes * docs/raptor-tutorial-parsing.xml: need base uri pointer * docs/raptor-tutorial-serializing.xml: enumeration * docs/raptor-tutorial-parsing.xml: enumeration * docs/raptor-tutorial-querying-functionality.xml: typo * docs/raptor-tutorial-parsing.xml: raptor 2 * docs/raptor-tutorial-intro.xml: raptor 2 * docs/.gitignore: Ignore upgrade-script.pl * scripts/build-formats.c: Call emit_format_to_syntax_list() at end to emit last seen mime type. * scripts/build-formats.c: (emit_format_to_syntax_list): Added to emit format -> list of parser/serializers. * scripts/build-formats.c: print previous mime type in types index * src/raptor_serialize_ntriples.c: Label nquads as "N-Quads" 2010-08-14 Dave Beckett * docs/libraptor2.3: Cut down for raptor2 and point to API docs in HTML * README.html: N-Quads serializer * docs/raptor-parsers.xml: JSON parser * INSTALL.html, README.html, raptor2.rdf.in: Update docs to point to GitHub source and browse * 000-README-GIT.txt: Remove migration text * AUTHORS: Add Nicholas J Humfrey * docs/tmpl/section-locator.sgml: Update generated tmpl for locator rename * RELEASE.html: 1.9.0 notes * docs/raptor-serializers.xml: Add N-Quads section * tests/trig/Makefile.am: Add bug370.out to dist * tests/trig/Makefile.am, tests/trig/bug370.out, tests/trig/bug370.trig, tests/trig/example1.out, tests/trig/example2.out, tests/trig/example3.out: Convert TRiG output results file to N-Quads to check graph parameter. * configure.ac, src/Makefile.am, src/raptor_internal.h, src/raptor_serialize.c, src/raptor_serialize_ntriples.c: Add N-Quads serializer name 'nquads' using N-Triples serializer. Add conditions in makefile to allow ntriples and/or nquads serializers raptor_ntriples_serializer_context rename dummy field to is_quads (raptor_ntriples_serialize_statement): Pass on flag to print graph. (raptor_nquads_serializer_register_factory): Added to register nquads serializer with text/n-quads mime type (raptor_init_serializer_nquads): Added 2010-08-11 Dave Beckett * tests/turtle/Makefile.am, tests/turtle/bad-23.ttl: Add bad test bad-23 for http://bugs.librdf.org/mantis/view.php?id=369 2010-08-09 Dave Beckett * docs/raptor-1-to-2-map.tsv, docs/raptor-sections.txt, src/raptor.h, src/raptor_locator.c: Revert raptor_locator_uri_string to raptor_locator_uri to protect Reland SWIG API * configure.ac, src/raptor_general.c, src/raptor_internal.h: Remove --with-dmalloc and dmalloc library support 2010-08-09 Lauri Aalto * src/raptor_term.c: STANDALONE flagging for raptor_term unit tests 2010-08-08 Dave Beckett * docs/raptor-1-to-2-map.tsv: ID function rename typo 2010-08-08 Dave Beckett * docs/tmpl/section-parser.sgml, docs/tmpl/section-triples.sgml, docs/tmpl/section-world.sgml: Update tmpls 2010-08-08 Dave Beckett * docs/raptor-sections.txt: Update sections for ID handler changes * configure.ac: Protect checks for optional configure tests with quoting and X 2010-08-08 Nicholas J Humfrey * src/raptor_json.c: The JSON parser supports both Resource-Centric and Triples. 2010-08-06 Dave Beckett * src/raptor_grddl.c: Simplify libxslt save/restore logic (raptor_libxslt_set_global_state): Always save default security prefs. (raptor_libxslt_reset_global_state): Always restore default security prefs. (raptor_init_parser_grddl_common): Init sec prefs if policy allows and NULL * src/raptor_grddl.c: Alter GRDDL init/cleanup of libxslt to be done around transform This means that raptor can operate in a single threaded environment with other libxslt users, since it saves/restores all the libxslt global vars that it needs back to their original state after every xslt transform. raptor_grddl_parser_context gains saved_xsltGenericError, saved_xsltGenericErrorContext and saved_xsltSecurityPrefs fields. (raptor_grddl_run_grddl_transform_doc): Use raptor_libxslt_set_global_state() and raptor_libxslt_reset_global_state() to save restore around transforms. (raptor_init_parser_grddl_common): Do not set default security prefs. (raptor_terminate_parser_grddl_common): NULL security prefs after freeing them. (raptor_libxslt_set_global_state): Added to save libxslt shared state that grddl parser needs to overwrite. (raptor_libxslt_reset_global_state): Added to reset state back to original values. Candidate for backporting to raptor1 since it has no API impact. * src/raptor_grddl.c: Document libxslt global settings. (raptor_grddl_run_grddl_transform_doc): set per-transform generic error handler * docs/raptor-1-to-2-map.tsv: Update from genid changes Renamed 1.9.0 genid functions are renamed again, moving to world class. - raptor_world_set_generate_bnodeid_parameters renamed from raptor_parser_set_default_generate_id_parameters - raptor_world_set_generate_id_handler renamed from raptor_parser_set_generate_id_handler New 1.9.0 genid function renamed: - raptor_world_generate_bnodeid renamed from raptor_parser_get_new_generated_id and loses type arg. * src/raptor_general.c, src/raptor_grddl.c, src/raptor_internal.h: Make XSLT security preference setting totally disableable (raptor_world_set_libxslt_security_preferences): If user sets any value, even NULL, record that. (raptor_init_parser_grddl_common): If pointer is NULL and user didn't set it, only then make raptor-specific policy. (raptor_terminate_parser_grddl_common): If pointer is not NULL and raptor set it, then free policy. xslt_security_preferences_policy field of raptor_world internal renamed from free_xslt_security_preferences This patch is a candidate for backporting to raptor1. * src/raptor_www.c: (raptor_www_set_user_agent): memcpy comment * src/raptor_libxml.c: memcpy replacing more strcpy for known length strings. Check NUL copying. * src/raptor_www.c: memcpy replacing more strcpy for known length strings. Check NUL copying. * src/raptor_sax2.c: (raptor_sax2_start_element): memcpy replacing strcpy with known length string. * src/raptor_qname.c: memcpy replacing more strcpy for known length strings. Check NUL copying. * src/raptor_namespace.c: (raptor_new_namespace_from_uri): memcpy replacing strcpy * src/raptor_uri.c: (raptor_uri_filename_to_uri_string): memcpy replacing strcpy * src/raptor_uri.c: (raptor_new_uri_for_rdf_concept): memcpy replacing strcpy * src/raptor_uri.c: (raptor_new_uri_from_id): memcpy replacing strcpy * src/raptor_uri.c: (raptor_uri_print): Correct error check and simplify code. 2010-08-05 Nicholas J Humfrey * src/raptor_term.c: Changed behaviour of raptor_new_term_from_counted_blank() and raptor_new_term_from_blank() to generate a new identifier if NULL is passed in. * src/ntriples_parse.c: Fix for ntriples parsing after the raptor_world_generate_bnodeid() changes. Fix was to delete code - blank nodes must be named in ntriples. 2010-08-04 Dave Beckett * src/raptor_guess.c, src/raptor_internal.h: Remove internal raptor_parser_get_current_base_id and raptor_parser_factory method * src/ntriples_parse.c, src/raptor.h, src/raptor_general.c, src/raptor_grddl.c, src/raptor_internal.h, src/raptor_parse.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/turtle_parser.y: Move generate ID code from raptor_parser to raptor_world class (raptor_world_generate_bnodeid): Replaces raptor_parser_internal_generate_id with arg RAPTOR_GENID_TYPE_BNODEID. Enum raptor_genid_type deleted - only RAPTOR_GENID_TYPE_BNODEID was ever used. raptor_generate_bnodeid_handler handler typedef renamed from raptor_generate_id_handler since it now just applies to blank node IDs. raptor_generate_bnodeid_handler handler renamed from raptor_generate_id_handler. (raptor_free_world): Free user genid prefix if set. (raptor_world_set_generate_bnodeid_handler): Renamed from raptor_parser_set_generate_id_handler. (raptor_world_generate_bnodeid): Renamed from raptor_parser_get_new_generated_id and loses type arg. (raptor_world_set_generate_bnodeid_parameters): Renamed from raptor_parser_set_default_generate_id_parameters. Update all callers to mostly use raptor_world_generate_bnodeid() except where a user bnode ID is given, such as in Turtle _:foo or RDF/XML rdf:nodeid="foo". Remove copying of genid fields from parsers to parsers when creating sub-parsers for e.g. grddl. typedef raptor_parser loses generate_id* and default_generate_id* fields. (raptor_world_internal_generate_id): Renamed from raptor_parser_internal_generate_id and loses type arg. typedef raptor_world gains generate_bnodeid and default_generate_bnodeid fields. (raptor_free_parser): Lose tidying user genid prefix. (raptor_parser_copy_user_state): Remove copying of genid fields between parser user states. (raptor_parser_get_current_base_id): Deleted, no longer needed to support copying genids between parser states. 2010-08-03 Dave Beckett * src/raptor_term.c: More raptor_term unit tests * src/Makefile.am, src/raptor_term.c: Add unit tests for raptor_term 2010-08-02 Dave Beckett * src/raptor_term.c: (raptor_term_equals): Make terms *different* not equal if lengths are different 2010-07-20 Dave Beckett * tests/rdfa/Makefile.am: typo * tests/rdfa/Makefile.am: Use automake conditional RAPTOR_PARSER_RDFA to enable tests * tests/json/Makefile.am: Use automake conditional RAPTOR_PARSER_JSON to enable tests * tests/grddl/Makefile.am: Use automake conditional RAPTOR_PARSER_GRDDL to enable tests * docs/raptor-parsers.xml: Added json parser section * src/raptor_json.c: Note this is RDF/JSON parser (resource centric) today * src/raptor_serialize_json.c: Accept "text/json" mime type with low Q for json serializers * INSTALL.html: words * INSTALL.html: correct autotools min versions * INSTALL.html: GIT * INSTALL.html: add YAJL pointers * configure.ac: add yajl pointer * configure.ac: Added --with-yajl=DIR (or 'no') to configure where yajl is installed. * scripts/process-changes.pl: docs 2010-07-02 Lauri Aalto * tests/json/Makefile.am: Run JSON parser tests only if the parser is enabled 2010-07-01 Nicholas J Humfrey * src/raptor_json.c: Added space after commas in parameter lists * src/raptor_json.c: Removed spaces after if * src/raptor_json.c: Changed single line if-statments to two line if statements * src/raptor_json.c: Changed C++ style comments to C style * tests/json/Makefile.am, tests/json/bad-13.json: Added a Test Case for missing out the term type * src/raptor_json.c: Textual changes to error messages. 2010-06-30 Nicholas J Humfrey * src/raptor_json.c: Removed unused debugging code. * tests/json/Makefile.am, tests/json/bad-00.json, tests/json/bad-01.json, tests/json/bad-02.json, tests/json/bad-03.json, tests/json/bad-04.json, tests/json/bad-05.json, tests/json/bad-06.json, tests/json/bad-07.json, tests/json/bad-08.json, tests/json/bad-09.json, tests/json/bad-10.json, tests/json/bad-11.json, tests/json/bad-12.json: Added example of bad RDF/JSON to check for parse errors. * src/raptor_json.c: Slightly stricter parsing of JSON. Better error messages then things go wrong. * src/raptor_json.c, tests/json/Makefile.am, tests/json/example3.json, tests/json/example3.nt: Enabled allowing comments in JSON * src/raptor_json.c: Fixed comparision between signed and unsigned integers. 2010-06-29 Nicholas J Humfrey * src/raptor_json.c: Improved JSON syntax detection to look at the content. * src/raptor_json.c: Lots of code re-factoring. - Improved error handling - Using Raptor memory allocation - Improved memory management * src/raptor_json.c: Changed malloc() to RAPTOR_MALLOC, free() to RAPTOR_FREE(). * src/raptor_json.c: Rewrote fprintf(stderr, ...) to raptor_parser_fatal_error(...) 2010-06-28 Dave Beckett * src/raptor_uri.c: (raptor_new_uri_from_counted_string): autodoc to note counted string need not be NULL-terminated. * src/raptor_term.c: autodocs to note counted string constructors need not be given NULL-terminated strings. 2010-06-27 Nicholas J Humfrey * src/raptor_json.c: Added RATOR_JSON_ prefix to symbols. Code cleanup. * src/raptor_json.c, tests/json/Makefile.am, tests/json/example1.json, tests/json/example1.nt, tests/json/example2.json, tests/json/example2.nt: Added support for parsing resource-centric JSON * configure.ac, tests/Makefile.am, tests/json/Makefile.am, tests/json/example1.json, tests/json/example1.nt, tests/json/example2.json, tests/json/example2.nt: Created some tests for RDF/JSON. * src/raptor_json.c: Added support for Bnodes and Datatyped literals. Fix for parsing small files. * src/raptor_json.c: Commiting initial work on writing an JSON parser. Currently only handles json-triples. Lots of tidying up required: - symbol names - remove debugging messages - sort out memory management 2010-06-26 Nicholas J Humfrey * configure.ac, src/Makefile.am, src/raptor_internal.h, src/raptor_parse.c: Added libyajl library checking and json parser building to automake 2010-06-06 Dave Beckett * examples/grapper.c: code style * examples/Makefile.am: Add grapper-future rule * examples/grapper.c: fix menu preferences link * examples/grapper.c: Remove more deprecated GTK - GtkToolTips and trigger based on macro 2010-06-05 Dave Beckett * examples/grapper.c: Better but preferences menu still broken * examples/grapper.c: Another attempt, still crashes. GTK docs also suck * examples/grapper-ui.xml, examples/grapper.c: GtkUIManager and external XML file is too damn complex to make work - disable. * examples/grapper-ui.xml: Add GTK UI xml * examples/grapper.c: more code explanation * examples/grapper.c: Make both combo box alternatives work * examples/grapper.c: Replace deprecated (in 2.4.x) gtk_option_menu with gtk_combo_box * examples/grapper.c: more 2.5.0+ code pruning * examples/grapper.c: Require GTK 2.5.0+ (that's still quite old!) * examples/grapper.c: code style * examples/grapper.c: Update to Raptor 2 API 2010-06-02 Dave Beckett * docs/raptor-sections.txt: added raptor_new_term_from_counted_blank * src/raptor_term.c: fix raptor_new_term_from_counted_blank * docs/raptor-1-to-2-map.tsv, src/raptor.h, src/raptor_term.c: Added raptor_new_term_from_counted_blank for term with counted length ID. (raptor_new_term_from_counted_blank): Added * docs/raptor-1-to-2-map.tsv, docs/raptor-sections.txt, docs/tmpl/section-triples.sgml: Update docs for raptor_new_term_from_counted_literal * src/raptor.h, src/raptor_term.c: Added raptor_new_term_from_counted_literal for constructing from strings with known lengths. (raptor_new_term_from_counted_literal): Added (raptor_new_term_from_literal): Now calls raptor_new_term_from_counted_literal. 2010-05-25 Dave Beckett * src/raptor_term.c: (raptor_new_term_from_literal): Fail if language and datatype are given like librdf_new_node_from_typed_literal * docs/raptor-1-to-2-map.tsv, src/raptor.h, src/raptor_serialize_ntriples.c: (raptor_statement_ntriples_write): Add flag to decide whether to write graph term. * src/raptor_serialize_ntriples.c, src/raptor_statement.c: (raptor_statement_print_as_ntriples, raptor_statement_ntriples_write): Write N-Triples not N-Quads 2010-05-25 Lauri Aalto * src/raptor_term.c: (raptor_new_term_from_literal): Ownership of language should not be taken. * src/raptor_term.c: (raptor_new_term_from_literal): Do not overwrite literal length with language length. 2010-05-24 Dave Beckett * docs/raptor-1-to-2-map.tsv, docs/raptor-sections.txt: Add new statement methods to sections and functions map * src/raptor_serialize_html.c, src/raptor_serialize_rdfxml.c: (raptor_term_html_write, raptor_rdfxml_serialize_statement): Use literal and language length fields direct, remove strlen()s * src/raptor_serialize_ntriples.c: (raptor_term_ntriples_write, raptor_statement_ntriples_write): Check for NULL args and early write failures * src/raptor_term.c: (raptor_term_as_counted_string, raptor_term_as_string, raptor_term_print_as_ntriples, raptor_term_equals): Check for NULL term args * src/raptor_statement.c: (raptor_statement_compare): Return stable order if both statements are NULL * src/raptor_statement.c: (raptor_statement_print, raptor_statement_print_as_ntriples): Check statement arg is not NULL * src/raptor.h, src/raptor_statement.c: (raptor_statement_equals): Added to public API * src/raptor.h: Add raptor_statement_copy to public API * src/raptor.h, src/raptor_statement.c: Add new public function raptor_statement_clear (raptor_statement_clear): Added based on core of raptor_statement_free. (raptor_statement_free): Simplified. * src/raptor_statement.c: (raptor_new_statement,raptor_new_statement_from_nodes, raptor_statement_copy): Validate args are not NULL * src/raptor.h, src/raptor_internal.h: Export raptor_new_statement, raptor_new_statement_from_nodes and raptor_statement_copy to public API 2010-05-18 Dave Beckett * src/Makefile.am, src/raptor_statement.c, src/raptor_term.c: Move raptor_term class code to new raptor_term.c * src/raptor_uri.c: (raptor_uri_compare): code tidier * src/raptor_uri.c: (raptor_uri_compare): Make both NULL be equal. * src/raptor_uri.c: (raptor_uri_compare): Update to match librdf_uri_compare when both NULL. 2010-05-16 Dave Beckett * docs/raptor-1-to-2-map.tsv: Added raptor_term_blank_value * scripts/Makefile.am: add rule for building libraptor2.la * src/raptor_locator.c: #docs * docs/raptor-sections.txt: Add raptor_term_blank_value * utils/rdfdiff.c: Update to new raptor_term blank fields * src/raptor_statement.c: Initialize raptor_term length fields (raptor_new_term_from_literal, raptor_new_term_from_blank): init the fields. (raptor_term_equals): Use lengths as short cut for difference. * src/raptor.h, src/raptor_rdfxml.c, src/raptor_serialize_dot.c, src/raptor_serialize_html.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_turtle.c, src/raptor_statement.c, src/turtle_parser.y: raptor_term blank is now a new typedef raptor_term_blank_value with length field. Update all callers * src/raptor.h: raptor_term_literal_value gains string_len and language_len fields 2010-05-14 Dave Beckett * src/ntriples_parse.c, src/raptor_grddl.c, src/raptor_guess.c, src/raptor_namespace.c, src/raptor_option.c, src/raptor_parse.c, src/raptor_qname.c, src/raptor_rfc2396.c, src/raptor_rss.c, src/raptor_sax2.c, src/raptor_serialize_rss.c, src/raptor_serialize_turtle.c, src/raptor_set.c, src/raptor_stringbuffer.c, src/raptor_uri.c, src/raptor_www.c, src/raptor_www_curl.c, src/raptor_www_libxml.c, src/raptor_xml.c, src/turtle_lexer.l, src/turtle_parser.y: code style: Replace strncpy with memcpy - never need strncpy zero-checking/filling semantics. 2010-05-12 Dave Beckett * src/raptor_internal.h: Deleted raptor_unique_id prototype * src/raptor_abbrev.c: (raptor_unique_id): Deleted - never used. 2010-05-07 Dave Beckett * src/raptor.h: Adjust raptor_term_type so enum values match librdf_node_type raptor_term_type: Made enum values match librdf_node_type usage and introduce unused type '3'. 2010-05-05 Dave Beckett * LICENSE.html: Link to specific GPL 2.1 version doc. Wording and formatting 2010-05-04 Dave Beckett * docs/raptor-tutorial-parsing.xml: pkg-config * docs/raptor-tutorial-parsing.xml: statement not triples * docs/raptor-tutorial-querying-functionality.xml: Fix exampel of listing parser options to use correct description. * docs/raptor-tutorial-querying-functionality.xml: RAPTOR_OPTION_LAST * docs/raptor-1-to-2-map.tsv: Update raptor_locator_print and raptor_avltree_print signatures * docs/raptor-tutorial-parsing.xml, docs/raptor-tutorial-serializing.xml: Update tutorial references * docs/tmpl/section-avltree.sgml, docs/tmpl/section-locator.sgml: Update tmpls * src/raptor.h, src/raptor_avltree.c: (raptor_avltree_print): Gains an int return status like other print functions * src/raptor.h, src/raptor_locator.c: (raptor_locator_print): Gains an int return status like other print functions * src/raptor_avltree.c: autodocs * docs/tmpl/section-triples.sgml: Update tmpls for raptor_term_compare and raptor_term_equals * src/raptor.h: fix prototype for raptor_term_equals to match code * docs/raptor-1-to-2-map.tsv, docs/raptor-sections.txt: Add raptor_term_compare and raptor_term_equals to public API * src/raptor.h, src/raptor_internal.h: Move raptor_term_compare and raptor_term_equals to public API * src/raptor_statement.c: (raptor_term_equals): autodocs * src/raptor_parse.c: autodocs * docs/tmpl/section-triples.sgml: Remove RAPTOR_IDENTIFIER docs * docs/raptor-parsers.xml, docs/raptor-serializers.xml, docs/raptor-tutorial-intro.xml, docs/raptor-tutorial-parsing.xml, docs/raptor-tutorial-querying-functionality.xml, docs/raptor-tutorial-serializing.xml: Start to update tutorial - still working through WARNING * scripts/format-changes.pl, scripts/process-changes.pl: Update scripts 2010-05-03 Dave Beckett * scripts/process-changes.pl: Generate a perl script to rename names * scripts/process-changes.pl: put docbook xml format generation optional * scripts/process-changes.pl: Use Getopt::Long and Pod::Usage for proper option handling * docs/Makefile.am: Rename format-changes.pl to process-changes.pl * scripts/Makefile.am: Rename format-changes.pl to process-changes.pl * scripts/process-changes.pl: switch to file handle arg on print functions Rename option to --docbook-xml DOCBOOK-XML file rather than print to stdout * docs/raptor-1-to-2-map.tsv: add note for raptor_statement_v2 * docs/raptor-1-to-2-map.tsv: raptor_log is not a type * docs/raptor-1-to-2-map.tsv: # before names in notes * scripts/format-changes.pl: Make links to enum values 2010-05-03 Lauri Aalto * src/raptor_xml.c: fixed compiler warning * src/raptor_serialize_rdfxmla.c: #ws * src/turtle_parser.y: fixed casts for !RAPTOR_DEBUG 2010-05-02 Dave Beckett * utils/Makefile.am: fix rapper.html rule for scripts * docs/raptor-1-to-2-map.tsv: annotations for raptor_identifier to raptor_term renamings * docs/raptor-1-to-2-map.tsv: Add annotations for old raptor_www_ functions * docs/raptor-1-to-2-map.tsv: Add more annotations for old functions and types * src/raptor_iostream.c: (raptor_new_iostream_to_string): Rename arg to malloc_handler * docs/raptor-1-to-2-map.tsv: typo * docs/raptor-1-to-2-map.tsv: annotate former message handler typedefs * docs/raptor-1-to-2-map.tsv: annotate former URI handler _func typedefs * docs/raptor-1-to-2-map.tsv: raptor_log_message is new * docs/raptor-1-to-2-map.tsv, docs/raptor-sections.txt, docs/tmpl/section-avltree.sgml, docs/tmpl/section-general.sgml, docs/tmpl/section-www.sgml, src/raptor.h, src/raptor_abbrev.c, src/raptor_avltree.c, src/raptor_grddl.c, src/raptor_iostream.c, src/raptor_parse.c, src/raptor_rss_common.c, src/raptor_sequence.c, src/raptor_serialize.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_turtle.c, src/raptor_set.c, src/raptor_uri.c, src/raptor_www.c, src/turtle_parser.y: Renamed typedefs ending in _function to _handler. Also changed parameter names and internal field names from foo_fn to foo_handler to match. (raptor_data_free_handler, raptor_data_context_free_handler, raptor_data_context_print_handler and raptor_data_context_print_handler): Signature of these typedefs were changed to match the other handlers to became *pointers* to functions so e.g. a call with e.g.(raptor_data_context_free_handler*)blah becomes (raptor_data_context_free_handler)blah. raptor_data_compare_handler renamed from raptor_data_compare_function raptor_data_malloc_handler renamed from raptor_data_malloc_function raptor_data_free_handler renamed from raptor_data_free_function raptor_avltree_visit_handler renamed from raptor_avltree_visit_function Updated all definitions, fields and arguments to match. * scripts/.gitignore: ignore more * scripts/format-changes.pl: add change table titles * scripts/format-changes.pl: format types * src/raptor.h: autodocs * docs/tmpl/section-serializer.sgml: update tmpls * docs/raptor-1-to-2-map.tsv: Added raptor_serializer_flush * docs/raptor-sections.txt: add new functions * src/raptor.h: raptor_data_free_handler autodocs * docs/raptor-1-to-2-map.tsv: more things were added not removed * docs/raptor-1-to-2-map.tsv: more things were added not removed * docs/raptor-1-to-2-map.tsv: raptor_uri_source type was deleted not added. * docs/raptor-1-to-2-map.tsv: Add type changes * scripts/format-changes.pl: Ignore types for now 2010-04-30 Dave Beckett * src/raptor.h, src/raptor_serialize.c: (raptor_serializer_flush): Added * src/raptor_internal.h: raptor_serializer_factory_s gains serialize_flush factory method. * Makefile.am, configure.ac, docs/Makefile.am, docs/build-formats.c, docs/format-changes.pl, fix-groff-xhtml, scripts/Makefile.am, scripts/build-formats.c, scripts/fix-bison, scripts/fix-flex, scripts/fix-groff-xhtml, scripts/format-changes.pl, src/Makefile.am, src/fix-bison, src/fix-flex: Move scripts and utility programs into new scripts dir * docs/tmpl/section-general.sgml, docs/tmpl/section-iostream.sgml, docs/tmpl/section-www.sgml: Update tmpls * docs/raptor-sections.txt, docs/tmpl/section-iostream.sgml, docs/tmpl/section-unused.sgml, docs/tmpl/section-www.sgml, src/raptor.h, src/raptor_iostream.c, src/raptor_www.c: Add typedef raptor_data_malloc_function raptor_data_malloc_function: added for a malloc() signature function. (raptor_www_fetch_to_string, raptor_new_iostream_to_string): Use for argument malloc_handler. * docs/raptor-sections.txt: Remove internal raptor_avltree_check and raptor_avltree_dump * docs/tmpl/section-general.sgml, docs/tmpl/section-parser.sgml: Update tmpls * src/raptor.h, src/raptor_internal.h: Move raptor_avltree_dump and raptor_avltree_check debug prototypes to internal header * docs/raptor-sections.txt: Add raptor_graph_mark_flags, raptor_parser_parse_iostream, raptor_syntax_bitflags * docs/tmpl/section-option.sgml, docs/tmpl/section-parser.sgml, docs/tmpl/section-www.sgml, docs/tmpl/section-xml-namespace.sgml: Update tmpls 2010-04-29 Dave Beckett * src/raptor_serialize_rss.c: code style * src/raptor_serialize.c: code style * src/raptor_abbrev.c: code style * src/raptor_librdfa.c: code style * src/raptor_turtle_writer.c: Update to add RAPTOR_OPTION_STRICT to cases. 2010-04-28 Dave Beckett * docs/format-changes.pl: intro section * docs/raptor-1-to-2-map.tsv: More replacements Replace raptor_serializer_get_option_string with raptor_serializer_get_option Note replace raptor_iostream_write_string_turtle with raptor_string_python_write * docs/raptor-1-to-2-map.tsv: Add replacement note for delete raptor_set_parser_strict * docs/raptor-1-to-2-map.tsv: Remove raptor_world_enumerate_parsers with raptor_world_get_parser_description. * docs/raptor-sections.txt: update for graph_handler->graph_mark_handler renames * docs/raptor-sections.txt: Update functions for changes * docs/raptor-1-to-2-map.tsv: Update functions for 2010-03-26 to 2010-03-28 changes missed * docs/raptor-1-to-2-map.tsv: raptor_set_parser_strict removed * utils/rapper.1: Note -m/--mode removed but wasn't in the raptor V1 man page. * src/raptor_parse.c, utils/rapper.c: Replaced raptor_parser_set_strict() with RAPTOR_OPTION_STRICT (raptor_parser_set_strict): Removed from public API and made static, internal. (raptor_parser_set_option): When RAPTOR_OPTION_STRICT is seen, call above function to set the values. Update rapper to remove the -m/--mode lax/strict favouring the -f strict option with boolean value. * src/raptor.h, src/raptor_option.c: Add RAPTOR_OPTION_STRICT for parser with bool value * tests/rdfxml/Makefile.am: (check-scan-rdf): Use -f scanForRDF instead of removed option -s 2010-04-27 Dave Beckett * docs/build-formats.c: Fix use of wrong array index. Rewrite for clarity * utils/rapper.1: changes * utils/rapper.1: adjust date * utils/rapper.1: Remove -s / --scan * utils/rapper.c: Remove option --scan / -s since it's the same as -f scanForRDF 2010-04-25 Dave Beckett * src/raptor_librdfa.c: Set mime types for RDFA parser with higher Q than GRDDL parser * docs/build-formats.c: Add intro section and remove version from top. * docs/build-formats.c: Note when there is no parser or serializer for a mime type * src/raptor_serialize_html.c: Set html serializer Q 1.0 * src/raptor_serialize_json.c: Pick json resource serializer as json Q 1.0 choice * src/raptor_serialize_rdfxml.c: Make rdfxml serializer accept text/rdf with lower q * src/raptor_serialize_turtle.c: Make turtle serializer accept other turtle mime types with q < 10 * src/raptor_serialize_rss.c: Make RSS tag soup serializer accept other rss mime types with low q * src/raptor_rss.c: Make RSS tag soup parser accept application/atom+xml q=1.0 for atom. * docs/build-formats.c: Emit mime types index section 2010-04-24 Dave Beckett * src/raptor_avltree.c, src/raptor_general.c, src/raptor_iostream.c, src/raptor_namespace.c, src/raptor_option.c, src/raptor_parse.c, src/raptor_qname.c, src/raptor_sax2.c, src/raptor_sequence.c, src/raptor_serialize.c, src/raptor_statement.c, src/raptor_stringbuffer.c, src/raptor_turtle_writer.c, src/raptor_uri.c, src/raptor_xml.c, src/raptor_xml_writer.c: Make all raptor object destructors handle NULL object pointer. All raptor_free_CLASS() functions when given a NULL object now just return rather than a) crash or b) abort() * docs/.gitignore: ignore more * tests/turtle/Makefile.am: remove deprecated rapper -n when testing turtle parser with with ntriples test * docs/.gitignore: ignore more * tests/rdfxml/Makefile.am: check-assume-rdf does not need -a flag. * docs/tmpl/section-avltree.sgml, docs/tmpl/section-constants.sgml, docs/tmpl/section-general.sgml, docs/tmpl/section-iostream.sgml, docs/tmpl/section-locator.sgml, docs/tmpl/section-memory.sgml, docs/tmpl/section-option.sgml, docs/tmpl/section-parser.sgml, docs/tmpl/section-sax2.sgml, docs/tmpl/section-sequence.sgml, docs/tmpl/section-serializer.sgml, docs/tmpl/section-stringbuffer.sgml, docs/tmpl/section-triples.sgml, docs/tmpl/section-unicode.sgml, docs/tmpl/section-unused.sgml, docs/tmpl/section-uri.sgml, docs/tmpl/section-world.sgml, docs/tmpl/section-www.sgml, docs/tmpl/section-xml-namespace.sgml, docs/tmpl/section-xml-qname.sgml, docs/tmpl/section-xml.sgml: Update doc tmpls * docs/build-formats.c: init parsers/serializers count to 0 * docs/.gitignore, docs/rdfcat.c, docs/rdfprint.c, docs/rdfserialize.c: Remove rdf*.c example files from git; copied in by maintainer rule * examples/.gitignore: Update examples for raptor2 API * .gitignore: Do not ignore examples dir 2010-04-19 Dave Beckett * docs/build-formats.c: ws * docs/build-formats.c: tidy words * docs/build-formats.c: do not put a title on variablelist * docs/build-formats.c: optional desc list title * docs/raptor-docs.xml: Added raptor-formats.xml * docs/Makefile.am: Added raptor-formats.xml * docs/build-formats.c: now using raptor_iostream 2010-04-18 Dave Beckett * docs/build-formats.c: Helper to print raptor syntaxes into docbook xml 2010-04-17 Dave Beckett * utils/rapper.c: code style * utils/rapper.c: Remove unused -a flag. sort options strings alphabetically * utils/rapper.1: 2.0.0 * utils/rapper.c: Remove long deprecated -n flag to set syntax to ntriples * src/raptor_general.c, src/raptor_iostream.c, src/raptor_namespace.c, src/raptor_option.c, src/raptor_parse.c, src/raptor_qname.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_statement.c, src/raptor_turtle_writer.c, src/raptor_uri.c, src/raptor_www.c, src/raptor_xml.c, src/raptor_xml_writer.c: Make all constructors check for non-NULL args/world and call raptor_world_open() Adjusted some documentation to allow NULL args that weren't noted, such as raptor_new_turtle_writer() can take a NULL base_uri. * src/raptor.h: raptor_syntax_description docs * src/ntriples_parse.c, src/raptor.h, src/raptor_grddl.c, src/raptor_guess.c, src/raptor_librdfa.c, src/raptor_parse.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/turtle_parser.y: raptor_syntax_description need_base_uri now raptor_syntax_bitflags enum. (raptor_syntax_description): Change need_base_uri filed to a bitmask of bits defined in enum raptor_syntax_bitflags. Enables this structure to be used beyond parser and serializer formats. (raptor_syntax_bitflags): Added with RAPTOR_SYNTAX_NEED_BASE_URI flag. 2010-04-06 Lauri Aalto * src/raptor_guess.c: (raptor_guess_guess_get_description): Do not call raptor_parser_get_description() with NULL arg. * src/ntriples_parse.c, src/raptor.h, src/raptor_grddl.c, src/raptor_guess.c, src/raptor_librdfa.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_serialize_dot.c, src/raptor_serialize_html.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_turtle.c, src/turtle_parser.y: Removed writable static data. Changed *_names arrays to be const. Also fixed dimensions of *_names arrays to match number of elements. (raptor_syntax_description): Changed syntax names array to const to not lose const qualifiers in initialization/assignment. * src/raptor.h, src/raptor_parse.c, src/raptor_serialize.c: (raptor_world_get_parser_description, raptor_world_get_serializer_description): Removed const qualifier from pass-by-value args. * src/raptor_serialize.c: #ws 2010-04-01 Dave Beckett * src/raptor_serialize_html.c: code style 2010-04-01 Nicholas J Humfrey * ChangeLog: Updated ChangeLog to include new HTML Table serialiser. * configure.ac, src/Makefile.am, src/raptor_internal.h, src/raptor_serialize.c, src/raptor_serialize_html.c: Added HTML Table serialiser. 2010-03-31 Dave Beckett * src/raptor_serialize_ntriples.c: ntriples writes text/plain * utils/rapper.c: Use raptor_world_get_serializer_description() for serializer info. 2010-03-29 Dave Beckett * examples/raptor_abort.c, examples/rdfcat.c, examples/rdfprint.c, examples/rdfserialize.c: Update examples to raptor2 API * examples/Makefile.am: 2010 * configure.ac: package name is raptor2 makes things a little easier * Makefile.am: Do not toy with distdir * raptor2.spec.in: Update for raptor2 * raptor2.pc.in: link with -lraptor2 * tests/Makefile.am: Use libraptor2.la * raptor2.pc.in: adjust includedir to be prefixed by package name * utils/Makefile.am: Use libraptor2.la * src/Makefile.am: libraptor2.la * .gitignore, docs/.gitignore, src/.gitignore: Update git ignores * docs/tmpl/section-general.sgml, docs/tmpl/section-option.sgml, docs/tmpl/section-parser.sgml, docs/tmpl/section-serializer.sgml, docs/tmpl/section-triples.sgml, docs/tmpl/section-world.sgml, docs/tmpl/section-xml-namespace.sgml: update doc tmpls * Makefile.am, configure.ac, docs/Makefile.am, docs/libraptor.3, docs/libraptor2.3, raptor-src-config.in, raptor.pc.in, raptor.rdf.in, raptor.spec.in, raptor2.pc.in, raptor2.rdf.in, raptor2.spec.in, src/Makefile.am, src/raptor-config.1, src/raptor-config.in: Rename raptor to raptor2 2010-03-27 Dave Beckett * src/raptor.h, src/raptor_parse.c: Added raptor_parser_parse_iostream() to parse from an iostream * src/raptor_rss.c: (raptor_rss_emit): Implement emit graph marks for rss-tag-soup parser. * src/raptor_rdfxml.c: Implement emit graph marks for rdfxml parser. * src/raptor_librdfa.c: Implement emit graph marks for librdfa parser. * src/ntriples_parse.c: (raptor_ntriples_generate_statement): Tidy emit graph mark condition. * src/raptor_librdfa.c: ws * src/raptor_librdfa.c: (raptor_librdfa_generate_statement): Do nothing if there is no statement handler. * src/raptor_grddl.c: (raptor_grddl_parse_chunk): Implement graph marks for GRDDL parser. * src/raptor_grddl.c: (raptor_grddl_ensure_internal_parser): Disable graph marks for child parsers. * src/raptor_parse.c: (raptor_parser_start_graph, raptor_parser_end_graph): Use emit_graph_marks flag. * src/raptor_internal.h, src/raptor_parse.c: Add internal raptor_parser flag emit_graph_marks default set. * src/raptor_parse.c: save editor before commit! * src/raptor_internal.h, src/raptor_parse.c: (raptor_parser_copy_flags_state): Added to copy flags to/from parsers. * src/raptor_parse.c: (raptor_parser_copy_user_state): Copy failed, emitted_default_graph bit flags. * src/ntriples_parse.c: Implement graph marks for ntriples parser * src/turtle_common.h, src/turtle_parser.y: Switch to use raptor_parser emitted_default_graph field * src/raptor_internal.h: raptor_parser_s gains emitted_default_graph flag. * src/raptor.h, src/raptor_internal.h, src/raptor_parse.c, src/turtle_parser.y: Added raptor_parser_get_graph() and factory method (raptor_parser_get_graph): Added to get current graph for a parser. raptor_parser_factory: Added optional method get_graph. If missing this indicates that start/end graph marks need to be synthesised. (raptor_turtle_get_graph): Added to implement this for Turtle and TRiG parsers. * src/raptor.h, src/raptor_namespace.c, src/raptor_serialize_turtle.c, src/raptor_xml.c, src/raptor_xml_writer.c: Rename raptor_namespace_copy to raptor_namespace_stack_start_namespace (raptor_namespace_stack_start_namespace): Renamed from raptor_namespace_copy to follow conventions; this is not a copy constructor for the raptor_namespace class, it's a method on the raptor_namespace_stack class. Update all callers * src/raptor_qname.c: (raptor_qname_copy): Handle NULL qname arg. * src/turtle_common.h, src/turtle_parser.y, utils/rapper.c: Update Turtle and TRiG parsers to emit new graph marks * src/raptor.h, src/raptor_internal.h, src/raptor_parse.c: Updated graph mark handler mechanism in a stream of triples raptor_graph_mark_handler: Renamed from raptor_graph_handler since it returns not just a URI (or NULL for default graph) but flags that indicate if it was a start/end and whether the graph name was declared in the syntax or implicit by the stream of statements. raptor_graph_mark_flags: Added used above to record the start/end marks and declared/not. (raptor_parser_set_graph_mark_handler): Renamed from raptor_parser_set_graph_handler. raptor_parser: Renamed field to graph_mark_handler and changed type to match above. (raptor_parser_start_graph): Renamed from raptor_parser_set_graph_name and added is_declared flag. (raptor_parser_end_graph): Added. 2010-03-26 Dave Beckett * docs/tmpl/section-triples.sgml: doc * docs/raptor-sections.txt: fix name * docs/raptor-sections.txt, src/raptor.h: Add extra typedefs for union to help gtkdoc * src/raptor.h: autodocs * docs/raptor-sections.txt: Update sections with renames * docs/raptor-1-to-2-map.tsv: Update for serializer descriptions raptor_serializers_enumerate* replaced by raptor_world_get_serializer_description. Added raptor_serializer_get_description * src/Makefile.am, src/raptor_internal.h, src/raptor_serialize.c, src/raptor_serialize_simple.c: Remove obsolete 'simple' serializer' from sources that has not been enabled for a long time * src/raptor.h, src/raptor_internal.h, src/raptor_rss.c, src/raptor_serialize.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_simple.c, src/raptor_serialize_turtle.c, utils/rapper.c: Syntax description replaces serializer enumeration and get desc methods. (raptor_world_get_serializer_description): Renamed from raptor_world_enumerate_serializers and now just takes single int param. (raptor_serializer_get_description): Added Updated all serializers to register static descriptions of names, mime types, label, uris. Updated rapper utility to use raptor_serializer_get_description() for listing serializers. * src/raptor_parse.c: code style * docs/raptor-1-to-2-map.tsv: Update changes for parser descriptions raptor_get_label, raptor_get_mime_type, raptor_get_need_base_uri are deleted and use result fields from raptor_parser_get_description() * docs/raptor-1-to-2-map.tsv: Use raptor_world_get_parser_description to replace raptor_parsers_enumerate* * src/raptor_parse.c: autodocs * src/raptor.h, src/raptor_guess.c, src/raptor_internal.h, src/raptor_parse.c, utils/rapper.c: Syntax description replaces parser enumeration and get desc methods. (raptor_world_get_parser_description): Renamed from raptor_world_enumerate_parsers and now just takes single int param. (raptor_parser_get_label, raptor_parser_get_mime_type, raptor_parser_get_need_base_uri): Deleted; use raptor_world_get_parser_description() result fields instead. raptor_parser_factory gains an optional get_description factory method. (raptor_parser_get_name): Note this returns main name and point to raptor_parser_get_description() to get other names and info. (raptor_parser_get_description): Added to either use the factory method or else return the factory desc. (raptor_guess_guess_get_description): Updated guess parser to return internal description rather than that of 'guess'. Updated rapper utility to use raptor_parser_get_description() for listing parsers. * src/raptor.h: group public typedefs (code style) * src/ntriples_parse.c, src/raptor_grddl.c, src/raptor_guess.c, src/raptor_internal.h, src/raptor_librdfa.c, src/raptor_parse.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/turtle_parser.y: Use raptor_syntax_description inside raptor_parser_factory raptor_parser_factory loses fields about description replaced by a static raptor_syntax_description desc field. Updated all users to use factory->desc.FIELD rather than factory->FIELD for the descriptive fields. * src/raptor.h: Added raptor_type_q and raptor_syntax_description types to public API. * src/ntriples_parse.c, src/raptor_grddl.c, src/raptor_guess.c, src/raptor_librdfa.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/turtle_parser.y: Update parsers to register mime types count * src/raptor_parse.c: Check and use mime_types_count field. (raptor_world_register_parser_factory): Add maintainer/debug check of mime types count. (raptor_world_enumerate_parsers, raptor_parser_get_mime_type): Do not access mime types unless there is one. * src/raptor_internal.h: raptor_parser_factory gains mime_types_count field * src/raptor_internal.h, src/raptor_parse.c, src/turtle_parser.y: Remove raptor_parser_simple_error - only used once. (turtle_parser_error): Call raptor_log_error() direct. (raptor_parser_simple_error): Deleted. * src/raptor_parse.c: ws, code style 2010-03-25 Dave Beckett * src/ntriples_parse.c, src/raptor_grddl.c, src/raptor_guess.c, src/raptor_internal.h, src/raptor_librdfa.c, src/raptor_parse.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/turtle_parser.y: Alter parser registration to be more static and declarative. raptor_parser_factory: field name turns into C array of names. field mime_types turns into a C array of #raptor_type_q (raptor_free_parser_factory): Do not free data fields that are now static and shared. (raptor_world_register_parser_factory): Reduce args to just world plus factory handler. (raptor_parser_factory_add_alias, raptor_parser_factory_add_mime_type): Deleted (raptor_world_get_parser_factory, raptor_world_enumerate_parsers, raptor_parser_get_mime_type, raptor_world_guess_parser_name, raptor_parser_get_accept_header_all): Update to handle mime_types as array of #raptor_type_q Alter all parser registrations to pass in static data for names, mime_types, label and uri_string in factory registration function handler. * src/ntriples_parse.c, src/raptor_grddl.c, src/raptor_guess.c, src/raptor_internal.h, src/raptor_librdfa.c, src/raptor_parse.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/turtle_parser.y: (raptor_world_register_parser_factory): Renamed from raptor_parser_register_factory. 2010-03-24 Dave Beckett * src/raptor_internal.h: struct raptor_parser_factory_s: docs * src/raptor_parse.c: (raptor_parser_register_factory): autodocs 2010-03-23 Lauri Aalto * src/raptor_statement.c: (raptor_term_as_counted_string): Fixed warning about strict aliasing. 2010-03-23 Lauri Aalto * src/raptor_parse.c, src/raptor_serialize_turtle.c, src/strcasecmp.c: Fixed gcc4 warnings about using a char where an int is required 2010-03-21 Dave Beckett * docs/raptor-1-to-2-map.tsv, src/raptor.h, src/raptor_option.c: Remove raptor_option_get_value_type() - can use option description to get this and more details. 2010-03-20 Dave Beckett * src/raptor_parse.c: (raptor_new_parser): Set default options *after* initialising options block. * src/raptor_option.c: autodoc words * src/raptor_option.c: raptor_world_get_option_from_uri - autodocs * src/raptor_option.c: raptor_option_get_value_type - fix autodoc * src/raptor_general.c: Added turtle writer label to raptor_domain_labels * docs/raptor-sections.txt: Add raptor_option_description * src/raptor.h: raptor_option_description reformatting for autodocs * docs/raptor-1-to-2-map.tsv: add notes * docs/raptor-1-to-2-map.tsv: Added new raptor_option_description functions raptor_world_get_option_description and raptor_free_option_description * docs/raptor-sections.txt: Added raptor_free_option_description * docs/raptor-sections.txt: raptor_parser_get_option_count renamed to raptor_option_get_count * docs/raptor-1-to-2-map.tsv, docs/raptor-sections.txt: Update docs and API ref to remove options enumeration functions. * src/raptor.h, src/raptor_internal.h, src/raptor_option.c, src/raptor_parse.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Remove all raptor_world_enumerate_CLASS_options functions. (raptor_world_options_enumerate_common): Remove internal function no longer used. Update parser test code to use option descriptions for testing option URIs. Update autodocs to refer to raptor_world_get_option_description() for getting the valid option IDs. * src/raptor.h, src/raptor_option.c, utils/rapper.c: Added option description class to describe any domain option. typedef raptor_option_description added (raptor_world_get_option_description): Added, to create an option description object for a domain and option ID. (raptor_free_option_description): Added to free an option description. (raptor_option_get_option_area_for_domain): Added internal helper to map option IDs to area bits. Update rapper to use option description instead of options enumeration calls. * docs/raptor-1-to-2-map.tsv, src/raptor.h, src/raptor_option.c, utils/rapper.c: Rename raptor_parser_get_option_count() to raptor_option_get_count(). * src/raptor.h: Add RAPTOR_DOMAIN_TURTLE_WRITER 2010-03-18 Lauri Aalto * src/raptor.h, src/raptor_internal.h, src/raptor_option.c, src/raptor_parse.c, src/raptor_serialize.c: Changed raptor_*_set_option() to take in a const char* instead of char*. 2010-03-09 Dave Beckett * docs/raptor-1-to-2-map.tsv: code style * src/raptor.h: code style * docs/tmpl/section-parser.sgml, docs/tmpl/section-serializer.sgml, docs/tmpl/section-world.sgml, docs/tmpl/section-xml.sgml: Update doc tmpls * docs/raptor-1-to-2-map.tsv: Update raptor_xml_writer_set_feature/string new names * docs/raptor-1-to-2-map.tsv: Remove raptor_world_set_www_flags which was added in raptor2 * docs/raptor-sections.txt, src/raptor.h, src/raptor_general.c, src/raptor_www.c: (raptor_world_set_flag): Replaces raptor_world_set_www_flags with world flag RAPTOR_WORLD_FLAG_WWW_SKIP_INIT_FINISH * docs/raptor-sections.txt: Remove get/set option_string forms * docs/raptor-1-to-2-map.tsv: Update serializer and xml_writer get/set options to use just 1 function. * src/raptor_internal.h, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_sax2.c: Update sax2 set options (there is no get) to use generic code. (raptor_new_sax2): Init options structure. (raptor_free_sax2): Clear options structure. (raptor_sax2_set_option): Alter signature to use new format. This API is not yet public. Update code and callers to use the option access macros. * src/raptor_xml_writer.c: (raptor_new_xml_writer): Call raptor_object_options_init * src/raptor.h, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_xml_writer.c, utils/rapper.c: Update xml writer set/get option API to use generic code raptor_xml_writer_s: Add raptor_object_options field and delete flags, indent, xml_version, xml_declaration fields that are now managed by it. (raptor_new_xml_writer): Init options with raptor_object_options_init. Set defaults that are not 0 or NULL. (raptor_free_xml_writer): Use raptor_object_options_clear() to tidy up option strings. (raptor_xml_writer_set_option): Use raptor_object_options_set_option(). (raptor_xml_writer_set_option_string): Deleted, merged into above. (raptor_xml_writer_get_option): Use raptor_object_options_get_option(). (raptor_xml_writer_get_option_string): Deleted, merged into above. Update many references in xml_writer code to numeric and string options to use RAPTOR_OPTIONS_GET/SET_STRING/NUMERIC macros. Update callers of raptor_xml_writer_set_option() inside serializers to pass in NULL string arg. Update rapper utility to use new set_options style calls for parser and serializer. * src/raptor.h, src/raptor_internal.h, src/raptor_serialize.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_turtle.c: Update serializer set/get option API to use generic code raptor_serializer_s: Add raptor_object_options field and delete multiple option_* fields that are now managed by it. (raptor_new_serializer): Init options with raptor_object_options_init. Set defaults that are not 0 or NULL. (raptor_free_serializer): Use raptor_object_options_clear() to tidy up option strings. (raptor_serializer_set_option): Use raptor_object_options_set_option(). (raptor_serializer_set_option_string): Deleted, merged into above. (raptor_serializer_get_option): Use raptor_object_options_get_option(). (raptor_serializer_get_option_string): Deleted, merged into above. Update many references in serializers to numeric and string options to use RAPTOR_OPTIONS_GET/SET_STRING/NUMERIC macros. Some code tidying to break long lines. * docs/raptor-1-to-2-map.tsv: Update API docs for raptor_parser_set_option: args changed raptor_parser_set_option_string: deleted, use above raptor_parser_get_option: args changed raptor_parser_get_option_string: deleted, use above * src/raptor_parse.c: autodocs * src/raptor_option.c: autodocs * src/raptor.h, src/raptor_internal.h, src/raptor_parse.c: Update parser set/get option API to use generic code raptor_parser_s: loose cache_control and user_agent char* option fields that are now managed by the raptor_object_options. (raptor_free_parser): Use raptor_object_options_clear() to tidy up option strings. (raptor_parser_set_option): Use raptor_object_options_set_option(). (raptor_parser_set_option_string): Deleted, merged into above. (raptor_parser_get_option): Use raptor_object_options_get_option(). (raptor_parser_get_option_string): Deleted, merged into above. Update references to string options to use RAPTOR_OPTIONS_GET/SET_STRING macros. * src/raptor_internal.h, src/raptor_option.c: Move support for option get/set into generic code and handle strings. (raptor_object_options_copy_state): Copy strings when copying state. (raptor_object_options_init): Set integers / strings to 0 / NULL. (raptor_object_options_clear_state): Added to free strings. (raptor_object_options_get_option): Added to get any option for an option area. (raptor_object_options_set_option): Added to set any option for an option area. * src/raptor_internal.h, src/raptor_option.c, src/raptor_parse.c: Added raptor_object_options_init to initialise options object. (raptor_object_options_init): Added (raptor_new_parser): Call above to init parser's options block. * src/raptor_internal.h: Made raptor_object_options contain an array of union str/int values and area. raptor_object_options gains raptor_option_area area field and options is now an array of raptor_str_int (union of char*/int) Adjusted RAPTOR_OPTIONS_GET/SET_NUMERIC macros to use integer part of union. * src/raptor_internal.h, src/raptor_option.c, src/raptor_parse.c: Rename raptor_object_options_copy to raptor_object_options_copy_state since it is not a copy constructor (raptor_object_options_copy_state): Renamed from raptor_object_options_copy. * src/raptor_internal.h, src/raptor_option.c, src/raptor_parse.c: Add raptor_object_options_copy() for copying options state (raptor_object_options_copy): Added. (raptor_parser_copy_user_state): Use above. * src/raptor_grddl.c, src/raptor_internal.h, src/raptor_parse.c, src/raptor_rdfxml.c, src/raptor_rss.c: Move per-parser-project options into a raptor_object_options type. raptor_object_options typedef added. raptor_parser_s: use above rather than array of int. (RAPTOR_OPTIONS_GET_NUMERIC, RAPTOR_OPTIONS_SET_NUMERIC): Added and used by parsers. * src/raptor_statement.c: (raptor_term_as_counted_string): Use raptor_term_ntriples_write() Intended to address Issue#0000357 2010-03-08 Dave Beckett * docs/raptor-docs.xml, docs/tmpl/section-uri-factory.sgml: Remove remaining uri-factory files * src/raptor_general.c: (raptor_world_set_log_handler): Allow setting after world is open. * docs/tmpl/section-unused.sgml: Update doc tmpls * docs/raptor-1-to-2-map.tsv: raptor_new_iostream_from_handler is arg change. no notes * docs/raptor-1-to-2-map.tsv: raptor_uri_is_file_uri is just a rename * docs/format-changes.pl: tweak format_notes regexes * docs/raptor-1-to-2-map.tsv: more deprecation notes * docs/raptor-1-to-2-map.tsv: update raptor_new_identifier/_v2 notes * docs/raptor-1-to-2-map.tsv: raptor_syntax_name_check and raptor_syntax_name_check_v2 replaced by raptor_world_is_parser_name * docs/format-changes.pl: Make format_notes() take is_inline param * docs/format-changes.pl: remove # from formatted type name * docs/format-changes.pl: format notes * docs/format-changes.pl: format notes when present * docs/raptor-1-to-2-map.tsv: Add change notes field * docs/format-changes.pl: read notes field * docs/format-changes.pl: ignore comments 2010-03-08 Lauri Aalto * src/raptor_general.c: (raptor_world_set_flag): Set uri_interning to passed in value. 2010-03-07 Dave Beckett * docs/format-changes.pl: headers for changed * docs/format-changes.pl: adjust headers * docs/.gitignore, docs/Makefile.am, docs/format-changes.pl, docs/raptor-docs.xml: Add raptor changes formatting script format-changes.pl * docs/raptor-1-to-2-map.tsv, raptor-1-to-2-map.tsv: Move raptor-1-to-2-map.tsv to docs * raptor-1-to-2-map.tsv: move to 1 line TSV * raptor-1-to-2-map.tsv: raptor 1 to raptor 2 function API map * docs/raptor-sections.txt: Add RAPTOR_V2_AVAILABLE to sections. * docs/tmpl/section-unused.sgml, src/raptor_uri.c: fix docbook escapes for % in comments * src/raptor_uri.c: autodocs and docbook for uri-hex literals * src/raptor.h: autodocs for raptor_data_compare_function and raptor_data_free_function * src/raptor.h: autodocs for raptor_avltree, raptor_avltree_iterator and raptor_avltree_visit_function. * src/raptor_avltree.c: autodocs for raptor_avltree_print * src/raptor_unicode.c: autodocs and docbook for linking to urls with #s * src/raptor_xml.c: autodocs * src/raptor_statement.c: autodocs * docs/tmpl/section-avltree.sgml: Added avltree template * docs/tmpl/section-general.sgml, docs/tmpl/section-iostream.sgml, docs/tmpl/section-option.sgml, docs/tmpl/section-sequence.sgml, docs/tmpl/section-stringbuffer.sgml, docs/tmpl/section-triples.sgml, docs/tmpl/section-unicode.sgml, docs/tmpl/section-unused.sgml, docs/tmpl/section-uri.sgml, docs/tmpl/section-world.sgml, docs/tmpl/section-xml-namespace.sgml, docs/tmpl/section-xml-qname.sgml, docs/tmpl/section-xml.sgml: Updated sgml templates * docs/raptor-sections.txt: raptor_avltree_dump not raptor_avltree_debug * docs/raptor-sections.txt, src/raptor.h, src/raptor_avltree.c: Added enum raptor_avltree_bitflags for raptor_new_avltree() flags with docs. raptor_avltree_bitflags added with docs on flags. (raptor_new_avltree): Updated docs to point to above. * src/raptor.h, src/raptor_general.c, src/raptor_libxml.c: Rename raptor_world_flag enum values to remove plural FLAGS * src/raptor.h: autodocs * src/raptor_statement.c: autodocs * docs/raptor-sections.txt: autodocs * src/raptor_iostream.c: autodocs * src/raptor_locator.c: autodocs * src/raptor_avltree.c: autodocs * src/raptor.h: autodocs * src/raptor_namespace.c: autodocs * docs/raptor-sections.txt: more new names * src/raptor.h, src/raptor_general.c, src/raptor_internal.h, src/raptor_libxml.c, src/raptor_uri.c: Give raptor_world a flags mechanism for pre-open configuration raptor_world_flags: Replaces raptor_libxml_flags and is an enum not a bitmask. Add RAPTOR_WORLD_FLAGS_URI_INTERNING flag for disabling URI interning using an AVL-Tree. (raptor_world_set_libxslt_security_preferences, raptor_world_set_log_handler): Gains an int return value to report failure if world is already opened. (raptor_world_set_flag): Replaces raptor_world_set_libxml_flags and has both an enum flag, int value and int error return. Update libxml code looking for world->libxml_flags to use new enum names as bitmasks. * src/Makefile.am, src/raptor_general.c, src/raptor_log.c: Move raptor logging code to new raptor_log.c 2010-03-06 Dave Beckett * src/raptor_option.c: code style static int raptor_option_uri_prefix_len replaces #define RAPTOR_OPTION_URI_PREFIX_LEN * src/raptor_parse.c: autodocs * src/raptor.h, src/raptor_general.c: Added raptor_domain and add it to raptor_log_message structure 2010-03-02 Dave Beckett * src/raptor_general.c: Code style 2010-03-01 Dave Beckett * src/raptor.h, src/raptor_general.c, src/raptor_internal.h, utils/rapper.c, utils/rdfdiff.c: Added raptor_log_message for message callbacks. raptor_log_message: added struct raptor_log_handler function prototype now takes just user dat and message. raptor_world_s gains a static raptor_log_message for use in errors. No field here is reference counted. (raptor_log_error): Rename arg to text and init raptor_log_message structure in world object. Updated rapper and rdfdiff log handler functions to new signature. 2010-02-26 Dave Beckett * src/raptor.h, src/raptor_general.c: (raptor_log_level_get_label): Added * src/raptor.h: Move raptor_log_level earlier * src/turtle_parser.y: (graph): Do not free graph name twice for TRIG { } * src/raptor_general.c: 2010 2010-02-26 Lauri Aalto * src/raptor_statement.c: (raptor_term_compare): Allow NULL terms in comparison * src/raptor_statement.c: (raptor_new_statement_from_nodes): free passed in graph term on alloc failure * src/turtle_parser.y: (graph): No need to NULL something that's already NULL. * src/raptor.h: (raptor_statement): fixed docs * src/turtle_parser.y: (raptor_turtle_parse_terminate): Set graph_name to NULL after freeing to prevent a double free. 2010-02-25 Dave Beckett * src/turtle_common.h, src/turtle_parser.y: Generate graph name in raptor_statement object for TRIG syntax struct raptor_turtle_parser_s gains raptor_term* graph_name. Turtle parser: if trig is set, update graph_name field when { and } are parsed, in addition to the raptor_parser_set_graph_name() calls (raptor_turtle_parse_terminate): Free any existing graph name. (raptor_turtle_generate_statement): Set statement graph name for TRIG, free it if copied in. End early if there is no statement handler, no need to compute and free terms. * src/raptor_statement.c: (raptor_free_term): Return if term is nULL * src/raptor.h, src/raptor_internal.h, src/raptor_statement.c, src/turtle_parser.y: Added graph name to raptor_statement raptor_statement typedef gains an optional raptor_term* graph field for the graph name of the triple. (raptor_new_statement_from_nodes): Gains an optional graph argument. (raptor_statement_copy, raptor_free_statement, raptor_statement_print, raptor_statement_print_as_ntriples): Updated to use graph field if present. Updated raptor_new_statement_from_nodes() callers in turtle parser. 2010-02-23 Lauri Aalto * src/raptor_uri.c: (raptor_uri_finish): Set world->uris_tree to NULL after freeing * src/raptor_serialize_turtle.c: (raptor_turtle_serialize_init): Free rdf_type_uri, uri_term - already copied to other objects. 2010-02-22 Lauri Aalto * src/raptor_parse.c: (raptor_parser_factory_add_alias): Do not leak previously added aliases. FIXME: Discards previously added aliases. 2010-02-21 Dave Beckett * src/ntriples_parse.c, src/raptor.h, src/raptor_nfc_test.c, src/raptor_unicode.c, src/turtle_common.c: (raptor_unicode_utf8_string_put_char): renamed from raptor_unicode_string_put_char() * src/raptor.h, src/raptor_internal.h: Export raptor_term_copy to public API. * docs/raptor-sections.txt, src/ntriples_parse.c, src/raptor.h, src/raptor_internal.h, src/raptor_nfc.c, src/raptor_nfc_test.c, src/raptor_turtle_writer.c, src/raptor_unicode.c, src/raptor_xml.c, src/turtle_common.c: Define raptor_unicode_max_codepoint for magic number U+10FFFF 2010-02-18 Dave Beckett * src/ntriples_parse.c, src/raptor.h, src/raptor_nfc.c, src/raptor_nfc_test.c, src/raptor_turtle_writer.c, src/raptor_unicode.c, src/raptor_xml.c: (raptor_unicode_utf8_string_get_char): Renamed from raptor_unicode_decode_utf8_char() * src/raptor.h, src/raptor_nfc_test.c, src/raptor_unicode.c: (raptor_unicode_check_utf8_string): Renamed from raptor_utf8_check() * src/raptor_internal.h, src/raptor_rdfxml.c, src/raptor_unicode.c: (raptor_unicode_check_utf8_nfc_string): Renamed from raptor_utf8_is_nfc() Internal function rename. * src/ntriples_parse.c, src/raptor.h, src/raptor_nfc.c, src/raptor_nfc_test.c, src/raptor_turtle_writer.c, src/raptor_unicode.c, src/raptor_xml.c: (raptor_unicode_decode_utf8_char): Renamed from raptor_utf8_to_unicode_char() * src/Makefile.am, src/raptor_unicode.c, src/raptor_utf8.c: Renamed raptor_utf8.c to raptor_unicode.c * src/raptor.h, src/raptor_abbrev.c, src/raptor_avltree.c, src/raptor_serialize_json.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_turtle.c, src/raptor_set.c, src/raptor_uri.c: raptor_new_avltree() loses world arg. (raptor_new_avltree): Delete world arg that is unused and not necessary to tie an avltree to raptor world. * src/raptor.h, src/raptor_iostream.c, src/raptor_json_writer.c, src/raptor_namespace.c, src/raptor_qname.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_simple.c, src/raptor_turtle_writer.c, src/raptor_xml.c, src/raptor_xml_writer.c: Rename raptor_iostream write bytes/string method to raptor_iostream_TYPE_write form with iostream arg at end. (raptor_iostream_write_bytes, raptor_iostream_write_byte, raptor_iostream_read_bytes): Put iostream arg at end but don't move type, bytes are the lowest level iostream read/writing routines so use a different convention to writing 'types'. (raptor_iostream_string_write); Renamed from raptor_iostream_write_string(). (raptor_iostream_counted_string_write): Renamed from raptor_iostream_write_counted_string(). Update callers - lots of them! * src/raptor_iostream.c: (raptor_iostream_write_bytes): Move offset after a successful write. * src/raptor.h, src/raptor_iostream.c, src/raptor_json_writer.c, src/raptor_serialize_simple.c, src/raptor_turtle_writer.c, src/raptor_xml.c: Rename iostream writing methods to raptor_iostream_TYPE_write form. (raptor_iostream_decimal_write): Renamed from raptor_iostream_write_decimal() (raptor_iostream_hexadecimal_write): Renamed from raptor_iostream_format_hexadecimal() (raptor_stringbuffer_write): Renamed from raptor_iostream_write_stringbuffer() (raptor_uri_write): Renamed from raptor_iostream_write_uri() (raptor_xml_element_write): Renamed from raptor_iostream_write_xml_element() * src/raptor.h, src/raptor_abbrev.c, src/raptor_namespace.c, src/raptor_serialize_turtle.c, src/raptor_turtle_writer.c: Renamed raptor_namespaces_qname_from_uri() to raptor_new_qname_from_namespace_uri() * src/raptor.h, src/raptor_xml.c, src/raptor_xml_writer.c: Rename XML escaping utility functions to be consistent (raptor_xml_escape_string_any): Renamed from raptor_xml_any_escape_string() (raptor_xml_escape_string_any_write): Renamed from raptor_xml_any_escaped_string_write() (raptor_xml_escape_string_write): Renamed from raptor_xml_escaped_string_write() 2010-02-18 Lauri Aalto * src/raptor_internal.h, src/raptor_sax2.c: (raptor_sax2_init,raptor_sax2_finish,raptor_world_s): Removed sax2_initialized flag as no longer necessary. * utils/rdfdiff.c: raptor_parse_uri() -> raptor_parser_parse_uri() 2010-02-17 Dave Beckett * docs/raptor-sections.txt, docs/tmpl/section-general.sgml, docs/tmpl/section-iostream.sgml, docs/tmpl/section-locator.sgml, docs/tmpl/section-option.sgml, docs/tmpl/section-parser.sgml, docs/tmpl/section-serializer.sgml, docs/tmpl/section-triples.sgml, docs/tmpl/section-uri.sgml, docs/tmpl/section-world.sgml, docs/tmpl/section-www.sgml, docs/tmpl/section-xml-namespace.sgml, docs/tmpl/section-xml-qname.sgml, docs/tmpl/section-xml.sgml: update doc templates and sections for function renames * src/raptor.h, src/raptor_serialize.c, src/raptor_serialize_rss.c, utils/rapper.c: Rename serializer methods to match raptor_CLASS_METHOD convention (raptor_serializer_serialize_end): Renamed from raptor_serialize_end(). (raptor_serializer_set_namespace): Renamed from raptor_serialize_set_namespace(). (raptor_serializer_set_namespace_from_namespace): Renamed from raptor_serialize_set_namespace_from_namespace(). (raptor_serializer_start_to_file_handle): Renamed from raptor_serialize_start_to_file_handle(). (raptor_serializer_start_to_filename): Renamed from raptor_serialize_start_to_filename(). (raptor_serializer_start_to_iostream): Renamed from raptor_serialize_start_to_iostream(). (raptor_serializer_start_to_string): Renamed from raptor_serialize_start_to_string(). (raptor_serializer_serialize_statement): Renamed from raptor_serialize_statement(). Updated callers * src/raptor.h, src/raptor_grddl.c, src/raptor_internal.h, src/raptor_parse.c, utils/rapper.c: Rename parse methods to match raptor_CLASS_METHOD convention (raptor_parser_parse_file_stream): Renamed from raptor_parse_file_stream() (raptor_parser_parse_file): Renamed from raptor_parse_file() (raptor_parser_parse_uri): Renamed from raptor_parser_uri() (raptor_parser_parse_uri_with_connection): Renamed from raptor_parse_uri_with_connection() * utils/rapper.c: Update call to raptor_namespaces_format * src/raptor.h, src/raptor_namespace.c, src/raptor_xml.c, src/raptor_xml_writer.c, utils/rapper.c: Rename namespace methods to match raptor_CLASS_METHOD convention (raptor_namespace_format_as_xml): Renamed from raptor_namespaces_format() (raptor_xml_namespace_string_parse): Renamed from raptor_new_namespace_parts_from_string() since it is not a constructor for anything. Tidied docs and code. Updated callers. * src/raptor.h, src/raptor_www.c: (raptor_world_set_www_flags): Renamed from raptor_www_no_www_library_init_finish() and gains flags arg. * src/raptor_abbrev.c, src/raptor_internal.h, src/raptor_statement.c: raptor_term_print_as_ntriples() now uses raptor_term_ntriples_write() (raptor_term_print_as_ntriples): Put handle at end like other FILE* print methods. Update callers * src/raptor.h, src/raptor_general.c: Remove raptor_print_ntriples_string() debug function * src/raptor.h, src/raptor_serialize_ntriples.c: Give raptor_term_ntriples_write() and raptor_statement_ntriples_write() a return value * src/raptor.h, src/raptor_json_writer.c, src/raptor_namespace.c, src/raptor_qname.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_turtle_writer.c, src/raptor_xml.c, src/raptor_xml_writer.c: Rename write to iostream methods of class to follow raptor_CLASS_write() form (raptor_term_ntriples_write): Renamed from raptor_iostream_write_term_ntriples() and moved iostream to last arg. (raptor_xml_any_escaped_string_write): Renamed from raptor_iostream_write_xml_any_escaped_string() and moved iostream to last arg. (raptor_xml_escaped_string_write): Renamed from raptor_iostream_write_xml_escaped_string() and moved iostream to last arg. (raptor_qname_write): Renamed from raptor_iostream_write_qname() and moved iostream to last arg. (raptor_namespace_write): Renamed from raptor_iostream_write_namespace() and moved iostream to last arg. (raptor_string_ntriples_write): Renamed from raptor_iostream_write_string_ntriples() and moved iostream to last arg. (raptor_string_python_write): Renamed from raptor_iostream_write_string_python() and moved iostream to last arg. * src/raptor.h, src/raptor_internal.h, src/raptor_www.c: Move raptor_www_init and raptor_www_finish to internal API. * src/raptor_parse.c: Define ACCEPT_HEADER_LEN since this has been a crash bug twice. * src/ntriples_parse.c: (raptor_ntriples_generate_statement): Let datatype URI be freed after making literal term. * src/raptor_parse.c: (raptor_parser_get_accept_header): strncpy 9 * src/ntriples_parse.c: Use raptor_free_statement() to clear static statement. * src/raptor_statement.c: (raptor_free_statement): use if(dynamic...) * src/raptor_statement.c: (raptor_free_statement): NULL triple part pointers after free terms. * src/ntriples_parse.c: (raptor_ntriples_parse_init): Init static statement. 2010-02-16 Dave Beckett * src/raptor_www_test.c: test fix for www * src/raptor.h, src/raptor_grddl.c, src/raptor_parse.c, src/raptor_www.c, src/raptor_www_test.c: Rename raptor_www constructor / destructor to standard names (raptor_new_www): Renamed from raptor_www_new (raptor_new_www_with_connection): Renamed from raptor_www_new_with_commection (raptor_free_www): Renamed from raptor_www_free Update all callers. 2010-02-16 Lauri Aalto * src/raptor_statement.c: (raptor_free_statement): Free terms contained in statically allocated statements. * src/raptor_iostream.c: raptor_iostream write_bytes handlers are supposed to return the number of bytes written or 0 on failure * src/raptor.h, src/raptor_uri.c: (raptor_uri_get_world): Added new API helper function. Needed to prevent API breakage in librdf_uri. * src/raptor_serialize_rss.c: (raptor_rss10_serialize_statement): Fixed compilation with RAPTOR_DEBUG > 1. * src/turtle_parser.y: Replaced raptor_term_print() calls with raptor_term_print_as_ntriples() to compile with RAPTOR_DEBUG > 1. 2010-02-14 Dave Beckett * docs/tmpl/section-iostream.sgml, docs/tmpl/section-locator.sgml, docs/tmpl/section-option.sgml, docs/tmpl/section-parser.sgml, docs/tmpl/section-sequence.sgml, docs/tmpl/section-serializer.sgml, docs/tmpl/section-world.sgml, docs/tmpl/section-xml.sgml: Update generated docs * README.html: GIT * src/raptor_parse.c: (raptor_parser_get_accept_header): Static accept header should be 9 when string is correct. 2010-02-12 Lauri Aalto * src/raptor.h: Reintroduced RAPTOR_V2_AVAILABLE flag so that library users can support both raptor1 and raptor2. 2010-02-11 Lauri Aalto * src/raptor.h, src/raptor_internal.h: Pulled raptor_statement_init(), raptor_free_statement() to public API. 2010-02-10 Lauri Aalto * src/raptor.h, src/raptor_internal.h, src/raptor_statement.c: Pulled raptor_new_term_from_{uri,literal,blank}(), raptor_free_term() to public API. Added API documentation. 2010-02-09 Lauri Aalto * src/raptor_option.c: Fixed warnings about enum-int mismatches. 2010-02-05 Lauri Aalto * src/raptor_rss.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_serialize_json.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_turtle.c, src/raptor_set.c, src/raptor_uri.c, src/raptor_xml.c, src/raptor_xml_writer.c: indent + whitespace * src/raptor_rdfxml.c: Made daml_namespace_uri_string_len const. Does not need to be initialised data. * src/raptor_iostream.c: (raptor_iostream_write_end): Return success (0) if iostream handler does not implement write_end. Was returning an uninitialized value (most likely non-0). * src/fix-bison, src/turtle_parser.y: Removed fix-bison/yydestruct hack to pass in YYPARAM* to %destructors. Was required for raptor_uri cleanup before raptor_uri became a struct containting raptor_world*. * src/raptor_www.c: (raptor_www_init,raptor_www_finish): Pulled functionality from similar _common functions (removed, no longer a need to share functionality). * src/raptor_serialize_rdfxmla.c: Remove accidental formatting whitespace from string literal. * src/raptor_rfc2396.c: Fixed code formatter artifact in comment URL. * src/raptor.h: Fixed typo in comment. 2010-02-06 Dave Beckett * tests/turtle/Makefile.am: Add check-warn-rdf to check-local * tests/turtle/Makefile.am: Move test-35 to TEST_WARN_FILES * src/raptor_statement.c: (raptor_new_term_from_literal): Remove language used with typed literal and generate warning * src/turtle_parser.y: Fix warning message * src/turtle_parser.y: Remove language used with typed literal and generate warning * tests/turtle/Makefile.am, tests/turtle/test-35.out, tests/turtle/test-35.ttl: Add turtle test 35 to ensure language is removed when datatype is present 2010-02-05 Dave Beckett * docs/raptor-sections.txt: some more fn renames * docs/raptor-docs.xml: rename section-feature.xml to section.option.xml * src/raptor_parse.c: (main): need program even when not debugging * docs/raptor-sections.txt, docs/tmpl/section-feature.sgml, docs/tmpl/section-option.sgml: Rename feature to option - tutorial docs not updated * utils/rapper.c: Use raptor_option_get_value_type_label to print option types * src/raptor.h, src/raptor_option.c: (raptor_option_get_value_type_label): Added * src/raptor_option.c: Update option descriptions to give specific instance names. * utils/rapper.c: feature->option in API calls except leave -f/--feature alone * src/raptor_internal.h, src/raptor_option.c: Renamed raptor_options_enumerate_common to raptor_world_options_enumerate_common * src/raptor_uri.c: (main): Make test code less verbose except when very debuggy. * src/raptor_rfc2396.c: (main): Make test code less verbose except when very debuggy. * src/raptor_www_test.c: (main): Make test code less verbose except when very debuggy. * src/raptor_sequence.c: (main): Make test code less verbose except when very debuggy. * src/raptor_iostream.c: (main): Make test code less verbose except when very debuggy. * src/raptor_stringbuffer.c: (main): Make test code less verbose except when very debuggy. * src/raptor_parse.c: (main): Make test code less verbose except when very debuggy. * src/raptor_option.c: Restore old feature URI prefix * src/Makefile.am, src/raptor.h, src/raptor_feature.c, src/raptor_grddl.c, src/raptor_internal.h, src/raptor_option.c, src/raptor_parse.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_turtle.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Rename feature to option * src/raptor_feature.c, src/raptor_parse.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Move raptor_world_enumerate_*_features functions to raptor_feature.c * src/raptor_serialize.c: #autodocs * src/raptor_feature.c, src/raptor_internal.h, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Replace raptor_feature_get_areas with raptor_feature_is_valid_for_area (raptor_feature_get_areas): Deleted. (raptor_feature_is_valid_for_area): Added to check if a feature is valid for a given area; this all the calls to raptor_feature_get_areas() ever was used for. * src/raptor_xml_writer.c: Check for valid xml writer features before getting or setting them. (raptor_xml_writer_set_feature, raptor_xml_writer_set_feature_string, raptor_xml_writer_get_feature, raptor_xml_writer_get_feature_string): Use raptor_feature_get_areas() to check the features are valid. * src/raptor_internal.h, src/raptor_turtle_writer.c: Check for valid turtle writer features before setting them. (raptor_world_enumerate_turtle_writer_features): Renamed from raptor_turtle_writer_features_enumerate() (raptor_turtle_writer_set_feature, raptor_turtle_writer_set_feature_string): Use raptor_feature_get_areas() * src/raptor_serialize.c: Check for valid serializer features before getting them (raptor_serializer_get_feature, raptor_serializer_get_feature_string): Use raptor_feature_get_areas() to check for valid serializer features. * src/raptor.h, src/raptor_feature.c, src/raptor_internal.h, src/raptor_parse.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Remove unused RAPTOR_FEATURE_START_URI * src/raptor_serialize.c: Check for valid serializer features before setting them (raptor_serializer_set_feature, raptor_serializer_set_feature_string): Use raptor_feature_get_areas() to check for valid serializer features. * src/raptor.h, src/raptor_sax2.c: Added raptor_world_enumerate_sax2_features() * src/raptor_sax2.c: Check for valid features before setting them (raptor_sax2_set_feature): Check for a feature that applies using raptor_feature_get_areas() then set the values. * src/raptor_feature.c, src/raptor_internal.h: Added raptor_feature_get_areas() * src/raptor_internal.h: Add RAPTOR_FEATURE_AREA_NONE * src/raptor_feature.c, src/raptor_internal.h: Added RAPTOR_FEATURE_AREA_SAX2 for raptor_sax2 features raptor_feature_area gains RAPTOR_FEATURE_AREA_SAX2 raptor_features_list: Use RAPTOR_FEATURE_AREA_SAX2 for RAPTOR_FEATURE_NORMALIZE_LANGUAGE and RAPTOR_FEATURE_NO_NET. * src/raptor.h, src/raptor_feature.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Reapply: Remove RAPTOR_FEATURE_ASSUME_IS_RDF - obsolete since 2003 Reapply GIT d7b9a598372cf1630dad79943ecd262427240719 raptor_feature enum loses RAPTOR_FEATURE_ASSUME_IS_RDF (raptor_parser_set_feature, raptor_parser_get_feature): Remove check for RAPTOR_FEATURE_ASSUME_IS_RDF. Remove all case RAPTOR_FEATURE_ASSUME_IS_RDF: * ChangeLog, src/raptor.h, src/raptor_feature.c, src/raptor_internal.h, src/raptor_parse.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Revert the commits that removed the switch()s around features Reverts commits 60c814c462961b42e3e54dde1a4fb31bb274b2a8 c0db820178c7b4df4d22d7b2e9bbbfb808e21ad4 8834cdc5fe3b9191b999dd1fb438912d19335771 aaa15968153874b15cd084301fc9d01e625503c2 961f3225876929de7aa111b14bfa2470f1738175 791de39082f36e449f586021797e768b798bb4f3 24d277a1a920c393dd905be063784153f7ea6b00 30737c28676891e0602bd2f39c7fe4d2ad56ed03 85f3d2a285238f4dae1f3a344387be7e71afeb50 65f264148fcb4fba792dea2fe40c079ffaa2af0a 33df189465408c1a877a2a8b8ce6ad03c17e3f32 c9baae1679a55ac10b3bd91303679c7974c10335 bf43e7b8a12818742420c7fd860629a10d9584f8 6355375feca96d6dcc2be74f9dd3422f30ff48a6 faa08164fcbd21a390633adfc75ee56595b73857 d7b9a598372cf1630dad79943ecd262427240719 6c28294c30f870f8a26c985af412477cafc4cba9 2010-02-04 Dave Beckett * src/raptor_xml_writer.c: code style * src/raptor_xml_writer.c: (raptor_xml_writer_get_feature, raptor_xml_writer_set_feature): Use raptor_feature_get_areas() to check for valid xml writer features. * src/raptor_turtle_writer.c: (raptor_turtle_writer_get_feature): Use raptor_feature_get_areas() to check for valid turtle writer features. * src/raptor_internal.h, src/raptor_turtle_writer.c: Set turtle writer features using feature data tables (raptor_turtle_writer_set_feature): Use raptor_feature_get_areas. (raptor_world_enumerate_turtle_writer_features): Renamed from raptor_turtle_writer_features_enumerate() * src/raptor_serialize.c: Make raptor_serializer_get_feature and raptor_serializer_get_feature_string use area and numeric checks to remove cases (raptor_serializer_set_feature_string): docs. (raptor_serializer_get_feature, raptor_serializer_get_feature_string): Use raptor_feature_get_areas() and raptor_feature_value_is_numeric() to validate features for serializers. * src/raptor.h, src/raptor_feature.c, src/raptor_internal.h, src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Remove unused RAPTOR_FEATURE_START_URI * src/raptor_serialize.c: (raptor_serializer_set_feature_string): Use raptor_feature_get_areas() to check for valid serializer features. * src/raptor_serialize.c: (raptor_serializer_set_feature): Use raptor_feature_get_areas() to check for valid serializer features. * src/raptor_sax2.c: (raptor_sax2_set_feature): use bit & * src/raptor.h, src/raptor_sax2.c: Added raptor_world_enumerate_sax2_features() * src/raptor_sax2.c: Make raptor_sax2_set_feature smaller using raptor_feature_get_areas (raptor_sax2_set_feature): Check for a feature that applies using raptor_feature_get_areas() then set the values. * src/raptor_feature.c, src/raptor_internal.h: Added raptor_feature_get_areas() * src/raptor_internal.h: Add RAPTOR_FEATURE_AREA_NONE * src/raptor_feature.c, src/raptor_internal.h: Added RAPTOR_FEATURE_AREA_SAX2 for raptor_sax2 features raptor_feature_area gains RAPTOR_FEATURE_AREA_SAX2 raptor_features_list: Use RAPTOR_FEATURE_AREA_SAX2 for RAPTOR_FEATURE_NORMALIZE_LANGUAGE and RAPTOR_FEATURE_NO_NET. * src/raptor.h, src/raptor_feature.c, src/raptor_parse.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Remove RAPTOR_FEATURE_ASSUME_IS_RDF - obsolete since 2003 raptor_feature enum loses RAPTOR_FEATURE_ASSUME_IS_RDF (raptor_parser_set_feature, raptor_parser_get_feature): Remove check for RAPTOR_FEATURE_ASSUME_IS_RDF. Remove all case RAPTOR_FEATURE_ASSUME_IS_RDF: * src/raptor_parse.c: Use raptor_feature_value_is_numeric() in get/set parser features (raptor_parser_set_feature, raptor_parser_get_feature): Use raptor_feature_value_is_numeric rather than huge cases with very similar checks. * src/turtle_parser.y: Remove obsolete raptor_init() raptor_finish() calls * utils/rapper.c: Update for feature type api * src/raptor_feature.c, src/raptor_internal.h, src/raptor_parse.c, src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Added raptor_feature_value_is_numeric for internal use. (raptor_feature_value_is_numeric): Added. Replaced most uses of same pattern: int value_is_string = (raptor_feature_get_value_type(feature) == RAPTOR_FEATURE_VALUE_TYPE_STRING); if(!value_is_string) ... with a raptor_feature_value_is_numeric() call. * src/raptor.h, src/raptor_feature.c, src/raptor_internal.h, src/raptor_parse.c, src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Add raptor_feature_value_type enum and use for features raptor_features_list gains a raptor_feature_value_type value_type field and uses enum values in data. raptor_feature_area gains RAPTOR_FEATURE_AREA_TURTLE_WRITER since XML writer features don't all apply; just indenting ones. typedef raptor_feature_value_type added to public API (raptor_feature_get_value_type): Renamed from raptor_feature_value_type to return raptor_feature_value_type and updated callers. * src/raptor_feature.c: #ws * src/raptor_feature.c: Use raptor_feature_area to split raptor_features_list area / value type. raptor_features_list flags field is split into area and value_type. Use raptor_features_list enum values in data. (raptor_features_enumerate_common): Get features for an area. (raptor_feature_value_type): Use VT_STRING define. * src/raptor_feature.c, src/raptor_internal.h, src/raptor_parse.c, src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Added raptor_feature_area enum for raptor_features_enumerate_common() raptor_feature_area added internally. (raptor_features_enumerate_common): Switch flags arg to use enum. Update callers. * src/raptor_parse.c: #autodocs * src/raptor_feature.c: Turn feature flag magic numbers into defines * src/raptor_feature.c: Add feature flag 32 for features with URI-string values raptor_features_list: Split the flags into their bits and set RAPTOR_FEATURE_START_URI and RAPTOR_FEATURE_ATOM_ENTRY_URI to have URI string value. 2010-02-03 Dave Beckett * docs/.gitignore: Ignore bak files * docs/tmpl/section-general.sgml, docs/tmpl/section-locator.sgml, docs/tmpl/section-sequence.sgml, docs/tmpl/section-uri.sgml: Update docbook tmpls * src/raptor_sequence.c: code style * src/raptor_sequence.c: Use RAPTOR_SEQUENCE_MIN_CAPACITY to declare magic number * src/raptor_sequence.c: #autodocs * src/raptor.h, src/raptor_sequence.c: Make raptor_sequence_sort take raptor_data_compare_function typedef (raptor_sequence_sort): Adjusted parameters to use raptor_data_compare_function. It's the same parameter type but now via a typedef. * src/raptor.h, src/raptor_iostream.c: iostream write_end now returns a status code typedef raptor_iostream_write_end_func returns an int (raptor_iostream_write_end): Returns an int. (raptor_filename_iostream_write_end): Update file write handlers to return fclose value. * src/raptor.h, src/raptor_iostream.c: Rename raptor_iostream_handler2 to raptor_iostream_handler typedef raptor_iostream_handler: renamed from raptor_iostream_handler2 Update all callers and rename parameters and variables from handler2 to handler. (raptor_new_iostream_from_handler): Renamed from raptor_new_iostream_from_handler2. * src/ntriples_parse.c: Remove support for xml"..." N-Triples literals, long obsolete. * tests/ntriples/Makefile.am, tests/ntriples/bad-07.nt: Add bad07.nt to test literal form xml"..." is refused * .gitignore: do not ignore rdf files * src/raptor.h, src/raptor_sequence.c: Remove raptor_sequence_print_string from public API (raptor_sequence_print_string): Moved to static and used for test only. * src/raptor.h, src/raptor_sequence.c: Remove raptor_compare_strings from public API (raptor_compare_strings): Moved to static and used for test only. * src/raptor_abbrev.c, src/raptor_internal.h, src/raptor_rdfxml.c, src/raptor_serialize_dot.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_statement.c, src/turtle_parser.y: Rename raptor_new_term_from_term to raptor_term_copy (raptor_term_copy): Renamed from raptor_new_term_from_term Updated all callers with new name. All copy constructors should be raptor_CLASS_copy now. 2010-01-30 Dave Beckett * src/raptor.h: Reorder prototypes to group class and methods. * src/raptor.h: #ws * src/raptor.h, src/raptor_locator.c: Renamed raptor_format_locator to raptor_locator_format * src/raptor.h, src/raptor_general.c, src/raptor_locator.c, utils/rapper.c, utils/rdfdiff.c: raptor_print_locator renamed to raptor_locator_print * src/raptor.h: Reorder and group by class. * src/raptor_avltree.c, src/raptor_internal.h: Remove legacy raptor_avltree cursor functions raptor_avltree loses cursor_iterator field. (raptor_avltree_cursor_first, raptor_avltree_cursor_last, raptor_avltree_cursor_prev, raptor_avltree_cursor_next, raptor_avltree_cursor_get): Deleted * src/raptor_avltree.c: code style - whitespace, line breaks * src/raptor.h, src/raptor_avltree.c: Rename raptor_avltree_iterator_end to raptor_avltree_iterator_is_end * src/raptor_avltree.c, src/raptor_internal.h: Move raptor_avltree_s internals into raptor_avltree.c module. * src/raptor_abbrev.c: Use term->world to save knowing internals of raptor_avltree. * docs/raptor-docs.xml, docs/raptor-sections.txt, src/raptor.h, src/raptor_avltree.c, src/raptor_internal.h: Move raptor_avltree to public API. Public opaque typedefs: raptor_avltree and raptor_avltree_iterator Public function typedefs: raptor_data_compare_function, raptor_data_free_function and raptor_avltree_visit_function Public functions: raptor_new_avltree, raptor_free_avltree, raptor_avltree_add, raptor_avltree_delete, raptor_avltree_print, raptor_avltree_remove, raptor_avltree_search, raptor_avltree_set_print_handler, raptor_avltree_size, raptor_avltree_visit, raptor_new_avltree_iterator, raptor_free_avltree_iterator, raptor_avltree_iterator_end, raptor_avltree_iterator_get and raptor_avltree_iterator_next NOTE: These were not made public and seem to be internal/unused: raptor_avltree_cursor_first, raptor_avltree_cursor_last, raptor_avltree_cursor_prev, raptor_avltree_cursor_next and raptor_avltree_cursor_get * docs/raptor-docs.xml: 2010 * NEWS.html, RELEASE.html: Merge 1.4.21 news and release notes * ChangeLog, ChangeLog.9, Makefile.am: ChangeLog.9 for 2008 * .gitignore: Do not ignore ChangeLog* * utils/rapper.c, utils/rdfdiff.c: Update raptor_print_locator calling convention 2010-01-29 Dave Beckett * src/raptor_serialize_turtle.c: Ensure serialized Turtle names are legal (raptor_turtle_is_legal_turtle_qname): Added to enforce prefix and local name character constraints. (raptor_turtle_emit_resource): Use above to ensure that XML Qnames that are not legal Turtle Qnames are never serialized. Fixes Issue#0000337 http://bugs.librdf.org/mantis/view.php?id=337 * tests/turtle/Makefile.am, tests/turtle/test-34-out.ttl, tests/turtle/test-34.ttl: Add Turtle serializing test 34 for not serializing a qname with a . Test for Issue#0000337 http://bugs.librdf.org/mantis/view.php?id=337 2010-01-28 Dave Beckett * src/raptor_rdfxml.c: Create a new set for checking for duplicate rdf:ID at start of every parse. (raptor_rdfxml_parse_init): Remove creating set from when parser is constructed. (raptor_rdfxml_parse_start): At start of parsing, delete any existing id set and only create a new one if the feature RAPTOR_FEATURE_CHECK_RDF_ID is enabled. * src/turtle_lexer.l: Alter Turtle lexer to refuse to accept . in namespace prefix/local names Adjust Turtle lexer to match spec for the prefixName and name tokens: http://www.w3.org/TeamSubmission/2008/SUBM-turtle-20080114/#prefixName http://www.w3.org/TeamSubmission/2008/SUBM-turtle-20080114/#name This makes some previously accepted not-to-spec turtle documents be rejected. It makes new bad turtle syntax tests bad-21 and bad-22 pass. (NCNAME_PREFIX): Updated for prefixName (NCNAME): Update for name Fixes Issue#0000326 http://bugs.librdf.org/mantis/view.php?id=326 * tests/turtle/Makefile.am, tests/turtle/bad-21.ttl, tests/turtle/bad-22.ttl: Add bad turtle tests 21, 22 for . in prefix and qname * src/ntriples_parse.c: Make ntriples parser accept text/plain with q=0.1 (raptor_ntriples_parser_register_factory): Register mime type text/plain via raptor_parser_factory_add_mime_type. Fixes Issue#0000319 http://bugs.librdf.org/mantis/view.php?id=319 * src/turtle_lexer.l: Make Turtle lexer handle \\ at end of triple-quoted literals Alter literal regex and let raptor_stringbuffer_append_turtle_string report problems with buffer ending in middle of \u and \U. Add rule for bare \ on it's own which can only happen if input ends on a \. Fixes Issue#0000318 http://bugs.librdf.org/mantis/view.php?id=318 * tests/turtle/Makefile.am, tests/turtle/bad-20.ttl: Add bad-20.ttl test for end of file in middle of \ escape * tests/turtle/Makefile.am, tests/turtle/test-33.out, tests/turtle/test-33.ttl: Added test-33 for \\ at end of triple-quoted turtle literal Added tests/turtle/test-33.ttl and tests/turtle/test-33.out files to test Issue#0000318 http://bugs.librdf.org/mantis/view.php?id=318 * librdfa/iri.c: Update to librdfa GIT commit 1979d7246a1d98f95bab78704a32b87cf95d1ef6 * librdfa/curie.c, librdfa/iri.c, librdfa/rdfa.c, librdfa/rdfa.h, librdfa/triple.c: Merge librdfa changes to GIT 88ca099befcb1b81be1a879663e5e891707e5239 Fixes several buffer alloc/realloc problems and failure to terminate strings when using them with strstr(). Other librdfa changes: - added "first" to list of allowed reserved words. - allow @rel/@rev reserved word values to be in any case (TC 134) - librdfa now treats the following characters as valid whitespace characters: SPACE, \t, \n, \v, \f, and \r. (TC 131) - fix generation of xml:lang if language was already in XML Literal (TC 102) 2010-01-26 Dave Beckett * src/raptor_general.c: ws * src/raptor.h, src/raptor_general.c, src/raptor_statement.c: Adjust raptor_print_ntriples_string params to put FILE* last * src/raptor.h, src/raptor_general.c, src/raptor_locator.c: Adjust raptor_print_locator params to put FILE* last like other print methods. * src/raptor_locator.c: ws * src/raptor_general.c, src/raptor_internal.h, src/raptor_sax2.c: Remove raptor_log_error_to_handlers and call raptor_log_error directly. (raptor_log_error_to_handlers): Deleted. Update several sax2 modules to call raptor_log_error instead. * src/raptor_sequence.c: indent * src/raptor_abbrev.c, src/raptor_avltree.c, src/raptor_internal.h: Update raptor_avltree to us raptor_data_print_handler typedef raptor_data_print_function: deleted (raptor_new_abbrev_subject, raptor_avltree_set_print_handler): Use raptor_data_print_handler* to replace raptor_data_print_function. (raptor_print_abbrev_po): Swap args to match raptor_data_print_handler calling convention. * src/raptor.h, src/raptor_grddl.c, src/raptor_parse.c, src/raptor_rss_common.c, src/raptor_sequence.c, src/raptor_serialize.c, src/raptor_serialize_dot.c, src/raptor_serialize_rss.c, src/turtle_parser.y: Rename sequence-specific handlers typedefs to be more raptor-general raptor_data_free_handler renamed from raptor_sequence_free_handler raptor_data_context_free_handler renamed from raptor_sequence_context_free_handler raptor_data_print_handler renamed from raptor_sequence_print_handler and update docs raptor_data_context_print_handler renamed from raptor_sequence_context_print_handler and update docs Update all users. * src/raptor_internal.h: Make all print methods return an int status code (raptor_statement_print, raptor_uri_print, raptor_sequence_print, raptor_term_print_as_ntriples): Return int success code. * src/raptor.h, src/raptor_sequence.c, src/raptor_statement.c, src/raptor_uri.c: Make all print methods return an int status code (raptor_statement_print, raptor_uri_print, raptor_sequence_print, raptor_term_print_as_ntriples): Return int success code. * src/raptor.h, src/raptor_grddl.c, src/raptor_sequence.c: Update sequence _v2 constructor/methods to use _with_context Rename typedefs for handlers to match, update constructor documentation to explain the difference. typedef raptor_sequence_context_print_handler renamed from raptor_sequence_print_handler_v2. raptor_sequence - renamed fields to add context_NAME for the formerly _v2 handler names. Add explanations of what they are for. (raptor_new_sequence): autodocs and example of use (raptor_new_sequence_with_context): Renamed from raptor_new_sequence_v2 and autodocs. * src/raptor.h, src/raptor_sequence.c: Remove unused raptor_sequence_set_print_handler() and raptor_sequence_set_print_handler_2(). (raptor_sequence_set_print_handler, raptor_sequence_set_print_handler_v2): Deleted. 2010-01-24 Dave Beckett * src/turtle_parser.y: (verb): Get rdf:type term from static term and do not lose an URI reference. * src/turtle_parser.y: Free literal strings passed into raptor_new_term_from_literal() * src/turtle_parser.y: (resource): Free uri object references when making resource from QNAME_LITERAL or URI_LITERAL. (raptor_turtle_generate_statement): Redo - free constructed terms * src/turtle_parser.y: (raptor_turtle_generate_statement): UNDO Free constructed terms * src/turtle_parser.y: (raptor_turtle_generate_statement): Free constructed terms * src/turtle_parser.y: Free blank_id not blank * src/raptor_rdfxml.c: When creating new URIs or terms, free allocated values early. Since functions like raptor_new_term_from_uri() take copies of their arguments, any allocated objects passed in such as URIs or literals should be freed. Adjust the code so that's done early. (raptor_rdfxml_generate_statement): Free bag_predicate_uri. (raptor_rdfxml_start_element_grammar): For rdf:ID, move the syntax checks earlier to save extra complexity on errors. Generally update all places to free generated IDs and constructed URIs just after making raptor_uri or raptor_term * src/raptor_uri.c: Use raptor_uri_resolve_uri_reference length with raptor_new_uri_from_counted_string internally. raptor_uri length is now unsigned int (raptor_new_uri_from_counted_string): Add maintainer assert that URI string is length it is declared to be. (raptor_new_uri_relative_to_base): Use raptor_uri_resolve_uri_reference return value to call raptor_new_uri_from_counted_string. (raptor_new_uri_for_rdf_concept): Correctly calcuate passed in buffer length - it was malloced correctly. (assert_uri_is_valid): Added. (assert_uri_to_relative): Use above for checks. * src/raptor_rfc2396.c: (raptor_uri_resolve_uri_reference): set result_len when relative is #frag. * src/raptor_abbrev.c: (raptor_new_qname_from_resource): Calculate the length of namespace part of predicate URI correctly. * src/raptor_abbrev.c: (raptor_new_qname_from_resource): Namespace URI buffer was too short by 1. * src/raptor_serialize_rdfxmla.c: Replace rdf_xml_literal_uri with use of static rdf:XMLLiteral URI raptor_rdfxmla_serializer_context loses rdf_xml_literal_uri (raptor_rdfxmla_serialize_init): Remove init with rdf_type_uri, copy RAPTOR_RDF_type_term(). Remove rdf_xml_literal_uri. (raptor_rdfxmla_serialize_terminate): Remove free of rdf_xml_literal_uri. * src/raptor_serialize_rdfxml.c: Replace rdf_xml_literal_uri with use of static rdf:XMLLiteral URI raptor_rdfxml_serializer_context loses rdf_xml_literal_uri (raptor_rdfxml_serialize_init, raptor_rdfxml_serialize_terminate): Remove init, free. (raptor_rdfxml_serialize_statement): Use RAPTOR_RDF_XMLLiteral_URI() * src/raptor.h, src/raptor_rfc2396.c: (raptor_uri_resolve_uri_reference): Now returns length of URI. 2010-01-23 Dave Beckett * src/raptor_librdfa.c: (raptor_librdfa_generate_statement): Use raptor_new_uri_from_counted_string for rdf:XMLLiteral datatype. * src/raptor_abbrev.c: (raptor_new_qname_from_resource): Use raptor_new_uri_from_counted_string. * src/raptor_feature.c: Create feature URI prefix from counted URI string (raptor_features_enumerate_common): Use raptor_new_uri_from_counted_string. * src/raptor_rdfxml.c: Create daml namespaces from counted string URIs Added daml_namespace_uri_string and daml_namespace_uri_string statics for DAML namespace URI. (raptor_rdfxml_parse_init): Use raptor_new_uri_from_counted_string. * src/raptor_namespace.c: Create rdf and rdfs namespaces from counted string URIs Added raptor_rdf_schema_namespace_uri_len constant int. (raptor_namespaces_init): Use raptor_new_uri_from_counted_string. * src/raptor_uri.c: Ensure URI string field is always set Renamed raptor_uri_s field string_length to length. (raptor_new_uri_from_uri_local_name, raptor_new_uri_relative_to_base, raptor_new_uri_for_rdf_concept): Use raptor_new_uri_from_counted_string with already calculated length. * src/raptor_grddl.c: Create constant strings / lengths for GRDDL predicate URIs Added grddl_namespaceTransformation_uri_string and grddl_profileTransformation_uri_string constant strings with macros for lengths. (raptor_grddl_parse_init): Use above to create grddl parser URIs with raptor_new_uri_from_counted_string. * src/raptor.h, src/raptor_uri.c: Added new uri constructor raptor_new_uri_from_counted_string (raptor_new_uri_from_counted_string): Added (raptor_new_uri): Now a wrapper around raptor_new_uri_from_counted_string. 2010-01-22 Dave Beckett * src/raptor_serialize_rss.c: Use raptor_term instead of URIs and 'fake' URIs raptor_rss_group_map uses a raptor_term as identifier, not URI. (raptor_free_group_map): Free term. (raptor_rss_group_map_compare): Compare terms. (raptor_rss10_get_group_item): Use terms in search. (raptor_rss10_set_item_group): Use term to create a new gm. (raptor_rss10_move_statements, raptor_rss10_move_anonymous_statements, raptor_rss10_store_statement): Replace URIs with terms from subject, removing all fake_uri. (raptor_rss10_serialize_statement, raptor_rss10_build_items): Use item term for calling raptor_rss10_set_item_group * src/raptor_serialize_rss.c: Use raptor_term for rdf:Seq node identity and remove a fake_uri raptor_rss10_serializer_context replace seq_uri with raptor_term* seq_term (raptor_rss10_serialize_terminate): Free term. (raptor_rss10_serialize_statement): Copy statement subject to get seq node identity. (raptor_rss10_build_items): Use seq_term for comparisons with subject and delete fake_uri * raptor.rdf.in: GITRepository 2010-01-21 Dave Beckett * src/turtle_lexer.l: Make Turtle long literals count raw newlines correctly (Rule \" ....): Count the raw newlines seen in the yytext to adjust the line numbers correctly for long literals. Fixes Issue#0000331 http://bugs.librdf.org/mantis/view.php?id=331 * src/raptor_general.c: , * raptor.rdf.in: Update DOAP with GIT information. 2010-01-20 Dave Beckett * src/raptor_rdfxml.c: Always take a copy of world concepts so they are consitently freed * src/ntriples_parse.c, src/raptor_rdfxml.c: Use rdf namespace raptor_terms to reduce raptor_term creations in parsers. (raptor_ntriples_generate_statement): Tidy code, moving URI construction to local blocks. (raptor_rdfxml_generate_statement): Use concept terms for refiying predicates and rdf:Statement class. (raptor_rdfxml_start_element_grammar, raptor_rdfxml_end_element_grammar): Update to use concept terms. * src/raptor_internal.h: Added macros to access the static RDF namespace raptor terms Added macros RAPTOR_RDF_{NAME}_term(world) to get a shared pointer to the static raptor_term for rdf namespace concepts. * src/raptor_concepts.c, src/raptor_internal.h: Make a set of raptor_term for RDF namespace terms used in graph. raptor_rdf_ns_term_id gains an alias RDF_NS_LAST_SYNTAX_TERM for the last syntax term. raptor_world gains an array of raptor_term 'terms'; not all of these will be used, the first few are syntax only. (raptor_concepts_init, raptor_concepts_finish): Initialised and free the terms. 2010-01-19 Dave Beckett * src/raptor_rss.c: (raptor_rss_block_set_field): Fix failure check * src/raptor_rss.c, src/raptor_rss.h, src/raptor_rss_common.c: Turn two magic number offsets 0 into defines in raptor_rss.h Add defines RAPTOR_RSS_LINK_HREF_URL_OFFSET and RAPTOR_RSS_LINK_REL_STRING_OFFSET for indexes into block urls/strings arrays - both at offset 0. (raptor_rss_insert_rss_link): Use above defines and remove fixme. Update raptor_rss_block_fields_info to use defines. * src/raptor_xml_writer.c: raptor_xml_writer_nsd_compare - Remove FIXME; duplicating a 3 line function is not a worry. * src/raptor_uri.c: (raptor_uri_print): Use world to report fwrite failure, remove FIXME. * src/raptor_serialize_rss.c: raptor_rss10_emit_item - remove fixme now it is documented. * docs/raptor-serializers.xml: note default atom:content type on serializing to atom 1.0 * src/raptor_serialize_rdfxmla.c: remove FIXME no longer relevant * src/raptor_rss.c: Add some resilience to calloc/malloc failure (raptor_rss_parse_init): Code tidy. (raptor_rss_block_set_field): Add return value for failure. Check for URI and string alloc failure. (raptor_rss_start_element_handler, raptor_rss_end_element_handler): Set parser failure and end on alloc failure. (raptor_rss_insert_rss_link): Add return value for failure and check for new field, string failure. (raptor_rss_insert_identifiers): Add return value for failure and check for above function failing. (raptor_rss_copy_field): Return failure on string alloc failure. (raptor_rss_parse_chunk): Fail to parse when raptor_rss_insert_identifiers fails. * src/raptor_parse.c: Make score sorting us a dynamic buffer in raptor_world_guess_parser_name (raptor_world_guess_parser_name): Calloc/free the array and remove FIXME! * src/raptor_grddl.c: raptor_grddl_run_grddl_transform_doc - remove FIXMEs now that these are documented * docs/raptor-parsers.xml: document more GRDDL parser features * src/raptor_grddl.c: raptor_grddl_run_grddl_transform_doc - remove FIXME now that the XSLT params are documented * docs/raptor-parsers.xml: document GRDDL XSTL parameters * src/raptor_abbrev.c: autodocs * src/turtle_parser.y: remove FIXMEs * src/turtle_lexer.l: Update test code to Raptor V2 APIs. * src/raptor_concepts.c, src/raptor_internal.h: Do not try to make an rdf namespace concept URI for the NULL name * src/raptor_concepts.c: (raptor_concepts_init): Return 1 if URI alloc failed not succeeded * src/raptor_concepts.c: (raptor_concepts_init): Return 1 if URI alloc failed. * src/raptor_abbrev.c, src/raptor_internal.h, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_turtle.c: Rename abbrev struct compare functions to standard naming. (raptor_abbrev_node_compare): Renamed from raptor_abbrev_node_cmp. (raptor_abbrev_subject_compare): Renamed from raptor_abbrev_subject_cmp. 2010-01-18 Dave Beckett * src/raptor_grddl.c: GRDDL parser code style - whitespace, break long lines, loop pre-counting Whitespace around operators and break long lines. For fixed size raptor_sequence or array loops, store size in a var 'size' rather than run a function on every if/while loop. * src/raptor_grddl.c: code style: break into 2 lines the long assignments to grddl_parser * src/raptor_grddl.c: Update conformance urls and doc ptr * src/raptor_rdfxml.c: Code style fixes - indenting, whitespace, add vars to break long lines. Code style, indenting and whitespace. Add variables to break long lines especially error reporting Use __func__ for internal error message rather than hardcoding function name. * src/Makefile.am, src/raptor.h, src/raptor_concepts.c, src/raptor_general.c, src/raptor_internal.h, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_rss.h, src/raptor_rss_common.c, src/raptor_serialize_rss.c, src/raptor_uri.c, src/turtle_common.h, src/turtle_parser.y: Update rdf namespace concepts to add PlainLiteral, share across parsers raptor_rdf_ns_term_id gains RDF_NS_PlainLiteral; reordered to put together with RDF_NS_XMLLiteral, the other datatype. raptor_world gains an array of pointers to raptor_uri* concepts. turtle_parser loses nil_uri, first_uri, rest_uri that are now available via the macros. rss_parser loses rdf:type and rdf:Seq concept URIs that are now available via the macros. Added macros RAPTOR_RDF_{name}_URI(world) to get pointer to static raptor_uri* for NS terms. RDF/XML parser cuts down to just 5 DAML NS URIs to manage itself. (raptor_new_uri_for_rdf_concept): now takes const name. (raptor_concepts_init, raptor_concepts_finish): Added. (raptor_world_open): Call raptor_concepts_init; re-order to init URIs then concepts first. (raptor_free_world): Call raptor_concepts_finish Update RDF/XML, RSS and Turtle parsers to use shared URIs. * src/fix-flex: alter lexer output to remove signed/unsigned comparison that gcc 4.x warns. * src/raptor_librdfa.c: Do not strdup language in raptor_librdfa_generate_statement * src/ntriples_parse.c, src/raptor_internal.h, src/raptor_librdfa.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_rss_common.c, src/raptor_serialize_rss.c, src/raptor_statement.c, src/turtle_parser.y: Change raptor_new_term_from_blank calling semantics to copy id inside. (raptor_new_term_from_blank): Copy blank ID. Update all calls to raptor_new_term_from_blank to remove strdup()s and add a few RAPTOR_FREE for generated IDs. * src/ntriples_parse.c, src/raptor_librdfa.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_statement.c, src/turtle_parser.y: Change raptor_new_term_from_literal calling semantics to copy inside. (raptor_new_term_from_literal): Copy literals, optional language and datatype URIs. Update all calls to raptor_new_term_from_literal to remove strdup(), malloc/free, or stringbuffer copy for literal string; remove copy URI for datatype URI. * src/raptor_rdfxml.c: Rename RDF ns-checking functions and document their returns (raptor_rdfxml_check_propertyElement_name): Renamed from raptor_rdfxml_forbidden_nodeElement_name and returns tri-state flag (raptor_rdfxml_check_propertyElement_name): Renamed from raptor_rdfxml_forbidden_propertyElement_name and returns tri-state flag. (raptor_rdfxml_check_propertyAttribute_name): Renamed from raptor_rdfxml_forbidden_propertyAttribute_name and returns tri-state flag. Update callers to check for <0: unknown name, 0: allowed, >0: not allowed * src/raptor_rdfxml.c: Set raptor_rdf_ns_terms_info as unsigned int 1 bit so bool works * src/raptor_rdfxml.c: Adjust raptor_rdf_ns_terms_info fields: reorder, make positive and use bitfields. Altered raptor_rdf_ns_terms_info field order to group flag attributes together and use 1 bit each, make them positive allowed flags rather than mix of forbidden/allowed. Adjust the raptor_rdfxml_forbidden_TEST_name calling code to use !raptor_rdf_ns_terms_info[field].allowed_TEST * src/raptor_rdfxml.c: Tidy comments for raptor_rdf_ns_term_id names * src/raptor_rdfxml.c: Tidy RDF terms description raptor_rdf_ns_term_id: Renamed enum from rdf_attr. Names are all RDF_ATTR_[name] now. * src/ntriples_parse.c, src/raptor_librdfa.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_rss_common.c, src/raptor_statement.c, src/turtle_parser.y: Change raptor_new_term_from_uri calling semantics to take URI copy inside (raptor_new_term_from_uri): autodocs and call raptor_uri_copy. Updated all calls to raptor_new_term_from_uri to remove a raptor_uri_copy or add a raptor_uri_free as appropriate. * src/raptor_abbrev.c, src/raptor_internal.h, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_turtle.c: Make raptor_abbrev_node use raptor_term rather than another embedded node raptor_abbrev_node loses the 'value' union and a pile of sub-structure duplicating raptor_term* contents; yet another librdf_node copy bites the dust. (raptor_new_abbrev_node): Use raptor_new_term_from_term (raptor_free_abbrev_node): Use raptor_free_term (raptor_abbrev_node_cmp): Thin wrapper around raptor_term_compare. (raptor_abbrev_node_equals): Thin wrapper around raptor_term_equals. Update all references to the raptor_abbrev_node internals above. (raptor_rdfxmla_serialize_init, raptor_turtle_emit_subject): Fix a couple of places where a static raptor_term was used for creating a raptor_abbrev_node; now make a dynamic one so it can be reference counted and freed. * src/raptor_abbrev.c, src/raptor_internal.h, src/raptor_statement.c: Make raptor_term_print_as_ntriples internal so can use for raptor_abbrev (raptor_term_print_as_ntriples): No longer static. 2010-01-17 Dave Beckett * docs/rdfprint.c, examples/rdfprint.c, src/raptor.h, src/raptor_grddl.c, src/raptor_rdfxml.c, src/raptor_rss_common.c, src/raptor_serialize_rss.c, src/raptor_serialize_simple.c, src/raptor_statement.c, src/turtle_parser.y, utils/rdfdiff.c: Rename statement printing methods to raptor_statement_NAME() form (raptor_statement_print): Renamed from raptor_print_statement (raptor_statement_print_as_ntriples): Renamed from raptor_print_statement_as_ntriples * src/raptor.h: Remove unused typedefs for old URI handler code raptor_new_uri_func, raptor_new_uri_from_uri_local_name_func, raptor_new_uri_relative_to_base_func, raptor_new_uri_for_rdf_concept_func, raptor_free_uri_func, raptor_uri_equals_func, raptor_uri_compare_func, raptor_uri_copy_func, raptor_uri_as_string_func, raptor_uri_as_counted_string_func: Deleted. * docs/rdfcat.c, docs/rdfprint.c, examples/grapper.c, examples/raptor_abort.c, examples/rdfcat.c, examples/rdfprint.c, src/raptor.h, src/raptor_feature.c, src/raptor_general.c, src/raptor_grddl.c, src/raptor_guess.c, src/raptor_internal.h, src/raptor_parse.c, src/turtle_parser.y, utils/rapper.c, utils/rdfdiff.c: Rename parser methods to all start raptor_parser_METHOD (raptor_parser_get_feature): Renamed from raptor_get_feature. (raptor_parser_get_label): Renamed from raptor_get_label. (raptor_parser_get_locator): Renamed from raptor_get_locator. (raptor_parser_get_mime_type): Renamed from raptor_get_mime_type. (raptor_parser_get_name): Renamed from raptor_get_name. (raptor_parser_get_need_base_uri): Renamed from raptor_get_need_base_uri. (raptor_world_get_parser_factory): Renamed from raptor_get_parser_factory. (raptor_parser_parse_abort): Renamed from raptor_parse_abort. (raptor_parser_parse_chunk): Renamed from raptor_parse_chunk. (raptor_parser_set_uri_filter_no_net): Renamed from raptor_parse_uri_no_net_filter. (raptor_parser_get_new_generated_i): Renamed from raptor_parser_generate_id. (raptor_parser_set_default_generate_id_parameters): Renamed from raptor_set_default_generate_id_parameters. (raptor_parser_set_generate_id_handler): Renamed from raptor_set_generate_id_handler. (raptor_parser_set_graph_handler): Renamed from raptor_set_graph_handler. (raptor_parser_set_namespace_handler): Renamed from raptor_set_namespace_handler. (raptor_parser_set_statement_handler): Renamed from raptor_set_statement_handler. (raptor_parser_parse_start): Renamed from raptor_start_parse. * src/raptor.h, src/raptor_general.c, src/raptor_libxml.c, src/raptor_parse.c: Adjust raptor_log_level to match log4j levels: add trace, debug, info. raptor_log_level gains RAPTOR_LOG_LEVEL_TRACE, RAPTOR_LOG_LEVEL_DEBUG and RAPTOR_LOG_LEVEL_INFO. Reordered to match severity from trace level to fatal error. Add autodocs. * src/raptor_statement.c: code style * src/raptor_parse.c: autodocs * src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: autodocs * src/raptor.h, src/raptor_iostream.c, src/raptor_serialize_simple.c: Renamed raptor_iostream_write_uri_v2 to raptor_iostream_write_uri and lose world arg * src/raptor.h, src/raptor_xml_writer.c: Rename raptor_xml_writer_features_enumerate_v2 to raptor_world_enumerate_xml_writer_features * src/raptor.h, src/raptor_general.c: Rename raptor_error_handlers_init_v2 to raptor_error_handlers_init * src/raptor_serialize_rss.c: Fix debug calls to raptor_print_statement_as_ntriples_v2 now called raptor_print_statement_as_ntriples * src/raptor.h, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_xml_writer.c: Remove _v2 from raptor_new_xml_writer_v2 name and remove unused arg. (raptor_new_xml_writer_v2): Renamed from raptor_new_xml_writer and delete unused (never used) canonicalized arg. * src/raptor.h, src/raptor_feature.c, src/raptor_parse.c: Renamed raptor_feature_from_uri_v2 to raptor_world_get_feature_from_uri * src/raptor.h, src/raptor_abbrev.c, src/raptor_namespace.c, src/raptor_qname.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_turtle_writer.c, src/raptor_xml.c, src/raptor_xml_writer.c: Remove _v2 from raptor_new_qname_from_namespace_local_name_v2 (raptor_new_qname_from_namespace_local_name): Renamed from raptor_new_qname_from_namespace_local_name_v2. * src/raptor.h, src/raptor_internal.h, src/raptor_namespace.c, src/raptor_rss.c, src/raptor_sax2.c, src/raptor_serialize_dot.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_turtle.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c, src/turtle_common.h, src/turtle_lexer.l, src/turtle_parser.y: Rename raptor_namespaces/stack functions to lose _v2 in name (raptor_new_namespaces): Renamed from raptor_new_namespaces_v2. (raptor_namespaces_init): Renamed from raptor_namespaces_init_v2 Also note where raptor_namespace_stack is static such as in raptor_sax2, some tests and in raptor_turtle_parser. * src/raptor_www_test.c: Fix test o use raptor_www_new * src/raptor.h, src/raptor_general.c, src/raptor_grddl.c, src/raptor_parse.c, src/raptor_www.c: Rename raptor_www functions to lose _v2 in name (raptor_www_init): Renamed from raptor_www_init_2 - internal. (raptor_www_finish): Renamed from raptor_www_finish_v2 - internal. (raptor_www_new): Renamed from raptor_www_new_v2. (raptor_www_new_with_connection): Renamed from raptor_www_new_with_connection_v2. * src/raptor.h, src/raptor_general.c, src/raptor_locator.c, utils/rapper.c, utils/rdfdiff.c: Remove _v2 from name and world arg from raptor_locator functions (raptor_print_locator): Renamed from raptor_print_locator_v2 and loses world arg. (raptor_format_locator): Renamed from raptor_format_locator_v2 and loses world arg. (raptor_locator_uri_string): Renamed from raptor_locator_uri_v2 and renamed to reflect returns a string not a raptor_uri* * src/raptor_avltree.c, src/raptor_general.c, src/raptor_grddl.c, src/raptor_iostream.c, src/raptor_json_writer.c, src/raptor_namespace.c, src/raptor_nfc_test.c, src/raptor_parse.c, src/raptor_qname.c, src/raptor_rdfxml.c, src/raptor_rfc2396.c, src/raptor_rss.c, src/raptor_rss_common.c, src/raptor_sax2.c, src/raptor_sequence.c, src/raptor_serialize.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_set.c, src/raptor_statement.c, src/raptor_stringbuffer.c, src/raptor_turtle_writer.c, src/raptor_www.c, src/raptor_xml.c, src/raptor_xml_writer.c, src/turtle_lexer.l, src/turtle_parser.y: Code style: use TYPE* var_name = RAPTOR_CALLOC(TYPE, 1, sizeof(*var_name)) This fix caught a few times where the calloc added an extra +1 - presumably from the usual thing you need to do with a string malloc. e.g. in raptor_new_json_writer(), raptor_new_turtle_writer() and raptor_new_xml_writer_v2() which probably were all from the same source. * src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c: Remove some un-necessary casts to (unsigned char*) * src/raptor_serialize_rss.c, src/raptor_serialize_simple.c, src/raptor_statement.c: Remove some un-necessary casts to raptor_uri* * src/raptor_serialize_json.c: (raptor_json_serialize_avltree_visit): Use raptor_term_equals instead of hand-crafted equivalent. * src/raptor.h, src/raptor_abbrev.c, src/raptor_grddl.c, src/raptor_internal.h, src/raptor_json_writer.c, src/raptor_rdfxml.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_simple.c, src/raptor_serialize_turtle.c, src/raptor_statement.c, src/turtle_parser.y, utils/rapper.c, utils/rdfdiff.c: raptor_term values are now a union of uri / literal fields / blank string raptor_term gains union value with uri field, literal struct and blank field for URI, Literal and Blank rdf terms. Lots of consequent changes; mostly mechanical search and replace. Removed several (raptor_uri*)value and (unsigned char*)value casts. (raptor_rss10_move_statements): Changes but when zeroing uri / literal, do that in separate steps rather than assigning to value. * src/raptor_serialize_dot.c: Convert DOT serializer to use raptor_term not local raptor_dot_serializer_node Deleted raptor_dot_serializer_node typedef (raptor_dot_serializer_free_node, raptor_dot_serializer_node_matches, raptor_dot_serializer_new_node): Deleted and replaced with raptor_term versions - both based on librdf_node. Code style fixes. * src/raptor_statement.c: Fix formatting in raptor_term_as_counted_string for blank and uri (raptor_term_as_counted_string): RAPTOR_TERM_TYPE_BLANK and RAPTOR_TERM_TYPE_URI code was wrong - bad casting. 2010-01-16 Dave Beckett * Merge branch 'statement-term' to 'master' with commit efd40982c2356eab8c37c1da1acd8b459ec06b56 2010-01-15 Dave Beckett * src/Makefile.am, src/raptor_internal.h, src/raptor_xsd.c: Removed unused raptor_new_identifier_from_double and raptor_xsd module. * src/raptor_librdfa.c: Updated RDFA parser to use statement and term object model * src/raptor_rss.c: Skip attempting to output predicates with no URI/namespace (raptor_rss_emit_item): Check predicate_uri first. * src/raptor_rss.c: Free allocate raptor_term (raptor_rss_emit_item): Free some predicate and object terms just allocated. Code style. * docs/tmpl/section-iostream.sgml, docs/tmpl/section-triples.sgml, docs/tmpl/section-uri.sgml: update generated docs * src/raptor_rss.c: Construct terms in raptor_rss_emit_item (raptor_rss_emit_item): Use raptor_term constructors * src/raptor_rss.c, src/raptor_rss.h, src/raptor_rss_common.c, src/raptor_serialize_rss.c: Switch RSS parser and serializer internals from identfier to term Compiles but does not fully work yet. * src/raptor_internal.h: Added raptor_term_equals * src/raptor_statement.c: Added raptor_term_equals 2010-01-14 Dave Beckett * src/turtle_parser.y: Convert turtle parser to use raptor_statement and raptor_term Change raptor_identifier to raptor_term Change raptor_turtle_triple to raptor_statement Code style. (raptor_turtle_generate_statement): Use copy constructor for term. (raptor_turtle_new_triple, raptor_turtle_free_triple, raptor_triple_print): Deleted * src/raptor_internal.h, src/raptor_statement.c: Add raptor_new_statement_from_nodes (raptor_new_statement_from_nodes): Added * src/raptor_serialize_turtle.c, src/turtle_parser.y: Update Turtle parser and serializer to statement reference model. (raptor_turtle_generate_statement): Generate new term objects for each statement. (raptor_turtle_serialize_statement): Use correct reference to statement fields. * src/raptor_internal.h, src/raptor_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_statement.c: Made statement work statically and dynamically, promoting on copies (raptor_new_statement): Added to make a new dynamic statement (raptor_statement_init): Init a static statement with negative usage. (raptor_statement_copy): Do promote to dynamic on copy. (raptor_free_statement): Do not free static statements. (raptor_rdfxml_generate_statement): Do proper predicate creation when reifying - this broke statement copying and rdfdiff. (raptor_rdfxmla_serialize_statement): Correct pointers to statement fields. 2010-01-13 Dave Beckett * src/raptor_rdfxml.c: Code style and more fixing up RDF/XML raptor_term object use Code style; introduce variables to break long lines/duplicate expressions that hopefully the compiler will still optimize way. (raptor_rdfxml_generate_statement): Free a locally created reified_term object. (raptor_rdfxml_process_property_attributes): Save a strlen. Code style. (raptor_rdfxml_start_element_grammar): Code style. Add element_name_uri to remove several long lines. Add some OOM checks when an ID/URI then raptor_term are created in two steps. * src/ntriples_parse.c: Update N-Triples parser to use raptor_term objects (raptor_ntriples_generate_statement): Use raptor_term constructors. * src/raptor_rdfxml.c: More conversions of raptor_term statics to dynamic. (raptor_rdfxml_process_property_attributes): Return failure error status. (raptor_rdfxml_process_property_attributes): Convert more static (on stack) raptor_term objects into dynamic/by-reference. * src/raptor_statement.c: (raptor_statement_copy): Delete commented out old deep copy code. (raptor_free_statement): Just call raptor_term to free inner terms. * src/raptor_internal.h, src/raptor_rdfxml.c, src/raptor_statement.c: Deleted raptor_clear_term and raptor_copy_term. literal languages (raptor_clear_term, raptor_copy_term): Deleted - no longer needed or used. (raptor_free_term): Merge in old raptor_clear code here. (raptor_rdfxml_end_element_grammar): A little OOM checking. * src/raptor_rdfxml.c: (raptor_rdfxml_end_element_grammar): Allocate new strings for literals since they become owned by raptor_term. * src/raptor_rdfxml.c, utils/rapper.c: change raptor_rdfxml_element raptor_term statics fields to objects raptor_rdfxml_element: reified, bag, subject, predicate and object fields are now raptor_term* (raptor_free_rdfxml_element): Use raptor_free_term on above fields instead of raptor_clear_term. (raptor_rdfxml_start_element_handler): Do not assign world to above fields - not allocated yet. Move setting of default literal_language inscope to code near the line where raptor_term for a literal is created. Start turning direct references to raptor_statement field->subject->type into static raptor_term objects (memset then assigned) for bags, reified terms, collections, bags, reified statements, ... First stage of conversion to allocated raptor_terms. * src/ntriples_parse.c, src/raptor.h, src/raptor_grddl.c, src/raptor_internal.h, src/raptor_librdfa.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_rss_common.c, src/raptor_serialize.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_simple.c, src/raptor_serialize_turtle.c, src/raptor_statement.c, src/turtle_parser.y, utils/rapper.c, utils/rdfdiff.c: raptor_term and raptor_term get usages. statement is pointer to 3 terms Compiles, does not all work. (raptor_statement_init): Init usage. (raptor_statement_copy): Now just a usage increment; comment out old copying code. (raptor_free_statement): Free on zero usage. (raptor_free_term): Free on zero usage. (raptor_new_term_from_term, raptor_new_term_from_uri, raptor_new_term_from_literal, raptor_new_term_from_blank): Added new term constructors - taking ownership of their input objects. (raptor_rdfxml_generate_statement): Create raptor_term objects to generate reified statements. Update lots of uses in parsers and serializers of object.field to object->field for pointer based access. 2010-01-12 Dave Beckett * docs/tmpl/section-iostream.sgml, docs/tmpl/section-triples.sgml, docs/tmpl/section-uri.sgml: Update generated docs 2010-01-11 Dave Beckett * src/raptor_rdfxml.c: raptor_rdfxml_generate_statement() now takes raptor_term subject/ raptor_uri term. (raptor_rdfxml_generate_statement): Use raptor_term fields. (raptor_rdfxml_element_has_property_attributes, raptor_rdfxml_start_element_grammar): Create static raptor_term objects on stack for use in constructing parameter sets for raptor_rdfxml_generate_statement. Several of these should be dynamic and/or constructed once parser-wide. * src/raptor_internal.h, src/raptor_rdfxml.c, src/raptor_statement.c: Replace raptor_identifier with raptor_term inside rdf/xml parser. struct raptor_rdfxml_element_s updated to change fields reified, bag, subject, predicate, object from raptor_identifier to raptor_term. Also added a reified_id field for storing an ID used for reification; not clear if this is entirely necessary. (raptor_clear_term): Added based on raptor_clear_identifier. (raptor_free_term): Added. (raptor_copy_term): Added based on raptor_copy_identifier but not calling raptor_free term on dest; call raptor_clear_term instead. (raptor_free_rdfxml_element): Use raptor_clear_term to replace raptor_clear_identifier. (raptor_rdfxml_generate_statement): Updated to use raptor_term field names. Some loss of clarity here since identifier URI/blank node fields are merged into one void* term field 'value' for now. (raptor_rdfxml_process_property_attributes, raptor_rdfxml_start_element_grammar): Updated for raptor_term fields. For capturing bag/reified IDs, use local variables rather than overloading subject/reified/bad.id fields. * src/raptor_abbrev.c, src/raptor_internal.h, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_turtle.c: Make abbrev_node constructors/lookup functions use raptor_term (raptor_new_abbrev_node): Pass in a raptor_term and use that to find fields to copy. (raptor_abbrev_node_lookup, raptor_abbrev_subject_find, raptor_abbrev_subject_lookup): Lookup using fields in a passed in raptor_term. Update callers to use raptor_term when searching - means creating some static raptor_term objects on the stack for now; will be either references or dynamically created when raptor_abbrev_node / raptor_term node merge is done. * src/raptor.h, src/raptor_serialize_ntriples.c: Added raptor_iostream_write_term_ntriples and raptor_iostream_write_statement_ntriples to public API (raptor_iostream_write_statement_ntriples): Renamed from raptor_iostream_write_statement_ntriples_v2 and loses world arg. (raptor_iostream_write_term_ntriples): Renamed from internal raptor_iostream_write_statement_part_ntriples and down to just 2 args: the iostr and term. (raptor_ntriples_serialize_statement): Updated call to raptor_iostream_write_statement_ntriples. * src/raptor_internal.h, src/raptor_statement.c: Added raptor_term_compare split out from raptor_statement_compare * src/raptor.h, src/raptor_abbrev.c, src/raptor_statement.c: Turn print-part-of-statements functions into methods of raptor_term (raptor_term_as_counted_string): Renamed from raptor_statement_part_as_counted_string and just take term arg. (raptor_term_as_string): Renamed from raptor_statement_part_as_string and just take term arg. Update callers to use new 1-arg convention. * src/raptor_statement.c: raptor_term_print_as_ntriples formed from raptor_print_statement_as_ntriples (raptor_term_print_as_ntriples): Renamed from raptor_print_statement_part_as_ntriples (raptor_print_statement_as_ntriples): Call above with raptor_term pointer. * librdfa/curie.c, librdfa/rdfa.c, src/ntriples_parse.c, src/raptor.h, src/raptor_abbrev.c, src/raptor_expat.c, src/raptor_feature.c, src/raptor_grddl.c, src/raptor_guess.c, src/raptor_identifier.c, src/raptor_internal.h, src/raptor_iostream.c, src/raptor_json_writer.c, src/raptor_librdfa.c, src/raptor_locator.c, src/raptor_namespace.c, src/raptor_parse.c, src/raptor_qname.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_rss_common.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_turtle.c, src/raptor_set.c, src/raptor_statement.c, src/raptor_turtle_writer.c, src/raptor_uri.c, src/raptor_www.c, src/raptor_www_curl.c, src/raptor_www_libfetch.c, src/raptor_www_libxml.c, src/raptor_www_test.c, src/raptor_xml.c, src/raptor_xml_writer.c, src/turtle_lexer.l, src/turtle_parser.y, utils/rapper.c, utils/rdfdiff.c: New raptor_uri implementation - reference counted uris with interning. Based on librdf_uri reference counted uris with interning in an librdf_hash, this uses a raptor_avltree to store/lookup previously seen uris so that a single URI string has one raptor_uri* object. Removed initial world parameter from all raptor_uri class methods. Update all callers of above. rdfdiff debug prints also updated to generate ntriples * src/raptor_abbrev.c: Remove too-clever inline editing of uri string in raptor_new_qname_from_resource * src/raptor_general.c, src/raptor_internal.h, src/raptor_uri.c: Add raptor_uri_finish stup for uri class cleanup * docs/raptor-sections.txt, docs/tmpl/section-feature.sgml, docs/tmpl/section-general.sgml, docs/tmpl/section-iostream.sgml, docs/tmpl/section-locator.sgml, docs/tmpl/section-parser.sgml, docs/tmpl/section-sax2.sgml, docs/tmpl/section-sequence.sgml, docs/tmpl/section-serializer.sgml, docs/tmpl/section-triples.sgml, docs/tmpl/section-unused.sgml, docs/tmpl/section-uri.sgml, docs/tmpl/section-world.sgml, docs/tmpl/section-www.sgml, docs/tmpl/section-xml-namespace.sgml, docs/tmpl/section-xml-qname.sgml, docs/tmpl/section-xml.sgml: Update some generated docs. * librdfa/rdfa.c, src/ntriples_parse.c, src/raptor.h, src/raptor_abbrev.c, src/raptor_feature.c, src/raptor_grddl.c, src/raptor_json_writer.c, src/raptor_librdfa.c, src/raptor_namespace.c, src/raptor_qname.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_rss_common.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_turtle.c, src/raptor_set.c, src/raptor_turtle_writer.c, src/raptor_uri.c, src/raptor_www.c, src/raptor_www_curl.c, src/raptor_www_test.c, src/raptor_xml_writer.c, src/raptor_xsd.c, src/turtle_lexer.l, src/turtle_parser.y, utils/rapper.c, utils/rdfdiff.c: Remove _v2 suffix from raptor_uri constructors * src/raptor_rss.c: (raptor_rss_emit_connection): Use raptor_uri* for predicate_uri arg * src/raptor_internal.h, src/raptor_uri.c, src/raptor_xml_writer.c: Removed raptor_uri_handler and made all URI functions work direct with default implementation * src/raptor.h, src/raptor_internal.h, src/raptor_uri.c: Move raptor_uri_handler to internal and remove get/set functions. (raptor_uri_get_handler_v2, raptor_uri_set_handler_v2): Deleted (raptor_uri_init): Set default handler directly. * src/raptor.h: Add raptor_new_identifier_from_identifier prototype * src/raptor.h, src/raptor_identifier.c: Add reference count model for raptor_identifier (raptor_new_identifier_from_identifier): Set initial usage to 1 when allocaed as an object; initialising statically does not use this. (raptor_new_identifier_from_identifier): Added copy constructor (raptor_free_identifier): Free when usage is 0. static identifiers do not call this; they use raptor_clear_identifier 2010-01-08 Dave Beckett * src/raptor.h, src/raptor_identifier.c, src/raptor_internal.h, src/raptor_rdfxml.c, src/turtle_parser.y: Remove is_malloced field from raptor_identifier raptor_identifier loses is_malloc field (raptor_clear_identifier): Added to clear fields of static identified; pulled out of raptor_free_identifier (raptor_free_identifier): Call above and then free the object. * src/raptor.h, src/raptor_parse.c, src/raptor_serialize.c, utils/rapper.c: Rename parser/serializer feature enumeration methods to be on raptor_world class (raptor_world_enumerate_parser_features): Renamed from raptor_features_enumerate_v2 (raptor_world_enumerate_serializer_features): Renamed from raptor_serializer_features_enumerate_v2. * src/raptor.h, src/raptor_feature.c, src/raptor_parse.c, utils/rapper.c: Rename raptor_set_feature to correct method name raptor_parser_set_feature * src/raptor.h, src/raptor_parse.c, utils/rapper.c: Rename raptor_set_parser_strict to correct method name raptor_parser_set_strict * utils/rdfdiff.c: Update for new parser constructor name * utils/rapper.c: Update for new parser/serializer enumerate/check method names * src/raptor.h, src/raptor_grddl.c, src/raptor_guess.c, src/raptor_parse.c, src/raptor_serialize.c, src/raptor_serialize_rss.c: Rename parser/serializer enumerating, checking and guessing functions to be methods of raptor_world. (raptor_world_enumerate_parsers): Renamed from raptor_parsers_enumerate_v2 (raptor_syntaxes_enumerate_v2): Deleted; use raptor_world_enumerate_parsers. (raptor_world_is_parser_name): Renamed from raptor_syntax_name_check_v2 (raptor_world_guess_parser_name): Renamed from raptor_guess_parser_name_v2 (raptor_new_parser): Renamed from raptor_new_parser_v2 (raptor_new_parser_for_content): Renamed from raptor_new_parser_for_content_v2. (raptor_world_enumerate_serializers): Renamed from raptor_serializers_enumerate_v2. (raptor_world_is_serializer_name): Renamed from raptor_serializer_syntax_name_check_v2 (raptor_new_serializer): Renamed from raptor_new_serializer_v2 * src/raptor_internal.h: Restore raptor_simple_message_handler for internal use * src/raptor_general.c: (raptor_log_error): All user error handlers are called here now. * src/raptor.h: Delete raptor_simple_message_handler - nothing uses it anymore. * src/raptor.h, src/raptor_namespace.c, src/raptor_xml.c: raptor_xml_any_escape_string and raptor_xml_any_escape_string use raptor_world to replace error_handler/error_data args. (raptor_xml_any_escape_string, raptor_xml_any_escape_string): Delete error_handler and error_data args and replace with raptor_world initial argument. Pass errors via raptor_log_error/formatted. * src/raptor.h, src/raptor_internal.h, src/raptor_serialize.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_turtle.c: Serializer class loses specific fatal/error/warning handling (raptor_serializer_set_error_handler, raptor_serializer_set_warning_handler): Deleted (raptor_serializer_error, raptor_serializer_simple_error, raptor_serializer_error_varargs, raptor_serializer_warning, raptor_serializer_warning_varargs): Removed the internal functions that called the serializer-specific handlers. In serializers replaced calls to the above functions with raptor_log_error or raptor_log_error_formatted depending on the arguments present. * src/raptor_internal.h, src/raptor_serialize_turtle.c, src/raptor_turtle_writer.c: raptor_new_turtle_writer loses error_handler / error_data args. struct raptor_turtle_writer_s loses error_handler and error_data fields. (raptor_new_turtle_writer): error_handler and error_data args deleted. Updated callers. * src/raptor.h, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_xml_writer.c: raptor_new_xml_writer_v2 loses error_handler / error_data args. raptor_xml_writer gains raptor_world field. (raptor_new_xml_writer_v2): Delete args. Store world. * src/raptor.h, src/raptor_internal.h, src/raptor_iostream.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_serialize.c, src/raptor_turtle_writer.c, src/raptor_xml.c, src/raptor_xml_writer.c: All raptor_iostream constructors gain an initial raptor_world arg. (raptor_new_iostream_from_handler2, raptor_new_iostream_to_sink, raptor_new_iostream_to_filename, raptor_new_iostream_to_file_handle, raptor_new_iostream_to_string, raptor_new_iostream_from_sink, raptor_new_iostream_from_filename, raptor_new_iostream_from_file_handle, raptor_new_iostream_from_string): Gain an initial raptor_world* world argument. Consequently: (raptor_iostream_write_xml_any_escaped_string, raptor_iostream_write_xml_escaped_string): Both lose the error_handler and error_data args since it can send errors via the internal world. * src/raptor.h, src/raptor_qname.c, src/turtle_parser.y: raptor_qname_string_to_uri loses error_handler/error_data args. (raptor_qname_string_to_uri): Delete error_handler and error_data args. Use raptor_log_error_formatted to report prefix error. * src/raptor.h, src/raptor_qname.c, src/raptor_sax2.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_xml_writer.c: raptor_new_qname loses error_handler / error_data args (raptor_new_qname): delete args and use raptor_log_error_formatted for error reporting. Update callers. * src/raptor.h, src/raptor_namespace.c, src/raptor_rss.c, src/raptor_serialize_dot.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_turtle.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: raptor_new_namespaces_v2 loses error_handler / error_data args. (raptor_new_namespaces_v2): Delete args. Update all callers with the change - many of which were NULL/NULL anyway! * src/raptor.h, src/raptor_general.c, src/raptor_internal.h, src/raptor_namespace.c, src/raptor_sax2.c, src/turtle_parser.y: raptor_namespaces_init_v2 loses error_handler / error_data (raptor_log_error_formatted): Added to write a formatted error message with sprintf style. raptor_namespace_stack: loses error_handler and error_data fields. (raptor_namespaces_init_v2): Remove error_handler and error_data args. (raptor_new_namespace_from_uri): Use raptor_log_error_formatted to format an error message with argument. Update all calls to raptor_namespaces_init_v2 to remove error handler/data args. * src/raptor_json_writer.c: Update call to error_handler in #defined-out code * src/raptor_internal.h, src/raptor_json_writer.c, src/raptor_serialize_json.c: Remove error_handler/error_data from json writer struct raptor_json_writer_s: loses error_handler and error_data fields. (raptor_new_json_writer): loses error_handler and error_data args. (raptor_json_serialize_start): Update for new signature. * src/raptor_libxml.c: Initialise libxml generic error with pointer to raptor_world (raptor_libxml_generic_error): Expect world and never a locator. (raptor_libxml_init): Initialise generic error func with world user data. * src/raptor_libxml.c: Handle new XML_FROM_SCHEMATRONV introduced in libxml 2.6.32 2008-04-08 * src/raptor.h, src/raptor_general.c, src/raptor_internal.h, src/raptor_libxml.c: libxml generic & structured error saving defaults on. These are turned on by default so that when libxml library-wide generic/structured error handlers are set, this happens by default. Previously (1.4.x) it was done anyway, regardless of the flags. raptor_libxml_flags: update docs to note default is on. (raptor_new_world): set the flags on. raptor_world_s: update docs for libxml_flags field to note default. (raptor_libxml_xmlStructuredError_handler_common): Renamed from raptor_libxml_xmlStructuredErrorFunc and contains the core libxml error handling but not the parameter guessing. (raptor_libxml_xmlStructuredError_handler_global): Added to take structured errors from the global libxml handlers. Calls raptor_libxml_xmlStructuredErrorFunc with world and always NULL locator. (raptor_libxml_xmlStructuredError_handler_parsing): Added to take structured errors from serror SAX handler. Calls raptor_libxml_xmlStructuredErrorFunc with any world and locator found. * src/raptor_general.c, src/raptor_internal.h, src/raptor_libxml.c: raptor_log_error no longer needs/uses error hander/data args (raptor_log_error): Remove args and pick handler/data from work error handlers. (raptor_log_error_varags): Just call raptor_log_error and no longer pick error handler/data here. * src/raptor.h, src/raptor_general.c, src/raptor_parse.c, utils/rapper.c, utils/rdfdiff.c: Move error-handler setting functions to methods of raptor_world (raptor_world_set_fatal_error_handler): Renamed from raptor_set_fatal_error_handler from parser class. (raptor_world_set_error_handler): Renamed from raptor_set_error_handler from parser class. (raptor_world_set_warning_handler): Renamed from raptor_set_warning_handler from parser class. Updated rapper.c and rdfdiff.c to use new names and calling convention. * src/raptor_general.c, src/raptor_internal.h, src/raptor_libxml.c, src/raptor_parse.c, src/raptor_sax2.c, src/raptor_www.c: raptor_log_error_varargs no longer needs/users error handler/data args (raptor_log_error_varargs): Remove args and pick handler and handler data from world error_handlers. Update all callers of above. * src/raptor_www_libxml.c: (raptor_www_libxml_init, raptor_www_libxml_free): Remove error_handlers code. * src/raptor_libxml.c, src/raptor_sax2.c: Move libxml init/free code to raptor_libxml_init and raptor_libxml_finish (raptor_libxml_init): Add xmlInitParser call. (raptor_libxml_finish): Add xmlCleanupParser call. (raptor_sax2_init): Remove xmlInitParser call. (raptor_sax2_finish): Remove xmlCleanupParser call. * src/raptor_grddl.c: Remove use of xmlSetStructuredErrorFunc from GRDDL parser. (raptor_grddl_parse_chunk): Remove call to xmlSetStructuredErrorFunc which is now done in raptor_libxml_init, once per-library. * src/raptor_internal.h, src/raptor_libxml.c: Removed raptor_libxml_sax_init_error_handlers - no users remain. (raptor_libxml_sax_init_error_handlers): Deleted and merged back into raptor_libxml_sax_init * src/raptor_grddl.c: GRDDL parser does not need or use libxml2 sax object. struct raptor_grddl_parser_context_s loses sax field. (raptor_grddl_parse_init_common): Remove call to raptor_libxml_sax_init_error_handlers. * src/raptor_grddl.c: GRDDL parser does not need to create a raptor_sax2 for error handlers. struct raptor_grddl_parser_context_s loses sax2 field. (raptor_grddl_parse_init_common, raptor_grddl_parse_terminate): Do not init / free sax2. * src/raptor_general.c, src/raptor_grddl.c, src/raptor_internal.h, src/raptor_libxml.c, src/raptor_sax2.c: Make libxml error handling save/restore happen once in world struct raptor_sax2_s loses saved_structured_error_context, saved_structured_error_handler, saved_generic_error_context and saved_generic_error_handler struct raptor_world_s gains above fields. (raptor_libxml_init, raptor_libxml_finish): Added to capture the save/restore of xmlSetStructuredErrorFunc and xmlSetGenericErrorFunc context and handlers. (raptor_world_open, raptor_free_world): Call raptor_libxml_init and raptor_libxml_finish. (raptor_libxml_sax_init_error_handlers): Renamed from raptor_libxml_init_sax_error_handlers. (raptor_libxml_sax_init): libxml setup specific to a SAX setup (raptor_grddl_parse_init_common): Use above. (raptor_new_sax2): Delete libxml init code. (raptor_sax2_parse_start): Delete xmlSetStructuredErrorFunc call and use raptor_libxml_sax_init. * src/raptor_grddl.c: (raptor_grddl_parse_init_common): Code style. 2010-01-07 Dave Beckett * librdfa/rdfa.c, librdfa/rdfa.h, src/raptor.h, src/raptor_grddl.c, src/raptor_internal.h, src/raptor_librdfa.c, src/raptor_libxml.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_sax2.c: Alter raptor_new_sax2() to take world and locator not error_handlers. struct raptor_sax2_s loses error_handlers field. (raptor_new_sax2): Change to add world and locator at start; store them and forget about error_handlers. (raptor_sax2_simple_error, raptor_sax2_parse_chunk, raptor_sax2_start_element): Take error handlers from world, not sax2. (raptor_grddl_parse_init_common, raptor_librdfa_parse_start, raptor_rdfxml_parse_init, raptor_rss_parse_init): Update to new raptor_new_sax2 calling convention. (raptor_libxml_warning, raptor_libxml_error_common, raptor_libxml_validation_warning): Call error handlers under world rather than in sax2 error_handlers object. (raptor_libxml_xmlStructuredErrorFunc): Find error handlers via world. struct rdfacontext [in librdfa] replaces error_handlers with world and locator fields for use in calling raptor_new_sax2() (rdfa_create_new_element_context) [in librdfa]: no need to copy error_handlers. (rdfa_parse_start) [in librdfa] use stored world and locator. * src/raptor.h: Removed prototype for raptor_www_set_error_handler * src/raptor_general.c, src/raptor_grddl.c, src/raptor_internal.h, src/raptor_librdfa.c, src/raptor_parse.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_www.c: Moved raptor_error_handlers to one instance in raptor_world. structs raptor_parser_s and raptor_www_s lose error_handlers field. struct raptor_world_s gains error_handlers field and new internal_ignore_errors flag to temporarily disable errors. (raptor_new_world): Initialise error handlers structure; this is now the only place in the library this is done the public function raptor_error_handlers_init_v2() Consequently raptor_error_handlers_init_v2() could be moved internal and the raptor_error_handlers structure made just fields in raptor_world rather than a public structure that is hard to version. (raptor_world_internal_set_ignore_errors): Added internal function to disable invoking all error handlers when set. Used in the GRDDL parser and when WWW-fetching in some cases to ignore parse/404 errors. (raptor_log_error_to_handlers, raptor_log_error_varargs, raptor_log_error): Respect the ignore errors flag. (raptor_grddl_discard_message): Deleted. (raptor_grddl_fetch_uri): No longer uses above function but instead calls raptor_world_internal_set_ignore_errors() before and after the WWW fetch. (raptor_grddl_run_recursive): Also no longer sets error handlers to ignore errors and uses raptor_world_internal_set_ignore_errors before and after running an internal parser. (raptor_new_parser_v2): Do not init error_handlers field, just set locator. (raptor_www_set_error_handler): Deleted; not necessary since the error_handlers is part of raptor_world not in raptor_www. (raptor_parse_uri_with_connection): Removed call to raptor_www_set_error_handler. (raptor_parser_copy_user_state): Do not copy removed error_handlers field. (raptor_www_new_with_connection_v2): Do not init error_handlers field. * src/raptor_parse.c: (raptor_parser_copy_user_state): Code style for assignments. * src/raptor_internal.h: Delete unused field from raptor_parser_s * src/raptor_abbrev.c, src/raptor_internal.h: Remove unused ordinal code from raptor_abbrev_node raptor_abbrev_node: lose ordinal union part. (raptor_abbrev_subject_add_list_element): Deleted. * src/raptor.h: Remove RAPTOR_WORLD_DECLARED * src/raptor_internal.h: Remove an old RAPTOR_DISABLE_V1-protected prototype. 2010-01-06 Dave Beckett * src/raptor.h: Break raptor_error_handlers struct ABI moving handlers array to end. Remove V2 API fixmes near this; also allows new log levels to be added later. * src/raptor_internal.h: Remove unused static_usage field from raptor_world * src/ntriples_parse.c: Replace raptor_ntriples_term_type with raptor_term_type (raptor_ntriples_generate_statement): Change types of args. Just assign term types to statement types. (raptor_ntriples_parse_line): Declare array of 3 term types. * src/Makefile.am: remove n3 tests * configure.ac, src/Makefile.am, src/n3_common.h, src/n3_lexer.l, src/n3_parser.y, src/turtle_parser.y: Remove experimental N3 flex/bison parser - let turtle parser handle it This code was never in production/released code and will never be since the turtle parser is likely to be updated and rewritten. * src/n3_parser.y, src/ntriples_parse.c, src/raptor.h, src/raptor_abbrev.c, src/raptor_grddl.c, src/raptor_identifier.c, src/raptor_internal.h, src/raptor_librdfa.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_simple.c, src/raptor_serialize_turtle.c, src/raptor_statement.c, src/raptor_xsd.c, src/turtle_parser.y, utils/rapper.c, utils/rdfdiff.c: Rename raptor_identifier_type enum and values to raptor_term_type The enum values changed: from RAPTOR_IDENTIFIER_TYPE_RESOURCE to RAPTOR_TERM_TYPE_URI, from RAPTOR_IDENTIFIER_TYPE_ANONYMOUS to RAPTOR_TERM_TYPE_BLANK, from RAPTOR_IDENTIFIER_TYPE_LITERAL to RAPTOR_TERM_TYPE_LITERAL and from RAPTOR_IDENTIFIER_TYPE_UNKNOWN to RAPTOR_TERM_TYPE_UNKNOWN. * librdfa/iri.c: fix warning: cast from pointer to integer of different size (rdfa_iri_get_base): Do pointer calculations then cast result to unsigned int. * src/raptor.h: Remove RAPTOR_V2_AVAILABLE - not needed * configure.ac: Remove -DRAPTOR_V2_EXPERIMENTAL=1 not needed anymore * src/raptor.h, src/raptor_serialize.c: raptor_serialize_start replaced by raptor_serialize_start_to_iostream (raptor_serialize_start): Removed deprecated function replaced by correctly named raptor_serialize_start_to_iostream. * src/ntriples_parse.c, src/raptor.h: Removed raptor_ntriples_term_type from public api. Moved raptor_ntriples_term_type to ntriples_parse.c module only. It could be replaced by a more general raptor_term_type in future when it gets added. * src/raptor.h, src/raptor_abbrev.c, src/raptor_identifier.c, src/raptor_librdfa.c, src/raptor_rdfxml.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_simple.c, src/raptor_serialize_turtle.c, src/raptor_statement.c, utils/rdfdiff.c: Remove RAPTOR_IDENTIFIER_TYPE_XML_LITERAL This was used for rdf:parseType="Literal" object literals internally but publically always is turned into RAPTOR_IDENTIFIER_TYPE_LITERAL. raptor_identifier_type loses RAPTOR_IDENTIFIER_TYPE_XML_LITERAL value. Removed all code for this which mostly was deleting switch cases but also deletes some functions from the Turtle and RDF/XML-abbrev serializers. (raptor_rdfxmla_emit_xml_literal, raptor_turtle_emit_xml_literal): Deleted. * src/raptor.h, src/raptor_abbrev.c, src/raptor_identifier.c, src/raptor_rdfxml.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_rdfxml.c src/raptor_serialize_rdfxmla.c , src/raptor_serialize_rss.c, src/raptor_serialize_simple.c, src/raptor_serialize_turtle.c, src/raptor_statement.c, utils/rdfdiff.c: raptor_identifier_type loses the RAPTOR_IDENTIFIER_TYPE_ORDINAL value. raptor_identifier loses ordinal field. Consequent removal of RAPTOR_IDENTIFIER_TYPE_ORDINAL from cases especially handling predicates. (raptor_rdfxml_end_element_grammar, raptor_rdfxml_generate_statement, raptor_rdfxml_process_property_attributes, raptor_rdfxml_serialize_statement): Most changes were made here to generate a URI instead of the ordinal integers from the various rdf:li element forms. Multiple serializers are now simpler in not having to check for predicate (or even subject/object) ordinals. Several if ordinal {ordinal handling } .. else {uri handling} were removed. rdfdiff lost several checks for ordinal/resource alternatives. (rdfdiff_ordinal_equals_resource): Deleted. * utils/rdfdiff.c: Remove checks for RAPTOR_IDENTIFIER_TYPE_PREDICATE comparison with ordinal for equality. * src/raptor.h, src/raptor_abbrev.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_turtle.c, src/raptor_statement.c: Removed RAPTOR_IDENTIFIER_TYPE_PREDICATE raptor_identifier_type loses RAPTOR_IDENTIFIER_TYPE_PREDICATE which has been a synonym for RAPTOR_IDENTIFIER_TYPE_RESOURCE for some time. Update code to remove from switch()s and conditions. * src/n3_parser.y, src/raptor.h, src/raptor_identifier.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_serialize_rss.c, src/raptor_xsd.c, src/turtle_parser.y: Deleted raptor_uri_source enum and removed from raptor_identifier. Only in RDF/XML parser and not used for anything public. (raptor_new_identifier_v2): Delete uri_source arg. (raptor_copy_identifier, raptor_set_identifier_uri, raptor_set_identifier_id): Remove assignments to uri_source field. (raptor_rdfxml_generate_statement): Remove 3 uri_source args. (raptor_rss10_emit_item): Remove assignment to uri_source field. Change all calls to raptor_new_identifier_v2() and raptor_rdfxml_generate_statement() in the RDF/XML parser. * src/n3_parser.y, src/ntriples_parse.c, src/raptor.h, src/raptor_grddl.c, src/raptor_librdfa.c, src/raptor_rdfxml.c, src/raptor_rss.c, src/raptor_rss_common.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_simple.c, src/raptor_serialize_turtle.c, src/raptor_statement.c, src/turtle_parser.y, utils/rapper.c, utils/rdfdiff.c: Make a raptor_statement into a 3-tuple of raptor_term. This is a short term stage before merging raptor_term with raptor_identifier and getting rid of raptor_triple (in N3 and Turtle parsers). Also want to make the 3 raptor_terms in raptor_statement as object references not statics, and add a graph term. raptor_identifier_type should be raptor_term_type and have less values: kill ordinal and predicate types. Lots of structure name field changes everywhere statement is used. 2010-01-05 Dave Beckett * src/raptor.h, src/raptor_abbrev.c, src/raptor_internal.h, src/raptor_parse.c, src/raptor_rss_common.c, src/raptor_serialize_json.c, src/raptor_serialize_rss.c, src/raptor_statement.c, utils/rdfdiff.c: Add raptor_world field to raptor_statement, remove raptor_statement_v2. raptor_statment gains a raptor_world* field. raptor_statement_v2 typedef is deleted. (raptor_print_statement_as_ntriples_common, raptor_statement_compare_common): Deleted these internal helper functions. (raptor_print_statement_v2): Renamed to raptor_print_statement (raptor_print_statement_as_ntriples_v2): Renamed to raptor_print_statement_as_ntriples. (raptor_statement_part_as_counted_string_v2): Renamed to raptor_statement_part_as_counted_string. (raptor_statement_part_as_string_v2): Renamed to raptor_statement_part_as_string. (raptor_statement_compare_v2): Renamed to raptor_statement_compare. (raptor_statement_copy): Loses world arg. (raptor_statement_copy_v2, raptor_statement_copy_v2_from_v1): Deleted. (raptor_free_statement): Loses world arg. (raptor_free_statement_v2, raptor_print_statement_v1): Deleted (raptor_statement_init): Added to initialise statically a allocated statement. (raptor_new_parser_v2): Init static statement with raptor_statement_init(). 2010-01-05 Dave Beckett * src/ntriples_parse.c, src/raptor.h, src/raptor_iostream.c, src/raptor_turtle_writer.c, src/raptor_uri.c: Removed all V1 deprecated functions and structures. (raptor_ntriples_term_as_string, raptor_ntriples_string_as_utf8_string, raptor_new_iostream_from_handler, raptor_iostream_get_bytes_written_count, raptor_iostream_write_string_turtle, raptor_uri_is_file_uri): Deprecated functions deleted raptor_ntriples_parser and raptor_iostream_handler: Deprecated typedefs removed. * src/raptor.h: Remove RAPTOR_V2_AVAILABLE blocks - V2 is always available * src/raptor.h, src/raptor_feature.c, src/raptor_general.c, src/raptor_identifier.c, src/raptor_iostream.c, src/raptor_locator.c, src/raptor_namespace.c, src/raptor_parse.c, src/raptor_qname.c, src/raptor_sequence.c, src/raptor_serialize.c, src/raptor_serialize_ntriples.c, src/raptor_statement.c, src/raptor_uri.c, src/raptor_www.c, src/raptor_xml_writer.c: Remove all raptor v1 APIs with v2 replacements. Remove RAPTOR_V2_EXPERIMENTAL - no longer experimental. Remove RAPTOR_V1 - not needed. Remove all blocks that were protected by RAPTOR_DISABLE_V1 including structs, prototypes and V1 functions. * src/raptor_parse.c: Fix static accept_header string length so result is always NUL terminated (raptor_parser_get_accept_header): The static last-resource accept_header static string is 11 chars not 9. Ensure buffer is big enough so that the NUL gets copied by strncpy(). * tests/turtle/ex-38-turtle.out: Restore hack out file ex-38-turtle.out * tests/.gitignore, tests/rdfxml/ex-38-rdfxmla.out: Restore hack out file ex-38-rdfxmla.out * src/n3_lexer.l, src/n3_parser.y, src/ntriples_parse.c, src/parsedate.y, src/raptor.h, src/raptor_abbrev.c, src/raptor_avltree.c, src/raptor_expat.c, src/raptor_feature.c, src/raptor_general.c, src/raptor_grddl.c, src/raptor_guess.c, src/raptor_identifier.c, src/raptor_iostream.c, src/raptor_json_writer.c, src/raptor_librdfa.c, src/raptor_libxml.c, src/raptor_locator.c, src/raptor_memstr.c, src/raptor_namespace.c, src/raptor_nfc.c, src/raptor_nfc_test.c, src/raptor_parse.c, src/raptor_qname.c, src/raptor_rdfxml.c, src/raptor_rfc2396.c, src/raptor_rss.c, src/raptor_rss.h, src/raptor_rss_common.c, src/raptor_sax2.c, src/raptor_sequence.c, src/raptor_serialize.c, src/raptor_serialize_dot.c, src/raptor_serialize_json.c, src/raptor_serialize_ntriples.c, src/raptor_serialize_rdfxml.c, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_rss.c, src/raptor_serialize_simple.c, src/raptor_serialize_turtle.c, src/raptor_set.c, src/raptor_statement.c, src/raptor_stringbuffer.c, src/raptor_turtle_writer.c, src/raptor_uri.c, src/raptor_utf8.c, src/raptor_www.c, src/raptor_www_curl.c, src/raptor_www_libfetch.c, src/raptor_www_libxml.c, src/raptor_www_test.c, src/raptor_xml.c, src/raptor_xml_writer.c, src/raptor_xsd.c, src/snprintf.c, src/strcasecmp.c, src/turtle_common.c, src/turtle_lexer.l, src/turtle_parser.y, utils/getopt.c, utils/rapper.c, utils/rdfdiff.c: Code style - whitespace around assignment and comparison ops 2010-01-02 Dave Beckett * Use AM_SILENT_RULES and move autotools helper files to build/ dir Update autogen.sh with latest version; dependent on automake 1.11 and it's dependencies to get AM_SILENT_RULES. Update configure.ac to invoke AM_SILENT_RULES defaulting to 'no'. * Remove RCS ID * Update another .gitignore * Add .gitignore to replace SVN properties svn:ignore 2009-11-29 Dave Beckett * Merge from raptor 1.4.20 release SVNr15728 to trunk 2009-11-28 Dave Beckett * Merge RDFa changes from Raptor branch raptor1 (r15719) * Snapshotted raptor_1_4_20 for 1.4.20 release (SVN 15727) * tests/rdfa/0172.out, tests/rdfa/0172.xhtml, tests/rdfa/0173.out, tests/rdfa/0173.xhtml, tests/rdfa/0174.out, tests/rdfa/0174.xhtml, tests/rdfa/Makefile.am: Added unapproved RDFa tests from librdfa upstream test suite: 0172: empty datatype attribute 0173: empty xml:lang attribute on plain literal 0174: single character namespace prefixes 0172 and 0173 test Issue#0000306 http://bugs.librdf.org/mantis/view.php?id=306 0174 tests Issue#0000310 http://bugs.librdf.org/mantis/view.php?id=310 * librdfa/rdfa.c: (start_element): For raptor, turn a NULL language to "" which is what librdfa expects. * librdfa/curie.c, librdfa/language.c, librdfa/rdfa.c, librdfa/triple.c: Apply librdfa GIT commits up to 5823cb8bffe50fb1b46960f237f7274388cb5f93 commit 5823cb8bffe50fb1b46960f237f7274388cb5f93 Fixed @property CURIE processing unit tests to match code updates. commit a85d8e9e2e3d28452ad03d1ca64fdd98eed1c180 Fixed CURIE processing bug for TC 174. The bug caused single-character prefixed CURIEs to be processed incorrectly. Also fixed @property processing to not use reserved words specified in a very early version of the RDFa spec. Fixed a small bug related to processing CURIEs that have ':' as the second character in the URI string. commit f384b28bf916a2e0c7a7dbc99101a1a44c301965 Fixed plain literal bug uncovered by TC 172. This bug caused plain literals to not be generated when datatype="" was specified and when the content inside the element contained XHTML child nodes. * librdfa/language.c: Apply librdfa GIT commit 9960791ee4beca8e52e5d3a9766aba73d33f0063 Fixed bug that caused unreviewed TC 173 to partially fail. The currently active language, specified via xml:lang, was not being cleared when xml:lang="" was specified. Related to Redland Issue#0000306 http://bugs.librdf.org/mantis/view.php?id=306 2009-11-25 Dave Beckett * librdfa/rdfa.c, src/raptor_abbrev.c: Casts for C++ 2009-11-25 Lauri Aalto * src/raptor_abbrev.c: (raptor_abbrev_subject_lookup): Free node if raptor_new_abbrev_subject() ownership transfer did not succeed. * src/raptor_abbrev.c: (raptor_abbrev_subject_find): Check for failures. * src/raptor_serialize_turtle.c: (raptor_turtle_emit): Free iterators on before returning an error. * src/raptor_abbrev.c, src/raptor_avltree.c: (raptor_avltree_sprout): Always take ownership of passed in node data - free it if malloc fails. Make sure free_fn is not null before calling it. (raptor_abbrev_node_lookup,raptor_abbrev_subject_add_property): raptor_avltree_add() now always takes ownership of added nodes. * src/raptor_internal.h, src/raptor_serialize_rdfxmla.c: fixed indent tabs -> spaces * src/raptor_abbrev.c: (raptor_abbrev_subject_invalidate): Return value expected 2009-11-24 Dave Beckett * many files: Merge from raptor branch raptor1 2009-11-23 Dave Beckett * src/raptor_abbrev.c, src/raptor_internal.h, src/raptor_serialize_rdfxmla.c, src/raptor_serialize_turtle.c, tests/feeds/test01-result.ttl, tests/feeds/test02-result.ttl, tests/feeds/test03-result.ttl, tests/feeds/test04-result.ttl, tests/rdfxml/Makefile.am, tests/turtle/Makefile.am: Apply SVN r15690 to raptor head 2009-11-15 Dave Beckett * utils/rdfdiff.c: Apply SVN 15667 to raptor trunk 2009-10-10 Dave Beckett * src/raptor_grddl.c: (raptor_grddl_run_grddl_transform_uri): Fix XML parser context resource leak if raptor_grddl_fetch_uri fails. * src/raptor_grddl.c: (raptor_grddl_parse_chunk): Save and restore error handlers properly - restore loop was broken. Remove memcpy for clarity in copying. 2009-08-25 Dave Beckett * autogen.sh: Update common autogen.sh 2009-08-21 Lauri Aalto * src/raptor_www.c: (raptor_www_set_http_cache_control): Avoid dangling pointers 2009-08-03 Lauri Aalto * src/raptor_internal.h: Fixed comment 2009-07-27 Dave Beckett * src/turtle_parser.y (main): Terminate parser * src/turtle_lexer.l (main): Init world and namespaces so turtle lexing test does not die. * src/raptor_parse.c (raptor_parse_file): Simplify, no need for O_LARGEFILES flag and open/fdopen sequence. * configure.ac: Check for fcntl.h and AC_SYS_LARGEFILE to get large file checks * src/raptor_parse.c: (raptor_parse_file): Use open(2) and apply O_LARGEFILE option to allow 32bit systems to read multi-gigabyte files. 2009-07-23 Dave Beckett * Changelog entries above this are on BRANCH raptor1 * Create raptor 1 branch (SVN r15287) 2009-07-19 Dave Beckett * Tagged for raptor 1.4.19 (SVN r15280) * Snapshotted raptor_1_4_19 for 1.4.19 release (SVN 15279) * src/raptor_serialize_rss.c: (raptor_rss10_emit_item): Handle C++'s picky casting between enum types - that are really integers - to ints. * src/raptor_rss_common.c: static data raptor_rss_fields_info: semantic data errors found by C++'s more strict aliasing. - Fix author item class. - Set URI flag value for atom:schema and atom:href * src/raptor_namespace.c: (raptor_namespaces_init_v2, raptor_namespace_stack_to_array): Casts for C++ in returns from RAPTOR_CALLOC for namespace stacks * src/raptor_grddl.c: (raptor_grddl_run_grddl_transform_doc): Cast for C++ for arg to xsltSetCtxtSecurityPrefs. * src/raptor_rfc2396.c: (raptor_uri_resolve_uri_reference): Use memmove for overlapping copy, not memcpy. [valgrind] * src/raptor_serialize_json.c: raptor_json_context - use raptor_statement_v2 for last statement. (raptor_json_serialize_avltree_visit): Make V1 statements for the stored V2 statements. Improve fatal error messages. * src/raptor_statement.c: (raptor_free_statement): Restore actually freeing statement memory - resource leak. * configure.ac: libtool version change. was: current 2 revision 0 age 1 rules steps: 3. source code changed: revision++ = 3 4. interfaces added and changed: current++ = 3, revision = 0 5. interfaces added: age++ = 2 6. interfaces removed: no now: current 3 revision 0 age 2 * docs/libraptor.3: 1.4.19 changes * src/raptor_turtle_writer.c: (raptor_turtle_writer_literal): More silly games to prevent stupid gcc warning: ignoring return value of 'strtol', declared with attribute warn_unused_result so use the value and then discard it in a stupid expression. Ditto strtod. * src/raptor_uri.c: (raptor_uri_print_v2): Silly games to prevent stupid gcc warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result but right now there is nowhere to return the error too. * src/raptor_rss.c: (raptor_rss_uplift_fields): Comment out variables used only in debugging. * src/raptor_turtle_writer.c: (raptor_turtle_writer_literal): Ignore unused return values from strtol and strtod used for checking. * utils/rapper.c: Revert r15252 and reapply r14951 on rapper to use experimental V2 APIs again * configure.ac, src/Makefile.am, src/raptor_internal.h, src/raptor_v2.h: Remove raptor_v2.h again - no need to dup this for an internal build. Instead use -DRAPTOR_V2_EXPERIMENTAL when building * src/Makefile.am, src/raptor.h, src/raptor_internal.h, src/raptor_v2.h: Added raptor_v2.h again - internal only and put scary warning about V2 things into raptor.h * src/raptor.h: use -DRAPTOR_V2_EXPERIMENTAL to enable the V2 structs and functions * src/Makefile.am: Remove raptor_v2.h - bad idea for now * src/Makefile.am, src/raptor.h, src/raptor_internal.h, src/raptor_v2.h: Move public V2 structs and prototypes to internal raptor_v2.h * utils/rapper.c: Revert r14951 on rapper to use V1 APIs only for now * COPYING, COPYING.LIB: Add specific versions of GPL (2) and LGPL (2.1) to source control 2009-07-16 Dave Beckett * docs/raptor-docs.xml, docs/raptor-sections.txt, docs/tmpl/section-general.sgml, docs/tmpl/section-parser.sgml, docs/tmpl/section-serializer.sgml, docs/tmpl/section-world.sgml: Add new functions. Add section world for init/cleanup and V2 world stuff * src/raptor.h, src/raptor_grddl.c, src/raptor_sequence.c: (raptor_new_sequence_v2): Renamed from raptor_new_sequence_with_handler_context * tests/rdfxml: Ignore automake outputs * tests/ntriples: Ignore automake outputs * tests/feeds: Ignore ttl outputs * tests/feeds/Makefile.am: (check-serialize-atom): Make test use generated file from build dir. * utils/rapper.c: calloc another feature_value * tests/feeds/Makefile.am: set result=1 on failures * utils/rapper.c: calloc feature_value so that fields are initialised to 0/NULL * Raptor passes 'make check' test suite as of SVN r15234 * src/raptor_serialize_rss.c: Guess whether on input is xml or not based on if it starts with < * tests/feeds/test02-result.atom, tests/feeds/test02-result.ttl, tests/feeds/test02.rdf: Add
...
once to descs * tests/feeds/test02.rdf: use
...
in descriptions * tests/feeds/test03-result.atom: fix relative atom:link @href in expected output * src/raptor_serialize_rss.c: (raptor_rss10_emit_atom_feed): Output relative URIs for * src/raptor_serialize_rss.c: Extra/tidy debug messages 2009-07-15 Dave Beckett * src/raptor_serialize_rss.c: (raptor_rss10_serialize_statement, raptor_rss10_build_items): Use raptor_rss_item_set_uri to always assign item identifier and uri fields correctly. * src/raptor_rss.h, src/raptor_rss_common.c: (raptor_rss_item_set_uri): Added to set the item identifier fields plus the item->uri field correctly. 2009-07-13 Dave Beckett * autogen.sh: Add SHAVE support - disabled by default and enabled for maintainers. libtool V2 needed Add -Wall to automake args Reorder args to remove dups Find config_aux_dir and config_macro_dir and use them for copying in config.{sub,guess} and adjusting aclocal args respectively. 2009-06-21 Dave Beckett * src/raptor_serialize_rss.c: (raptor_rss10_move_statements, raptor_rss10_store_statement): When mapping fields rss to atom, do not copy into a field that has a value already. 2009-06-13 Dave Beckett * src/raptor_parse.c: (raptor_get_name): Use factory method if present. * src/raptor_guess.c: (raptor_guess_guess_get_name): Implement get_name by passing it on to internal guessed parser. (raptor_guess_parser_register_factory): Register get_name * src/raptor_internal.h: struct raptor_parser_factory_s gains get_name method * src/raptor_guess.c: (raptor_guess_parse_chunk): docs * src/raptor_grddl.c: (raptor_grddl_run_grddl_transform_doc): Init userCtxt *after* sheet is defined as not NULL. GRDDL transforms now work again. * utils/rapper.c: (main): If counting, do not use a serializer at all. 2009-05-16 Dave Beckett * src/raptor_serialize_rss.c: autodocs * src/raptor_rss.c: (raptor_rss_insert_rss_link): Added to add rss:link from atom:id or (raptor_rss_insert_identifiers): Call above for channel and items. * tests/feeds/test04-result.ttl: items and rss:links point to url not tag: uri * tests/feeds/test05-result.ttl: Moved dc:date to top * tests/feeds/test02-result.atom, tests/feeds/test03-result.atom: Added more atom:entrymap values 2009-05-12 Dave Beckett * src/raptor_rss.c: (raptor_rss_insert_identifiers): Add an rss:link with /atom:link[@rel="self"]/@href string contents if not already present. * src/raptor_rss.c: (raptor_rss_emit_block): Add resource parameter for the subject of the triples to set. Do not try to play save/restore games with the statement.subject (raptor_rss_emit_item): Pass in item identifier to above. 2009-05-11 Dave Beckett * src/raptor_rss.c: (raptor_rss_emit_item): Set the atom author output node type by a quick hack to alter the URIs. 2009-05-10 Dave Beckett * src/raptor_rss.c: raptor_rss_uplift_map merged into raptor_atom_to_rss (raptor_rss_copy_field): Added to do field copy/conversion with pair (raptor_rss_uplift_fields): Iterate over list of conversions and call raptor_rss_copy_field. * src/raptor_rss_common.c: (raptor_rss_field_conversion_date_uplift): Added for converting from junk date to ISO dates. (raptor_rss_date_uplift): Deleted, replaced by above. raptor_atom_to_rss: gains fields from raptor_rss_uplift_map and uses above conversion function to fix rss:pubdate to dc:date * src/raptor_rss.h: Add raptor_rss_field_conversion for converting field values and add to raptor_field_pair * tests/feeds/test05-result.ttl: Add dc:date, atom:id, atom:title fields 2009-05-09 Dave Beckett * tests/feeds/test04-result.ttl: add both rss and renamed atom fields rather than just one: - dc:date & atom:updated - rss:title & atom:title - atom:id - atom:summary * src/raptor_rss.c: (raptor_rss_start_element_handler): Remove renaming of atom terms to rss (raptor_rss_uplift_fields): Add copying of atom to rss terms, not renaming. * src/raptor_rss_common.c: atom:author is a container, not a block raptor_rss_items_info - set value type to RAPTOR_RSS_ITEM_CONTAINER raptor_rss_fields_info - set class to RAPTOR_RSS_RDF_ATOM_AUTHOR_CLASS raptor_rss_block_fields_info - remove author from list of blocks * tests/feeds/test04.atom: Restore xhtml namespace to div 2009-05-01 Dave Beckett * docs/tmpl/section-general.sgml: update tmpls * tests/turtle/Makefile.am, tests/turtle/test-32-out.ttl, tests/turtle/test-32.ttl: Added test-32 based on test for http://bugs.librdf.org/mantis/view.php?id=274 * src/raptor_serialize_turtle.c: (raptor_turtle_emit_subject_collection_items): Notice when a new subject happens and reset property iterator. (raptor_turtle_emit_subject): Look for trees with 2 or more properties to be a potential collection. Fixes Issue#0000277 http://bugs.librdf.org/mantis/view.php?id=277 * src/raptor_parse.c: (raptor_get_feature): Return raw parser int feature. Fixes Issue#0000288 http://bugs.librdf.org/mantis/view.php?id=288 * src/raptor_feature.c: raptor_features_list use bit 16 to record that an int is not a boolean flag. Should refactor these flags for Raptor V2 and alter the raptor_feature_value_type() return. 2009-04-30 Dave Beckett * tests/feeds/Makefile.am: Add atom to turtle expected results to EXPECTED_TTLS * tests/turtle/Makefile.am: Add $(TURTLE_SERIALIZE_RDF_FILES) to dist * tests/turtle/Makefile.am: More fixes for make distcheck testing * tests/turtle/Makefile.am: (check-turtle-parse-ntriples, check-turtle-serialize-rdf): Get filenames from invoking Makefiles in nearby build-dirs not src-dirs, which won't have makefiles in 'make distcheck' mode * tests/ntriples/Makefile.am: Revert r15175 * tests/ntriples/Makefile.am: Make print-nt-test-files work in 'make distcheck' mode * src/raptor_sax2.c: (raptor_sax2_parse_chunk): Make undeclared entity not fatal in parsing - errors are still thrown by the error callback, but parsing continues. Makes http://bugs.librdf.org/mantis/view.php?id=303 easier to deal with - primary data gets out when errors are present; when DTDs are not loaded. * src/raptor_libxml.c: (raptor_libxml_xmlStructuredErrorFunc): Hunt for error_handlers in parser context user data too. * src/raptor_sax2.c: (raptor_new_sax2): Save correct libxml error handlers 2009-04-24 Dave Beckett * src/raptor.h: Revert raptor_error_handlers ABI change for now 2009-04-23 Dave Beckett * src/raptor.h, src/raptor_general.c, src/raptor_internal.h, src/raptor_sax2.c: Protect calls to xmlSetStructuredErrorFunc() and xmlSetGenericErrorFunc() by libxml flags and if enabled, save and restore the previous values. Added raptor_set_libxml_flags() (raptor V1) and raptor_world_set_libxml_flags() (raptor V2) to set these flags. Flags are defined in new enum raptor_libxml_flags. Fixes Issue#000299 http://bugs.librdf.org/mantis/view.php?id=299 * docs/tmpl/section-feature.sgml, src/raptor.h, src/raptor_general.c, src/raptor_grddl.c, src/raptor_internal.h, src/raptor_parse.c: Use context-specific libslt security configuration to avoid calling xsltSetDefaultSecurityPrefs(). Also allow user to set the policy for raptor globally with new API function raptor_set_libxslt_security_preferences() (and in Raptor V2 with raptor_world_set_libxslt_security_preferences method on the world class) Fixes Isssue#0000296 http://bugs.librdf.org/mantis/view.php?id=296 2009-04-21 Dave Beckett * src/raptor_libxml.c: (raptor_libxml_init, raptor_libxml_init_sax_error_handlers): Init per-context structured error handlers to go to raptor_libxml_xmlStructuredErrorFunc * configure.ac: Use RAPTOR_LDFLAGS for rest of internally linked libs for libm, curl, fetch, libxml, expat, libxslt, libinn (for parsedate) * configure.ac, raptor.pc.in, src/Makefile.am: Introduce RAPTOR_LDFLAGS to replace raw LIBS as the internal set of arguments to use in linking. * configure.ac, src/Makefile.am, utils/Makefile.am: Add --enable-debug configure option. use AM_CPPFLAGS for defines and include options Remove unused STANDARD_CFLAGS 2009-03-31 Lauri Aalto * src/raptor_namespace.c: (raptor_new_namespaces_v2): Lowmem fix. Use calloc instead of malloc to have struct members initialized to zero in case raptor_namespaces_init_v2() fails and need to free a partially initialized nstack. 2009-03-30 Dave Beckett * configure.ac, src/raptor_serialize_rss.c: Test for gettimeofday. (raptor_rss10_ensure_atom_feed_valid): Use condition to avoid calling it on windows that doesn't have it. Patch from Lou Sakey 2008-07-31 to redland-dev * src/raptor_sax2.c: (raptor_sax2_finish): Call xmlCleanupParser() libxml call last to avoid an access violation on windows. Patch from Lou Sakey 2008-07-31 to redland-dev. * src/raptor_general.c: (raptor_vsnprintf): Windows vsnprintf() portability patch from Lou Sakey. 2009-03-29 Dave Beckett * configure.ac: Substitute ECHO * src/raptor_rss.c: (raptor_rss_start_element_handler): Make namespaces seen in fields after any potential renames, so they will get declared later. (raptor_rss_end_element_handler): End any blocks in all cases - was not happening when there was no cdata. (raptor_rss_emit_block): Only emit block strings that are not NULL. (raptor_rss_emit_connection): Turn predicate ordinals into URIs since the RAPTOR_IDENTIFIER_TYPE_ORDINAL is deprecated (and turtle serialiser does not handle it). (raptor_rss_uplift_fields): Gain rss_parser arg and mark namespaces seen in renames. * src/raptor_rss_common.c: raptor_rss_fields_info - restore rss:link value to string. raptor_rss_block_fields_info - fix clashing offset for atom author name/email fields. 2009-03-28 Dave Beckett * tests/feeds/Makefile.am, tests/feeds/test02-result.atom, tests/feeds/test04-result.ttl, tests/feeds/test04.atom, tests/feeds/test05-result.ttl, tests/feeds/test05.atom: Add test04 and test05 atom parsing to turtle. Update test suite to show errors better and use ECHO macros * tests/feeds/test0[123].rdf:: Rename test0[123].rss to .rdf * tests/turtle/Makefile.am: Use TURTLE_SERIALIZE_RDF_FILES so that ex-62.rdf gets used * tests/turtle/Makefile.am, tests/turtle/test-31-out.ttl, tests/turtle/test-31.ttl: Add tests for serializing rdf:_ properties back to themselves. 2009-03-23 Dave Beckett * tests/feeds/Makefile.am: use conditionals to execute tests in sane order via FEED_TESTS var * tests/feeds/Makefile.am: (check-serialize-atom): Set parser/input base URI for test. * tests/feeds/Makefile.am: notes * tests/feeds/Makefile.am, tests/feeds/test01-result.ttl, tests/feeds/test02-result.ttl, tests/feeds/test03-result.ttl: Add parsing and serializing tests with intermediate turtle results to check * src/raptor.h, src/raptor_feature.c, src/raptor_internal.h, src/raptor_parse.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_serialize_rss.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c: Renamed RAPTOR_FEATURE_ALIAS_DEFAULT_NAMESPACE to RAPTOR_FEATURE_PREFIX_ELEMENTS (prefixElements) and change meaning; it always declares prefix: and default namespace but this option flips whether it core vocab is in the prefixed or default namespace. * src/raptor_serialize_rss.c: (raptor_rss10_build_xml_names): Do not declare or start namespaces with NULL prefix; only the default namespace *may* do that. 2009-03-20 Dave Beckett * tests/feeds/test01-result.atom: fix namespaces * tests/feeds/test01-result.atom, tests/feeds/test02-result.atom, tests/feeds/test03-result.atom: Add namespaces back to all expected results * src/raptor_serialize_rss.c: (raptor_rss10_build_xml_names): Enable turning on/off namespaced elements based on feature_alias_default_namespace 2009-03-19 Dave Beckett * tests/feeds/Makefile.am, tests/feeds/test01-result.atom, tests/feeds/test02-result.atom, tests/feeds/test03-result.atom: Remove -f aliasDefaultNamespace=0 from tests for now, to enable fixing of other things on their own 2009-03-17 Dave Beckett * tests/feeds/Makefile.am: use $(srcdir) before expected * tests/feeds/Makefile.am: report failure diff the right way around: from expected to actual 2009-03-12 Dave Beckett * tests/feeds/test02-result.atom, tests/feeds/test03-result.atom: Fix atom namespaces * tests/feeds/Makefile.am: Set aliasDefaultNamespace=0 * tests/feeds/Makefile.am, tests/feeds/test01-result.atom, tests/feeds/test02-result.atom, tests/feeds/test03-result.atom: Add expected test results, make check works from Makefile alone * tests/feeds/Makefile.am: Fix RAPPER call 2009-03-10 Dave Beckett * tests/feeds/test01.atom, tests/feeds/test02.atom, tests/feeds/test03.atom: Remove atom output - now generated via test * tests/feeds/Makefile.am: fix error in error logging * configure.ac, tests/Makefile.am, tests/feeds, tests/feeds/Makefile.am: automaked tests/feed * tests/feeds/Makefile: Removed, now autogenerated 2009-02-28 Dave Beckett * src/raptor_serialize_rss.c: comments * src/raptor_serialize_rss.c: (raptor_rss10_serialize_statement): Code style, remove if() depth. 2009-02-27 Dave Beckett * src/raptor_rss_common.c: Make itunes:owner container work again. 2009-02-25 Dave Beckett * src/raptor_rss_common.c: fix enclosure class/predicate RDF names * src/raptor_rss.h, src/raptor_rss_common.c: Added RAPTOR_RSS_RDF_ENCLOSURE for enclosure predicate in RDF as well as RAPTOR_RSS_RDF_ENCLOSURE_CLASS for enclosure class in RDF * src/raptor_rss.c: (raptor_rss_start_element_handler): Declare as seen the namespace for a block. * src/raptor_rss.h, src/raptor_rss_common.c: Add RAPTOR_ATOM_LINK block type * src/raptor_rss.c: (raptor_rss_emit_block): Emit type URI from cls field, not predicate. 2009-02-23 Dave Beckett * src/raptor_rss.c: raptor_rss_element loses unused rel field * src/raptor_rss.c: (raptor_rss_start_element_handler): Remove unused element attribute recognition and * src/raptor_rss.c: (raptor_rss_start_element_handler): Set enclosure namespace used if an enclosure block was seen. 2009-02-22 Dave Beckett * src/raptor_rss_common.c: raptor_rss_items_info - add block predicate types raptor_rss_fields_info - make atom:author a block. add atom:Author, atom:Category, atom:label, atom:schema and atom:term raptor_rss_block_fields_info - add new predicates for atom:category block add atom:author block * src/raptor_rss.c: raptor_rss_parser gains current_block field to store current metadata block object. (raptor_rss_start_element_handler): Set current_block. (raptor_rss_end_element_handler): Store any cdata in block field with NULL attribute if there is one. * src/raptor_rss.c: (raptor_rss_start_element_handler): Wildcard element name matches for RSS namespaces * src/raptor_rss.c: (raptor_rss_block_set_field): Added. (raptor_rss_start_element_handler): Use above to set a block attribute value * src/raptor_rss.c: raptor_rss_parser - comment. (raptor_rss_start_element_handler): Use raptor_rss_get_current_item to get item. When checking block attributes, skip NULL attribute names - for element cdata * src/raptor_rss.c: (raptor_rss_emit_block): Code style and skip block fields with no name. (raptor_rss_emit_item): Code style. * src/raptor_rss_common.c: raptor_rss_fields_info modify to make rss:link and rss:docs take URLs * src/raptor_rss.c, src/raptor_rss_common.c, src/raptor_serialize_rss.c: Use RAPTOR_RSS_RDF_ENCLOSURE_CLASS for enclosure class and RAPTOR_RSS_FIELD_ENCLOSURE for predicate * src/raptor_rss.h: RAPTOR_RSS_BLOCKS_SIZE 10 after removing rss container * src/raptor_rss.h, src/raptor_rss_common.c: Add itunes: namespace and itunes:owner container with fields in namespace itunes: author, subtitle, summary, keywords explicit, image, name, block, category and email * src/raptor_rss.h, src/raptor_rss_common.c: raptor_rss_type loses RAPTOR_RSS_CATEGORY type. raptor_rss_block_fields_info loses rss category - just make it a string value * src/raptor_rss.c, src/raptor_rss.h, src/raptor_rss_common.c: raptor_rss_type delete RAPTOR_RSS_UNKNOWN and replace with RAPTOR_RSS_NONE everywhere 2009-02-21 Dave Beckett * src/raptor_rss.h, src/raptor_rss_common.c, src/raptor_serialize_rss.c: raptor_rss_field_info renamed from raptor_rss_info * src/raptor_rss.c, src/raptor_rss.h, src/raptor_rss_common.c, src/raptor_serialize_rss.c: raptor_rss_items_info renamed from raptor_rss_types_info raptor_rss_types_info gains a flags field to distinguish blocks from containers. (raptor_rss_add_container): Use flag to only scan containers, not blocks. (raptor_rss_emit_block): Handle all types of blocks. Use the node type from raptor_rss_types_info to emit the node type. Use the raptor_rss_block_fields_info to emit the predicates for all blocks. 2009-02-20 Dave Beckett * src/raptor_rss.c: (raptor_rss_start_element_handler): Code style. * src/raptor_rss.c: (raptor_rss_insert_identifiers): Tidy to use raptor_set_identifier_uri. Indenting. * src/raptor_rss.c, src/raptor_rss.h, src/raptor_rss_common.c, src/raptor_serialize_rss.c: (raptor_rss_start_element_handler, raptor_rss_insert_identifiers, raptor_rss10_serialize_statement): Use raptor_set_identifier_uri and raptor_set_identifier_id and refactor to use them better. (raptor_rss_block_make_blank_node, raptor_rss_insert_block_identifiers): Deleted. (raptor_rss_item_equals_statement_subject): Added. (raptor_new_rss_block): Add id argument. * src/raptor_identifier.c, src/raptor_internal.h: Added raptor_set_identifier_uri and raptor_set_identifier_id * src/raptor_rss.c, src/raptor_rss.h, src/raptor_rss_common.c, src/raptor_serialize_rss.c: Remove old enclosure core and switch to data-driven raptor_rss_block metadata code. Update copyrights for 2009. typedef raptor_rss_block_fields_info renamed from raptor_rss_block_info and add docs. Renamed field 'attribute' from field_name, attribute_type from field_type. Added rdf predicate info 'field'. raptor_rss_block_fields_info adds predicate info. (raptor_rss_start_element_handler): Read from raptor_rss_block_fields_info. (raptor_rss_insert_block_identifiers): Renamed from raptor_rss_insert_enclosure_identifiers. (raptor_rss_insert_identifiers): Call above with new name. (raptor_rss_emit_block): Use more data tables to emit block. * src/raptor_rss_common.c: Add sentinel to end raptor_rss_blocks_info array * src/raptor_rss.c: (raptor_rss_start_element_handler): Recognise blocks from flags and handle attributes @url, @length and @type - statically for now. * src/raptor_rss.h, src/raptor_rss_common.c: raptor_rss_info gains block flag and block_type to use when a block is found. * src/raptor_rss.c: (raptor_rss_start_element_handler): Fix conditions for recognizing inner containers. * src/raptor_rss.c, src/raptor_rss.h, src/raptor_rss_common.c: Add raptor_rss_block_info to record other metadata blocks configuration: rss enclosues, atom categories, rss category and rss source. Switch raptor_rss_block structure from a list of specific fields to short arrays of urls and strings. (raptor_free_rss_block, raptor_rss_start_element_handler, raptor_rss_insert_enclosure_identifiers, raptor_rss_emit_block): Switch to generic raptor_rss_block URLs, strings 2009-02-20 Lauri Aalto * src/raptor_rss.c: (raptor_rss_emit_block): Compilation fix after function parameter rename 2009-02-19 Dave Beckett * src/raptor_rss.c: (raptor_rss_emit_block): Renamed from raptor_rss_emit_enclosure * src/raptor_rss.h, src/raptor_rss_common.c: Add none raptor node type * src/raptor_rss.c: Code style / whitespace. (raptor_rss_end_element_handler): Use raptor_rss_get_current_item() to get update_item. 2009-02-18 Dave Beckett * src/raptor_rss.c: (raptor_rss_get_current_item): Pull logic out to get item for current type. (raptor_rss_start_element_handler): Fix inner container processing. Look for rdf:about on an item to get item URI there first. Pull out enclosure construction from general field handling. * src/raptor_rss.c: (raptor_rss_start_element_handler): Remove extra code block & outdent. * src/raptor_rss.c: (raptor_rss_promote_namespace_uri): Added for storing namespace change rules. (raptor_rss_start_element_handler): Use above to simplify field search logic. Document how an element matches a field. * src/raptor_rss.c: (raptor_rss_add_container): Add rules about inner containers, setting prev_type if seen and put author element ambiguity rules here. (raptor_rss_start_element_handler): Use above to replace inner container identification code. * src/raptor_rss.c: (raptor_rss_add_container): Added, pulled out of raptor_rss_start_element_handler to include the logic for determining feed type and container from element name. (raptor_rss_start_element_handler): Call above. * src/raptor_rss.c: (raptor_rss_start_element_handler): Comments and tidying control flow when identifying a container for rss_parser->current_type * src/raptor_rss.c: (raptor_rss_block_make_blank_node): Added pulled out of raptor_rss_insert_identifiers (raptor_rss_insert_identifiers): Call above. * src/raptor_rss.c, src/raptor_rss.h, src/raptor_rss_common.c: raptor_rss_block gains rss_type field (raptor_new_rss_block): Take type as param and use to set node_type. (raptor_rss_insert_enclosure_identifiers): Remove node_type init and let raptor_new_rss_block set it. (raptor_rss_start_element_handler): Call raptor_new_rss_type with param for enclosure. * src/raptor_rss.h: prototype param * src/raptor_rss.c, src/raptor_rss.h, src/raptor_rss_common.c: raptor_rss_item renamed field enclosure to blocks. (raptor_rss_insert_identifiers, raptor_rss_emit_item, raptor_free_rss_item, raptor_rss_item_add_block): Renamed item->enclosure to item->blocks and renamed variables. * src/raptor_rss.c, src/raptor_rss.h, src/raptor_rss_common.c: Rename raptor_rss_enclosure to raptor_rss_block throughout and corrected naming convention. (raptor_new_rss_block): Renamed from raptor_rss_new_enclosure. (raptor_rss_item_add_block): Renamed from raptor_rss_item_add_enclosure. (raptor_free_rss_block): Renamed from raptor_enclosure_free. * src/raptor.h, src/raptor_feature.c, src/raptor_internal.h, src/raptor_parse.c, src/raptor_sax2.c, src/raptor_serialize.c, src/raptor_serialize_rss.c, src/raptor_turtle_writer.c, src/raptor_xml_writer.c, utils/rapper.c: Added serializer feature RAPTOR_FEATURE_ALIAS_DEFAULT_NAMESPACE (aliasDefaultNamespace) for atom and rss 1.0 serializers to prevent declaring the default namespace twice with a prefix and without. raptor_feature gains RAPTOR_FEATURE_ALIAS_DEFAULT_NAMESPACE raptor_features_list gains new feature (raptor_turtle_writer_set_feature, raptor_sax2_set_feature, raptor_xml_writer_set_feature, raptor_set_feature, raptor_get_feature, raptor_serializer_set_feature_string, raptor_serializer_get_feature_string): enum extensions for raptor_feature switches. struct raptor_serializer_s gains int field feature_alias_default_namespace raptor_rss10_serializer_context gains a flag free_default_nspace to know when to free default namespace now that it may not be needed. (raptor_rss10_serialize_terminate): Use the free_default_nspace flag. (raptor_rss10_build_xml_names): Implement altered namespace declaration rules. (raptor_new_serializer_v2): Initialise default namespace aliasing to true by default. (raptor_serializer_set_feature): Set flag. * src/raptor_rss.h: document struct raptor_rss_enclosure_s fields 2009-02-18 Lauri Aalto * src/raptor_internal.h, src/raptor_sax2.c: Lowmem fixes in raptor_sax2 (raptor_sax2_s): Internal struct gains "failed" field. (raptor_sax2_parse_start): Check for raptor_namespaces_init_v2() failure and set sax2 struct failure flag. (raptor_sax2_start_element, raptor_sax2_end_element, raptor_sax2_characters, raptor_sax2_cdata, raptor_sax2_comment, raptor_sax2_unparsed_entity_decl, raptor_sax2_external_entity_ref): No-op if sax2 struct in failed state. * src/raptor_namespace.c: (raptor_namespaces_init_v2): Check for alloc failure * src/raptor_namespace.c: (raptor_namespaces_qname_from_uri): Init ns to NULL to prevent use-before-init warnings from some optimizing compilers. 2009-02-17 Dave Beckett * src/raptor_namespace.c: (raptor_namespaces_get_default_namespace): Make this work again - look for default namespace in correct bucket. * librdfa/rdfa.c, src/raptor_internal.h, src/raptor_namespace.c: Replace namespace storage from a linked list to a hash on prefix using raptor_hash_ns_string() witb a DJ Bernstein hash. This makes turtle parsing with lots of namespaces (100s) much faster. Based on the initial patch in the bug it fixes. Fixes Issue#0000290 http://bugs.librdf.org/mantis/view.php?id=290 2009-02-10 Dave Beckett * src/raptor_serialize_rdfxmla.c: (raptor_rdfxmla_ensure_writen_header): For XMP add a cosmetic newline after * src/raptor_rdfxml.c: (raptor_rdfxml_generate_statement): Adjust predicate_type when removing ordinal identifier type from predicate. Fixes Issue#0000293 http://bugs.librdf.org/mantis/view.php?id=293