0.9.3 - tests and bugfixes (r820) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [dom] -Add: lht_dom_export [dom] -Add: dom pnode should print extra tags for node properties (whether the node is unlinked, detached, floating, is the root) [dom] -Fix: don't segfault for floating node being location-moved [tree] -Add: lht_tree_list_find_node [tree] -Add: lht_tree_path_build [tree] -Fix: assert table/list types in node find low level calls [tree] -Fix: empty segment in path should not change the current node (especially should not be considered as integer 0 for a list descend) [tree] -Fix: tree table call convention while replacing tree child (wrong order of args) [tree] -Fix: when checking for (broken) symlinks from a root, check root itself as well, before checking children [tree] -Fix: table node replace doesn't commit any modification on the table before finishing all sanity checks on the input args [tree] -Fix: table detach cell: check newn for NULL before use [tree] -Fix: node_is_under: a node is never under itself (not even root) [tree] -Fix: when merging cells from one table to another, make sure the doc and parent fields are set properly in the new table [tree] -Fix: table cell replace unlinks and does not detach the old node [tree] -Fix: list replace will unlink, not detach [tree] -Fix: hash unlinks instead of detaching on replace [marshaller] -Add: look up native pointers for symlinks [tests] -Add: revpath test also tests tightly coupled list_find_node [tests] -Add: test table for revpath tests [tests] -Add: table revpath tests [tests] -Add: export test [tests] -Add: table corner case test set with references - list and hash as table cell, named rows [tests] -Rename: table_insert_row.lht to ta.lht as it is used to more tts tests with inserts and deletion of rows and colums [tests] -Change: ta root is hash so that it's easier to address table cases by path (by name) [tests] -Update: ta_*.tts use paths instead of manual list crawling on ta.lht [tests] -Add: tree_has_sy.tts [tests] -Add: symlink_is_broken.tts [tests] -Add: introduce a broken symlink in symlink.lht for testing sy_is_broken [tests] -Add: ta_find_cell [tests] -Add: ta_detach_cell [tests] -Add: various tests for table row/col insert/del [tests] -Add: ta_replace_cell [tests] -Add: node_is_under [tests] -Add: li_repl_child [tests] -Add: li_det_child [tests] -Add: ta_repl_child 0.9.2 - detach cleanup, replace and documentation (r674) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [dom] -Change: API CHANGE: lht_dom_node_alloc() allocates floating node - there should be no node with doc field set but not linked in the tree or part of the unlinked list [dom] -Rename: API CHANGE: _tree_ prefixed calls to _dom_ prefixed calls [dom] -Change: move internal functions from dom.h to dom_internal.h and document the rest [dom] -Add: auto-freeing on detach (when detach_doc is 1 and root is removed) [dom] -Add: list and hash insert/append require detached node and move them under the current doc and set parent [dom] -Fix: allow appending nodes to floating subtrees [tree] -Fix: memmove() missing indirection bug when moving table rows/cols [tree] -Add: node replace function [tree] -Fix: when replacing cell of a table, make sure the detached node is moved into the document [tree] -Fix: lth_tree_detach() works for already detached nodes and root nodes [doc] -Add: document-tree-node API concepts: unlinking/detaching/deleting, floating nodes, iterators, debug/diagnostic calls [tests] -Add: table row/col insert/delete testes [tests] -Add: Tests.exclude lists local exclusions of test cases [tests] -Fix: sort ls output before generating Makefile.test - this will avoid unintended changes [util] -Add: prepare marshaler for pointers: - expect descriptions to be a hash of multiple structs - each struct must start with a type name (anonymous) - build field cache in marshaler 0.9.1 - core lib implementation (r618) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [lib] -Fix: lht_err_t return values are always positive [build] -Change: central Makefile.common for a module-based build system that handles cross-dependencies better [dom] -Fix: when growing table, don't realloc cols beyond cols [dom] -Split: move dangerous internal calls from dom.h to new dom_internal.h [tree] -Add: a function that determines whether a node is under another in the tree [tree] -Add: lht_tree_path_build() - reverse path build from node ptr [tree] -Add: lht_tree_sy_is_broken() [tree] -Add: hash del node function [tree] -Add: hash len function [tree] -Add: generic node detach [tree] -Add: node del function [tree] -Add: subtree merge code (empty symlink always fails to merge as specified in the doc since r600) [tree] -Add: symlink helper API and DFS implementation looking for symlinks and broken symlinks within a subtree [tree] -Fix: . and .. should behave as specified: . is ->parent, .. is ->parent->parent [tree] -Fix: tree.h does depend on dom.h - include it; include protection in tree.h [util] -Update: old PE_ references in validator lib [util] -Update: lht_marshaller for the "new" lht_ prefixes in the lib [util] -Add: lhtview - simple CLI for interactive inspection of lihata trees [util] -Fix: validator lib doesn't use stack_t (causes namespace collision on macosx) 0.9.0 - initial release ~~~~~~~~~~~~~~~~~~~~~~~ -Add: documentation: language design, design decisions and some API docs -Add: implementation of liblihata: fully functional event and dom parser and most of the tree handlers, including paths and basic symlink support -Add: example app: simple config load -Add: utilities: validator, flat marshaller