Filewatcher File Search File Search
Content Search
» » » » » libdatrie1_0.2.4-1_amd64.deb » Content »
pkg://libdatrie1_0.2.4-1_amd64.deb:26824/usr/share/doc/libdatrie1/  info  control  downloads

libdatrie1 - Double-array trie library…  more info»


2010-06-30  Theppitak Karoonboonyanan  <>

	* NEWS,
	=== Version 0.2.4 ===

2010-06-28  Theppitak Karoonboonyanan  <>

	* datrie/alpha-map-private.h, datrie/alpha-map.c:
	* datrie/darray.h, datrie/darray.c:
	* datrie/tail.h, datrie/tail.c:
	* datrie/trie.c (trie_fread, trie_fwrite):
	Rename *_read() and *_write() functions to *_fread() and *_fwrite(),
	for consistency with the trie_f{read,write}() function.

2010-06-28  Theppitak Karoonboonyanan  <>

	Add trie_fread() and trie_fwrite() interfaces for reading/writing trie
	data from an open file. Thanks NIIBE Yutaka <> for the

	* datrie/trie.h (trie_fread, trie_fwrite): Add new API declarations.
	* datrie/trie.c (trie_new_from_file, trie_fread, trie_save,
	Refactor open file handling of trie_new_from_file() and trie_save()
	into trie_fread() and trie_fwrite(), and make the old functions
	do file opening/closing as wrappers to them.
	* datrie/libdatrie.def, datrie/ Add symbol exports.

2010-06-27  Theppitak Karoonboonyanan  <>

	* datrie/trie.c (trie_store_if_absent): Document that it's available
	since 0.2.4.
	* datrie/libdatrie.def, datrie/ Add symbol exports for
	* ChangeLog: Fix file locations in previous log.

2010-06-24  Theppitak Karoonboonyanan  <>

	Add trie_store_if_absent() interface to avoid race condition in
	multi-thread applications. Thanks Dan Searle <>
	for the suggestion.

	* datrie/trie.h (trie_store_if_absent): Add new API declaration.
	* datrie/trie.c (trie_store_if_absent, trie_store,
	Refactor trie_store() into trie_store_conditionally() with extra arg
	is_overwrite, and make the two public functions mere wrappers to it.
	* Bump library version according to the added symbol.

2010-03-01  Theppitak Karoonboonyanan  <>

	* datrie/trie.c (trie_save): Do not return before closing file.
	Thanks to Xu Jiandong for the report.

2010-03-01  Theppitak Karoonboonyanan  <>

	* Post-release version suffix added.

2010-02-27  Theppitak Karoonboonyanan  <>

	* Bump library revision.
	* NEWS,
	=== Version 0.2.3 ===

2010-02-25  Theppitak Karoonboonyanan  <>

	* datrie/*.h, datrie/*.c: Add my e-mail address to license header.

2010-02-24  Theppitak Karoonboonyanan  <>

	* datrie/*.h, datrie/*.c: Add license header to every source file.

2010-02-23  Theppitak Karoonboonyanan  <>

	Move documentation from *.h to *.c, so libdatrie developers have the
	doc at hand. Users can still read the doxygen-generated doc BTW.

	* datrie/alpha-map.h:
	* datrie/alpha-map.c:
	* datrie/trie.h:
	* datrie/trie.c:
	* datrie/darray.h:
	* datrie/darray.c:
	* datrie/tail.h:
	* datrie/tail.c: Move doc comments from *.h to *.c.
	* doc/ Add alpha-map.c, trie.c to INPUT.
	* doc/ Add *.c to doxygen.stamp dependency.

2010-02-20  Theppitak Karoonboonyanan  <>

	* datrie/darray.c (da_read), datrie/tail.c (tail_read):
	Protect against possible integer overflow on malicious trie file.

2010-02-20  Theppitak Karoonboonyanan  <>

	* Post-release version suffix added.

	Be more robust against corrupted trie files.
	* datrie/alpha-map.c (alpha_map_read_bin):
	* datrie/darray.c (da_read):
	* datrie/tail.c (tail_read):
	  - Check all returns from file_read_*() and clean up properly on
	  - Adjust existing clean up codes to the new structure

2009-04-29  Theppitak Karoonboonyanan  <>

	* Bump library revision.
	* NEWS,
	=== Version 0.2.2 ===

2009-04-28  Theppitak Karoonboonyanan  <>

	* Check $datrie_cv_have_version_script against "yes",
	not "1", so symbol versioning works on GNU ld again.

2009-04-28  Theppitak Karoonboonyanan  <>

	* datrie/trie.c (trie_state_copy): Use bitwise copy instead of

2009-04-15  Theppitak Karoonboonyanan  <>

	* Adjust variable name datrie_cv_have_version_script.

2009-04-14  Theppitak Karoonboonyanan  <>

	Support locale charset query with libcharset, for mac and mingw.
	[Thanks Beamer User for the report.]

	* Check for locale_charset() from libiconv and
	nl_langinfo(CODESET) from libc. If neither is present, ask user to
	install GNU libiconv.
	* tools/trietool.c (init_iconv): Use locale_charset() to query locale
	charset if possible, fall back to nl_langinfo(CODESET) otherwise.

2009-04-14  Theppitak Karoonboonyanan  <>

	Support alternative iconv implemetations.
	[Thanks cwt for the report.]

	* Check for GNU libconv or native libiconv if system libc
	doesn't have iconv().
	* tools/ Add ICONV_LIBS to linker options.

2009-04-13  Theppitak Karoonboonyanan  <>

	Fall back to libtool for linkers that do not support -version-script.
	[Thanks bact' for the report. Thanks cwt for the test.]

	* Check whether linker supports -version-script.
	* datrie/, +datrie/libdatrie.def:
	Apply -version-script flag only when linker supports it. Otherwise,
	fall back to the old method based on libtool -export-symbols flag.

2009-04-13  Theppitak Karoonboonyanan  <>

	* Post-release version suffix added.
	Add m4 dir as automake includes, as required by the new libtool.
	[Thanks cwt for the report and test.]

2009-04-05  Theppitak Karoonboonyanan  <>

	* Bump library revision.
	* NEWS,
	=== Version 0.2.1 ===

2009-04-05  Theppitak Karoonboonyanan  <>

	* Remove blank Requires: line.

2009-04-03  Theppitak Karoonboonyanan  <>

	* datrie/alpha-map.h, datrie/trie.h: Revise documentation.

2009-04-03  Theppitak Karoonboonyanan  <>

	* datrie/fileutils.h, datrie/fileutils.c
	(make_full_path, file_open, file_length): Remove unused codes.
	* datrie/triedefs.h (TrieIOMode): Remove unused typedef.

2009-04-01  Theppitak Karoonboonyanan  <>

	* datrie/, datrie/libdatrie.def -> datrie/
	Replace libtool symbol exports with symbol versioning, to ease
	upgrading across SONAME.

2009-03-31  Theppitak Karoonboonyanan  <>

	Fix gcc warnings.

	* tools/trietool.c (conv_to_alpha): Cast 'out_p' pointer before
	* tools/trietool.c (command_add_list, command_delete_list):
	Make sure 'saved_conv' is initialized before use.
	* datrie/trie.c (trie_new_from_file): Remove unused 'alt_map' var.

2009-03-31  Theppitak Karoonboonyanan  <>

	* Post-release version suffix added.

	* datrie/trie.h (trie_save): Document parameter 'path'.
	* doc/ Update format to doxygen 1.5.8.

2009-03-24  Theppitak Karoonboonyanan  <>

	* NEWS,
	=== Version 0.2.0 ===

2009-03-24  Theppitak Karoonboonyanan  <>

	*, +README.migration:
	Add migration documentation.

2008-12-29  Theppitak Karoonboonyanan  <>

	* datrie/alpha-map.c (alpha_map_char_to_trie, alpha_map_trie_to_char):
	Tighten the loop for more readability, plus eliminating one duplicated

2008-12-28  Theppitak Karoonboonyanan  <>

	* datrie/datrie.c (da_get_base, da_get_check, da_set_base,
	Revert lower bound checks. It's no use checking too much for internal

2008-12-28  Theppitak Karoonboonyanan  <>

	* datrie/trie.h, datrie/trie.c, datrie/libdatrie.def
	(trie_state_is_leaf, +trie_state_is_single):
	  - Introduce a new state condition: single. A single state is a state
	    in a single path, with no other branch til its leaf.
	  - Redefine trie_state_is_leaf() as a macro based on it and

2008-12-26  Theppitak Karoonboonyanan  <>

	* datrie/trie.h, datrie/trie.c, datrie/libdatrie.def (trie_state_copy):
	Add a new API function for trie state reuse support.

2008-12-15  Theppitak Karoonboonyanan  <>

	* tools/trietool.c (conv_to_alpha): Use 'unsigned char' instead of
	'uint8'. Better not tie to datrie internal notations too much.

2008-12-15  Theppitak Karoonboonyanan  <>

	* Post-release version bump.

	* tools/trietool.c (conv_to_alpha): Use uint8 to access data bytes
	instead of char, to fix char signedness bug.

2008-12-15  Theppitak Karoonboonyanan  <>

	* NEWS,
	=== Version ===

2008-12-15  Theppitak Karoonboonyanan  <>

	* man/, man/trietool.1 -> man/trietool-0.2.1:
	Rename 'trietool' man page to 'trietool-0.2', according to the
	corrsponding binary.

2008-12-14  Theppitak Karoonboonyanan  <>

	* tools/ Rename 'trietool' program to 'trietool-0.2',
	to allow co-existence with datrie 0.1.x.

2008-12-14  Theppitak Karoonboonyanan  <>

	* datrie/darray.c (da_read):
	* datrie/tail.c (tail_read):
	Restore file pointer on signature check failure.

2008-12-14  Theppitak Karoonboonyanan  <>

	* man/trietool.1: Document that no more than 255 alphabets are allowed.

2008-12-13  Theppitak Karoonboonyanan  <>

	Ensure that ranges in AlphaMap are always sorted and don't overlap.

	* datrie/alpha-map.c (struct _AlphaMap, alpha_map_new):
	  - Remove 'last_range' member
	* datrie/alpha-map.c (alpha_map_add_range):
	  - Check if the new range overlaps existing ranges and merge them
	    as necessary.

2008-12-13  Theppitak Karoonboonyanan  <>

	* Post-release version bump.
	*,, ->
	Rename pkg-config file, to allow co-existence with datrie 0.1.x.

2008-12-12  Theppitak Karoonboonyanan  <>

	* NEWS,
	=== Version ===

2008-12-12  Theppitak Karoonboonyanan  <>

	* man/trietool.1: Update document
	  - Trie is now stored in a single '*.tri' file
	  - The alphabet map is renamed from '*.sbm' to '*.abm'
	  - Mention Unicode, instead of single-byte character domain
	  - Document the options for 'add-list' and 'delete-list' commands
	  - Adjust troff formatting commands

2008-12-12  Theppitak Karoonboonyanan  <>

	* tools/trietool.c (prepare_trie):
	  - Try to read alphabet map from '*.abm' instead of '*.sbm'

2008-12-11  Theppitak Karoonboonyanan  <>

	Allow specifying character encoding for word list file.

	* tools/trietool.c (command_add_list, command_delete_list):
	  - Add '-e|--encoding ENC' option which temporarily override locale's
	    codeset for character conversion
	* tools/trietool.c (usage):
	  - Update usage message accordingly

2008-12-09  Theppitak Karoonboonyanan  <>

	Use const where possible + general clean-ups.

	* datrie/alpha-map-private.h, datrie/alpha-map.c (alpha_map_write_bin):
	* datrie/alpha-map.h, datrie/alpha-map.c (alpha_map_clone):
	* datrie/alpha-map.c (alpha_map_get_total_ranges):
	  - Accept (const AlphaMap *) arg
	* datrie/alpha-map.c (alpha_map_char_to_trie_str):
	  - Rename 'alphabet_str' to 'trie_str', to be more sensible

	* datrie/darray.h, datrie/darray.c (da_write, da_walk, da_enumerate):
	* datrie/darray.c
	  (da_output_symbols, da_get_state_key, da_enumerate_recursive):
	  - Accept (const DArray *) arg
	* datrie/darray.h, datrie/darray.c (da_free):
	  - Made void function, instead of int
	* datrie/darray.c (da_new):
	  - Set CHECK[0] = d->num_cells, to be more clear
	* datrie/darray.c (da_write, da_extend_pool):
	  - Update CHECK[0] whenever DArray::num_cells is changed, instead of
	    just setting it before writing; so da_write() can now accept
	    (const DArray *) arg

	* datrie/tail.h, datrie/tail.c
	  (tail_write, tail_get_data, tail_walk_str, tail_walk_char):
	  - Accept (const Tail *) arg
	* datrie/tail.h, datrie/tail.c (tail_free):
	  - Made void function, instead of int

	* datrie/trie.c (struct _TrieState, struct _TrieEnumData):
	  - 'trie' member is now const pointer
	* datrie/trie.h, datrie/trie.c
	  (trie_new, trie_is_dirty, trie_retrieve, trie_enumerate, trie_root):
	* datrie/trie.c (trie_state_new):
	  - Accept (const Trie *) arg

2008-12-09  Theppitak Karoonboonyanan  <>

	Unicode (UCS-4) character support.

	* datrie/triedefs.h (AlphaChar):
	  - unsigned char -> uint32

	* datrie/alpha-map.h, datrie/alpha-map.c, datrie/libdatrie.def:
	  - Export alpha_char_strlen() utility routine

	* tools/trietool.c
	  (ProgEnv, init_conv, conv_to_alpha, conv_from_alpha, close_conv):
	  - Add routines for converting characters between locale (LC_CTYPE)
	    codeset and UCS-4
	* tools/trietool.c (main):
	  - Initialize and close conversion routines
	* tools/trietool.c
	  (command_add, command_add_list, command_delete, command_delete_list,
	  command_query, list_enum_func, command_list):
	  - Convert character encodings between I/O and trie

2008-12-09  Theppitak Karoonboonyanan  <>

	* datrie/trie.c (trie_retrieve, trie_store):
	  - Use (AlphaChar *), not (TrieChar *), as key pointer type

2008-12-07  Theppitak Karoonboonyanan  <>

	* datrie/trie.c (trie_retrieve):
	  - Remove unused var 'len'
	  - Compare AlphaChar with integer zero rather than '\0'

2008-12-07  Theppitak Karoonboonyanan  <>

	Adjust APIs for in-memory trie support.

	* datrie/trie.c (struct _Trie):
	  - Remove 'file' member; now trie is detached from file; file is
	    closed after loading, and reopened when saving
	* datrie/trie.h, datrie/trie.c (trie_new):
	  - Add public APIs: trie_new(), for non-file usage
	  - One can still save it to file with trie_save(), BTW
	* datrie/trie.h, datrie/trie.c (trie_open, trie_new_from_file):
	  - Rename trie_open() to trie_new_from_file() and make it accept only
	    one pathname parameter, instead of separated dir and name
	  - Alphabet map is now mandatory, rather than optional
	* datrie/trie.h, datrie/trie.c (trie_close, trie_free):
	  - Rename trie_close() to trie_free() and do not bother with saving
	    any more
	* datrie/trie.h, datrie/trie.c (trie_save):
	  - Accept file path argument and open the file for saving
	* datrie/trie.h, datrie/trie.c (trie_is_dirty):
	  - Add public API: trie_is_dirty() for client to determine whether
	    saving is needed

	* datrie/alpha-map-private.h:
	  - Separate internal APIs from public
	* datrie/alpha-map.h, datrie/alpha-map.c:
	  - Promote alpha_map_new() and alpha_map_add_range() to public;
	    they are now needed by trie_new()
	  - Remove alpha_map_open()
	  - Add public API: alpha_map_clone()
	  - Document public APIs

	* datrie/darray.h, datrie/darray.c (da_new):
	  - Add internal API: da_new() needed by trie_new()
	  - Code migrated from new-file case in da_read()
	* datrie/darray.c (da_read):
	  - No longer handle new file; read failure means an error

	* datrie/tail.h, datrie/tail.c (tail_new):
	  - Add internal API: tail_new() needed by trie_new()
	  - Code migrated from new-file case in tail_read()
	* datrie/tail.c (TAIL_SIGNATURE):
	  - Update TAIL_SIGNATURE to harmonize with other data parts
	* datrie/tail.c (tail_read):
	  - No longer handle new file; read failure means an error

	* tools/trietool.c (prepare_trie, close_trie):
	  - Add helper function for openning and closing trie
	* tools/trietool.c (main):
	  - Open and close trie with prepare_trie() and close_trie()

	* datrie/
	  - Install alpha-map.h as public header
	  - Add alpha-map-private.h to source list
	* datrie/libdatrie.def:
	  - Update exported symbols

2008-12-07  Theppitak Karoonboonyanan  <>

	Rename AlphaMap functions to be more logical.

	* datrie/alpha-map.c, datrie/alpha-map.h: Rename functions
	  - alpha_map_char_to_alphabet -> alpha_map_char_to_trie
	  - alpha_map_alphabet_to_char -> alpha_map_trie_to_char
	  - alpha_map_char_to_alphabet_str -> alpha_map_char_to_trie_str
	  - alpha_map_alphabet_to_char_str -> alpha_map_trie_to_char_str

	* datrie/trie.c (trie_retrieve, trie_store, trie_delete,
	  trie_da_enum_func, trie_state_walk, trie_state_is_walkable):
	  - Call the AlphaMap functions with the new names

2008-12-07  Theppitak Karoonboonyanan  <>

	Merge SBTrie alphabet mapping feature into Trie.

	* datrie/triedefs.h (AlphaChar):
	  - Add AlphaChar typedef, as well as ALPHA_CHAR_ERROR macro
	    (moved from UniChar type in datrie/alpha-map.h)

	* datrie/alpha-map.c (alpha_char_strlen):
	  - Add string length function for alphabet string
	* datrie/alpha-map.c (struct _AlphaRange):
	  - Use AlphaChar type instead of UniChar for begin, end members
	* datrie/alpha-map.c (alpha_map_get_total_ranges):
	  - Add range count private method
	* datrie/alpha-map.c (alpha_map_add_range):
	  - Add private method for adding range (refactored from
	* datrie/alpha-map.c (alpha_map_open):
	  - Call alpha_map_add_range() to add range, instead of doing low-level
	* datrie/alpha-map.c, datrie/alpha-map.h
	  (alpha_map_read_bin, alpha_map_write_bin):
	  - Add methods for binary format I/O
	* datrie/alpha-map.c, datrie/alpha-map.h
	  (alpha_map_char_to_alphabet, alpha_map_alphabet_to_char):
	  - Accept and return AlphaChar, instead of UniChar
	* datrie/alpha-map.c, datrie/alpha-map.h
	  (alpha_map_char_to_alphabet_str, alpha_map_alphabet_to_char_str):
	  - Add public methods for mapping strings (migrated from
	    sb_map_char_to_alphabet_str and sb_map_alphabet_to_char_str in

	* datrie/trie.c (struct _Trie):
	  - Add alpha_map member
	* datrie/trie.c (trie_open):
	  - Add code to read AlphaMap data block, and prefer text-formatted
	    *.sbm if exists
	  - Defer Trie object allocation to after file openning
	* datrie/trie.c (trie_close):
	  - Free alpha_map member
	* datrie/trie.c (trie_save):
	  - Add code to write AlphaMap data block
	* datrie/trie.c, datrie/trie.h (trie_retrieve, trie_store, trie_delete,
	  trie_da_enum_func, trie_state_walk, trie_state_is_walkable):
	  - Adjust function prototypes to accept AlphaChar instead of TrieChar
	  - Add mapping between alphabet and trie character code
	* datrie/trie.h (TrieEnumFunc):
	  - Adjust function typedef to accept AlphaChar instead of TrieChar

	* datrie/
	  - Remove sb-trie.c and sb-trie.h from source/header list
	* datrie/libdatrie.def:
	  - Remove sb_trie symbols

	* tools/trietool.c:
	  - Call trie_* functions instead of sb_trie_*

2008-12-03  Theppitak Karoonboonyanan  <>

	Adjust file format by catenating *.br and *.tl data into a single
	*.tri file.

	* datrie/trie.c (struct _Trie):
	  - Add 'file' and 'is_dirty' members
	* datrie/trie.c (trie_open):
	  - Open the file and call da_read() and tail_read() to load data
	    portions, instead of openning separate files
	* datrie/trie.c (trie_close):
	  - Do the saving stuff and free DArray and Tail data, instead of
	    separately closing them; then finally close the file
	* datrie/trie.c (trie_save):
	  - Write file portions with da_write() and tail_write() instead of
	    saving to separate files
	  - Handle the 'is_dirty' stuffs
	* datrie/trie.c (trie_store, trie_branch_in_branch, trie_delete):
	  - Set the 'is_dirty' flag

	* datrie/darray.h: Change prototypes for internal APIs whose
	functionalities are to be reduced:
	  - da_open(path, name, mode) -> da_read(FILE*)
	  - da_close(DArray*) -> da_free(DArray*)
	  - da_save(DArray*) -> da_write(DArray*, FILE*)

	* datrie/darray.c (struct_DArray):
	  - Drop 'file' and 'is_dirty' members
	* datrie/darray.c (da_open -> da_read):
	  - Accept (FILE *) argument and drop file openning/closing codes
	  - Store number of cells at CHECK[0], so double-array data size can
	    determined without depending on file size
	  - Do not allocate DArray object until needed
	  - Drop 'is_dirty' stuffs
	* datrie/darray.c (da_close -> da_free):
	  - Remove file stuffs; just free memory
	* datrie/darray.c (da_save -> da_write):
	  - Accept (FILE *) argument and use it instead of DArray::file
	  - Ensure CHECK[0] stores the number of cells
	  - Drop 'is_dirty' stuffs
	* datrie/darray.c (da_set_base, da_set_check):
	  - Drop 'is_dirty' stuffs

	* datrie/tail.h: Change prototypes for internal APIs whose
	functionalities are to be reduced:
	  - tail_open(path, name, mode) -> tail_read(FILE*)
	  - tail_close(Tail*) -> tail_free(Tail*)
	  - tail_save(Tail*) -> tail_write(Tail*, FILE*)

	* datrie/tail.c (struct _Tail):
	  - Drop 'file' and 'is_dirty' members
	* datrie/tail.c (tail_open -> tail_read):
	  - Accept (FILE *) argument and drop file openning/closing codes
	  - Check for new file from read failure, rather than file size
	  - Do not allocate Tail object until needed
	  - Drop 'is_dirty' stuffs
	* datrie/tail.c (tail_close -> tail_free):
	  - Remove file stuffs; just free memory
	* datrie/tail.c (tail_save -> tail_write):
	  - Accept (FILE *) argument and use it instead of Tail::file
	  - Drop 'is_dirty' stuffs
	* datrie/tail.c (tail_set_suffix, tail_set_data, tail_free_block):
	  - Drop 'is_dirty' stuffs

2008-12-01  Theppitak Karoonboonyanan  <>

	Get rid of the weird TrieIndexInt intermediate type, by checking
	ranges instead. (Changes merged from r_0_1_x-branch)

	* datrie/darray.c: Remove typedef for TrieIndexInt.
	* datrie/darray.c (da_check_free_cell, da_extend_pool):
	  - Accept normal TrieIndex arg instead of TrieIndexInt
	* datrie/datrie.c (da_insert_branch):
	  - Define 'base', 'next' vars as TrieIndex instead of TrieIndexInt
	  - Check overflow for 'next' before checking if the cell is free
	* datrie/datrie.c (da_find_free_base):
	  - Define 's' var as TrieIndex instead of TrieIndexInt
	* datrie/datrie.c (da_fit_symbols):
	  - Check overflow for (base + sym) before checking if the cell is free
	* datrie/datrie.c (da_get_base, da_get_check, da_set_base,
	  - Also check lower bound for index range

2008-11-27  Theppitak Karoonboonyanan  <>

	First changes to break ABI for larger trie index.

	* datrie/triedefs.h: Redefine TrieIndex and TrieData as int32.
	Update TRIE_INDEX_MAX accordingly.
	* datrie/darray.c (da_open, da_save): Redefine DA_SIGNATURE.
	Read/write 32-bit data in headers.
	* datrie/darray.c (da_has_children, da_output_symbols,
	Declare characters as TrieIndex instead of uint16.
	* datrie/tail.c (tail_open, tail_save): Redefine TAIL_SIGNATURE.
	Read/write 32-bit data in headers. Use 16-bit length for each block.
	* Bump up library version to 1.0.0.

2008-06-21  Theppitak Karoonboonyanan  <>

	* man/trietool.1: Use troff .in command to indent text, fixing warning
	from 'groff --warnings'. Thanks Debian's lintian.

2008-06-21  Theppitak Karoonboonyanan  <>

	* datrie/tail.c (tail_set_suffix):
	* datrie/sb-trie.c (sb_map_char_to_alphabet_str):
	Fix GCC warnings about char signedness.

2008-01-28  Theppitak Karoonboonyanan  <>

	* Bump the library revision.
	* NEWS:
	=== Version 0.1.3 ===

2008-01-28  Theppitak Karoonboonyanan  <>

	* man/trietool.1: Add documentation for the SBM file.

2008-01-28  Theppitak Karoonboonyanan  <>

	* README: Fix my name in the reference.

2008-01-10  Theppitak Karoonboonyanan  <>

	* datrie/tail.c (tail_set_suffix): Fix bug for the case in which
	suffix argument and tail's suffix overlap. Bug report and patch by
	shepmaster in

2008-01-10  Theppitak Karoonboonyanan  <>

	* datrie/sb-trie.c (sb_trie_root): Return NULL pointer, rather than
	FALSE. Bug reported by shepmaster in

2007-10-17  Theppitak Karoonboonyanan  <>

	* datrie/libdatrie.def: List only symbols in plain format, for Mac
	build. Thanks Vee Satayamas for the report.

	* datrie/ Add libdatrie.def as libdatrie_la_DEPENDENCIES.

2007-08-28  Theppitak Karoonboonyanan  <>

	* doc/ Only generate doc for public API.

2007-08-28  Theppitak Karoonboonyanan  <>

	* doc/, doc/ Revert API man pages generation
	and installation. Update Doxyfile format to doxygen 1.5.3.

2007-08-26  Theppitak Karoonboonyanan  <>

	* man/trietool.1: Escape some minus signs. Mark a variable italic.
	Thanks debian's lintian.

2007-08-26  Theppitak Karoonboonyanan  <>

	* Post-release version bump.

2007-08-25  Theppitak Karoonboonyanan  <>

	* Bump lib revision.
	* NEWS:
	=== Version 0.1.2 ===

2007-08-25  Theppitak Karoonboonyanan  <>

	* datrie/, +datrie/trie-private.h (MIN_VAL, MAX_VAL):
	Add utility macros.
	* datrie/darray.c (da_output_symbols): Adjust loop boundary to be more
	* "-------------" (da_has_children, da_relocate_base): Apply the same
	loop pattern to prevent out-of-range accesses.

2007-08-24  Theppitak Karoonboonyanan  <>

	* datrie/darray.c (da_output_symbols): Do not try to test symbols
	beyond trie index range. Fixes segfault for trietool list command.

2007-08-19  Theppitak Karoonboonyanan  <>

	Handle double array index overflow.

	* datrie/triedefs.h (TRIE_INDEX_MAX): Define maximum index value.
	* datrie/darray.c (TrieIndexInt): Define type for immediate values, so
	overflow can be detected.
	* "-------------" (da_extend_pool): Return success/failure status.
	Accept TrieIndexInt argument for overflow detection.
	* "-------------" (da_check_free_cell): False when extending fails.
	Accept TrieIndexInt argument for overflow detection.
	* "-------------" (da_find_free_base): Return error on failure.
	* "-------------" (da_insert_branch): Return error on failure.
	* datrie/trie.c (trie_branch_in_branch, trie_branch_in_tail): Check
	for failure from da_insert_branch() and return the status.
	* datrie/darray.{c,h} (da_prune_upto, da_prune): Add da_prune_upto(),
	for rolling back partial operation in trie_branch_in_branch().
	Redefine da_prune() in terms of da_prune_upto().

2007-08-16  Theppitak Karoonboonyanan  <>

	* datrie/darray.c (da_open, da_find_free_base): Use DA_POOL_BEGIN
	macro instead of hard-coded number. Remove unused DA_EXTENDING_STEPS.

2007-05-12  Theppitak Karoonboonyanan  <>

	* datrie/sb-trie.c (sb_trie_close, sb_trie_save, sb_trie_retrieve,
	sb_trie_store, sb_trie_enumerate, sb_trie_root, sb_trie_state_clone,
	sb_trie_state_free, sb_trie_state_rewind, sb_trie_state_walk,
	sb_trie_state_is_walkable, sb_trie_state_is_terminal,
	sb_trie_state_is_leaf, sb_trie_state_get_data):
	Guard against NULL pointers in functions. Thanks to Neutron Soutmun
	for bug report and initial patch.

2007-04-06  Theppitak Karoonboonyanan  <>

	* doc/ Add install-man target. Also install/uninstall
	doxygen-generated man pages.

2007-03-27  Theppitak Karoonboonyanan  <>

	datrie/ (libdatrie_la_LDFLAGS), +datrie/libdatrie.def:
	Add library version info. Limit exported symbols with -export-symbols
	flag. Always pass -no-undefined flag.

	* Add Win32 DLL building support.

2006-11-02  Theppitak Karoonboonyanan  <>

	* datrie/fileutils.{c,h} (file_read_int32, file_write_int32): Add
	int32 read/write functions.

	* datrie/fileutils.c (file_read_int16, file_write_int16): Use unsigned
	char buffer instead of and-ing with 0xff, in accordance with int32
	functions. (Thanks to Vee Satayamas for suggestion).

2006-10-13  Theppitak Karoonboonyanan  <>

	* Post-release version bump.

2006-10-12  Theppitak Karoonboonyanan  <>

	* NEWS:
	=== Version 0.1.1 ===

2006-10-12  Theppitak Karoonboonyanan  <>

	*,, +man/, +man/trietool.1:
	Add manpage for trietool (moved from debian/).

2006-10-11  Theppitak Karoonboonyanan  <>

	Fixed compiler warnings.

	* datrie/sb-trie.c (sb_map_alphabet_to_char_str):
	* datrie/tail.c (tail_open, tail_save, tail_set_suffix):
	* datrie/trie.c (trie_da_enum_func): Cast pointers to get rid of
	compiler warnings about char signedness.

	* tools/trietool.c (list_enum_func): Return value on exit.

2006-09-18  Theppitak Karoonboonyanan  <>

	* Post-release version bump.

2006-09-18  Theppitak Karoonboonyanan  <>

	* NEWS,
	=== Version 0.1.0 ===

2006-09-17  Theppitak Karoonboonyanan  <>

	* README: Filled in.

2006-09-02  Theppitak Karoonboonyanan  <>

	* datrie/triedefs.h, datrie/trie.h, datrie/sb-trie.h: Included headers
	using system header forms in installed headers.

	* datrie/ (INCLUDES): Added include flag to ensure it
	compiles without prior installation.

2006-09-02  Theppitak Karoonboonyanan  <>

	* datrie/alpha-map.c (alpha_map_char_to_alphabet,
	alpha_map_alphabet_to_char): Made sure terminator is always mapped
	with character 0.

2006-09-02  Theppitak Karoonboonyanan  <>

	* datrie/darray.{h,c} (da_is_walkable),
	datrie/tail.{h,c} (tail_is_walkable_char): Made the tiny functions
	inline (i.e. macros), for tiny performance gain.

2006-09-02  Theppitak Karoonboonyanan  <>

	* datrie/sb-trie.{h,c} (+sb_trie_state_is_walkable): Added walkability
	test wrapper.

	* datrie/sb-trie.h (sb_trie_state_is_terminal, sb_trie_state_is_leaf),
	datrie/trie.h (trie_state_is_terminal, trie_state_is_leaf): Fixed typo
	for "\brief" doxygen tag.

2006-09-02  Theppitak Karoonboonyanan  <>

	* datrie/trie.{h,c} (trie_state_is_terminal, +trie_state_is_walkable):
	Changed trie_state_is_terminal() into a generic walkability test, and
	made itself a specialized macro calling the function.

2006-08-31  Theppitak Karoonboonyanan  <>

	* datrie/darray.{h,c} (+da_is_walkable),
	datrie/tail.{h,c} (+tail_is_walkable_char),
	datrie/trie.c (tail_state_is_terminal): <Optimization> Tested
	walkability by peeking, instead of trying with a cloned state.

	* datrie/tail.{h,c} (tail_walk_char): Removed redundant const in

2006-08-29  Theppitak Karoonboonyanan  <>

	* datrie/trie.h, datrie/sb-trie.h: Wrapped extern "C" in public
	headers for compiling with C++ code.

2006-08-22  Theppitak Karoonboonyanan  <>

	* tools/trietool.c (decode_command): Exited with proper return values.

	* tools/trietool.c (command_add_list): Removed warning on missing data
	for keys. This would be normal for data-less dictionaries.

2006-08-21  Theppitak Karoonboonyanan  <>

	* datrie/trie.{h,c} (trie_state_rewind),
	datrie/sb-trie.{h,c} (sb_trie_state_rewind): Added API to rewind a
	trie state to root, so users do not need to reallocate to do so.

2006-08-21  Theppitak Karoonboonyanan  <>

	* datrie/alpha-map.c (alpha_map_open, alpha_map_new): Better used a
	dedicated function to initialize the map.

2006-08-21  Theppitak Karoonboonyanan  <>

	* datrie/alpha-map.c (alpha_map_open): Initialized map list before
	using. Also skipped mal-formed input lines.

	* tools/trietool.c (command_add_list): Removed duplicated return.

2006-08-21  Theppitak Karoonboonyanan  <>

	*,, Added pkgconfig file.

2006-08-20  Theppitak Karoonboonyanan  <>

	* datrie/sb-trie.{h,c} (sb_trie_state_is_terminal),
	datrie/trie.{h,c} (trie_state_is_terminal, trie_state_is_leaf):
	Added API for terminal node check and distinguish it from leaf node.
	(Terminal node can be in either branch or tail, while leaf can only
	be in tail.)

2006-08-20  Theppitak Karoonboonyanan  <>

	* datrie/ (pkginclude_HEADERS): Installed sb-trie.h.

	* datrie/sb-trie.h: Fixed file name in doxygen tag.

2006-08-20  Theppitak Karoonboonyanan  <>

	* datrie/, +datrie/alpha-map.{h,c}, +datrie/sb-trie.{h,c}:
	Added alphabet map to map between character set and trie alphabet
	codes. Also added SBTrie wrapper for 8-bit character sets.

	* datrie/triedefs.h (TRIE_CHAR_MAX): Changed to 255, to fit char type.

	* datrie/trie.{h,c} (trie_state_walk): Removed unnecessary const in
	character argument.

	* tools/trietool.c: Used SBTrie instead of plain Trie.

2006-08-20  Theppitak Karoonboonyanan  <>

	* datrie/fileutils.c (file_read_int16): Fixed bitwise calculation. The
	second byte should be masked to get rid of possible sign bits
	introduced by type conversion.

2006-08-19  Theppitak Karoonboonyanan  <>

	* datrie/fileutils.c (file_read_int16, file_write_int16): Used shift
	operations to serialize int, eliminating dependency on <arpa/inet.h>.
	Thanks Vee Satayamas for the suggestion.

2006-08-18  Theppitak Karoonboonyanan  <>

	* datrie/trie.c (trie_retrieve, trie_store, trie_delete): Always walk
	the null-terminator in tail. Otherwise, comparison with shorter key 
	will terminate at separate node.

2006-08-18  Theppitak Karoonboonyanan  <>

	* datrie/darray.c (find_free_base): Extended pool before getting

	* tools/trietool.c (command_add_list): Let tab and comma be field
	delimitors, rather than white spaces in general.

	* tools/trietool.c (list_enum_func): Do not pad space when printing
	key data.

2006-08-17  Theppitak Karoonboonyanan  <>
	*,, +doc/, +doc/
	Generated document using doxygen.

2006-08-17  Theppitak Karoonboonyanan  <>

	* datrie/darray.c (da_prune, da_num_children -> da_has_children):
	Just checked whether a node has at least one child, instead of
	counting children and comparing with zero, as a small optimization.

2006-08-17  Theppitak Karoonboonyanan  <>

	* tools/trietool.c (command_add_list, command_delete_list):

2006-08-17  Theppitak Karoonboonyanan  <>

	* datrie/trie.{h,c} (trie_enumerate), datrie/darray.{h,c}
	(da_enumerate, da_enumerate_recursive, da_get_state_key): Added key
	enumeration method.

	* tools/trietool.c (command_list): Implemented.

2006-08-17  Theppitak Karoonboonyanan  <>

	* datrie/trie.{h,c} (trie_delete), datrie/darray.{h,c} (da_prune,
	da_num_children), datrie/tail.{h,c} (tail_delete): Added key deletion

	* datrie/tail.c (tail_save): Guarded against null suffix.

	* tools/trietool.c (command_delete): Implemented.

2006-08-17  Theppitak Karoonboonyanan  <>

	* datrie/darray.c (da_find_free_base): Made sure the free cell for 
	first symbol is beyond header cells. Also repeatedly extended the pool
	until a free cell is found, in case free list is restarted.

2006-08-16  Theppitak Karoonboonyanan  <>

	* datrie/fileutils.c (file_open): Created new file only if it does not

	* datrie/trie.c (trie_branch_in_branch): Also set data for tail block.

	* datrie/trie.c (trie_branch_in_tail): Do not free the const suffix
	block, fixing double free bug.

	* datrie/darray.c (da_insert_branch): Covered the case of negative
	base, for branching from a separate node.

	* tools/trietool.c (command_add): Removed debug message.

2006-08-16  Theppitak Karoonboonyanan  <>

	*,, +tools/, +tools/trietool.c:
	Added trietool utility.

	* datrie/darray.c (da_get_free_list): Fixed typo in macro name.

	* datrie/datrie.c (da_extend_pool): Updated num_cells immediately 
	after realloc(), to let the cell accesses pass boundary checks.

	* datrie/tail.c (tail_get_suffix, tail_set_suffix, tail_alloc_block,
	tail_free_block, tail_get_data, tail_set_data, tail_walk_str,
	tail_walk_char): Started tail blocks indexing from 1 (defined as
	TAIL_START_BLOCKNO macro) rather than 0, because we use signed values
	to distinguish pointers in darray.

	* datrie/tail.{c,h} (tail_get_suffix), datrie/trie.c
	(trie_branch_in_tail): Made tail_get_suffix return const pointer.

	* datrie/darray.c (da_close, da_save), datrie/tail.c (tail_close,
	tail_save): Checked errors and returned appropriate codes.

	* datrie/trie.c (trie_open): Checked errors on files openning and
	resumed appropriately.

2006-08-15  Theppitak Karoonboonyanan  <>

	* datrie/, +datrie/fileutils.c: Added fileutils.c for
	implementation of file utility functions.

	* datrie/fileutils.{c,h}, datrie/darray.c (da_open), datrie/tail.c
	(tail_open): Adjusted file_read_int{8,16} API so error can be checked.

2006-08-15  Theppitak Karoonboonyanan  <>

	* datrie/, +datrie/tail.c, datrie/tail.h: Added tail.c for
	trie suffix implementation. Adjusted some API to not require size_t.

	* datrile/fileutils.h: Added more functions required by tail.c.

	* datrie/trie.c (trie_branch_in_tail): Added check for null suffix.

2006-08-14  Theppitak Karoonboonyanan  <>

	* datrie/, +datrie/darray.c, +datrie/fileutils.h:
	Added darray.c for double-array structure implementation, and 
	fileutils.h declarations for keeping file manipulation functions.

	* datrie/triedefs.h: Added TRIE_CHAR_MAX constant for alphabet
	enumeration. Changed TRIE_INDEX_ERROR to 0, as negative number has its
	own meaning.

2006-08-12  Theppitak Karoonboonyanan  <>

	* === First import the project ===
Results 1 - 1 of 1
Help - FTP Sites List - Software Dir.
Search over 15 billion files
© 1997-2017