Provided by: libdoodle-dev_0.7.2-4_amd64 bug


       libdoodle - multi-suffix tree based file search library 0.7.0


       #include <doodle.h>

        typedef  void  (*DOODLE_Logger)(void * context, unsigned int level, const char * message,

        typedef struct {
          char * filename;
          unsigned int mod_time;
        } DOODLE_FileInfo;

        typedef void (*DOODLE_TreeCallback)(const DOODLE_FileInfo * fileinfo, void * arg);

        unsigned int DOODLE_getFileCount(const struct DOODLE_SuffixTree * tree);

        const DOODLE_File * DOODLE_getFileAt(const struct DOODLE_SuffixTree * tree, unsigned  int

        struct  DOODLE_SuffixTree  *  DOODLE_tree_create(DOODLE_Logger log, void * context, const
       char * database);

        void DOODLE_tree_set_memory_limit(struct DOODLE_SuffixTree *tree, size_t limit);

        void DOODLE_tree_destroy(struct DOODLE_SuffixTree * tree);

        int  DOODLE_tree_expand(struct  DOODLE_SuffixTree  *  tree,   const   unsigned   char   *
       searchString, const char * fileName);

        int DOODLE_tree_truncate(struct DOODLE_SuffixTree * tree, const char * fileName);

        int DOODLE_tree_dump(FILE * stream, struct DOODLE_SuffixTree * tree);

        int DOODLE_tree_search_approx(struct DOODLE_SuffixTree * tree, const unsigned int approx,
       const int ignore_case, const unsigned char * ss, DOODLE_ResultCallback * callback, void  *

        int  DOODLE_tree_search(struct DOODLE_SuffixTree * tree, const unsigned char * substring,
       DOODLE_ResultCallback * callback, void * arg);


       libdoodle is a library that provides a multi-suffix tree to lookup files.  The  basic  use
       is  to  create  a suffix tree, add some keywords (associated with a file), search the tree
       and finally free the tree.  libdoodle features code to quickly serialize the tree  into  a
       compact format.

       In  order  to use libdoodle, client code first creates a tree (passing a callback function
       that will log all error messages associated with this tree and the name of  the  database)
       using  DOODLE_tree_create.   The  tree  can  then  be searched using DOODLE_tree_search or
       DOODLE_tree_search_approx (which requires additional processing  with  DOODLE_tree_iterate
       to  walk  over  the individual results).  The tree can be expanded with new search strings
       (DOODLE_tree_expand) and existing matches can be removed with DOODLE_tree_truncate.  It is
       only  possible  to  remove  all  keywords  for  a  given  file.  With DOODLE_getFileAt and
       DOODLE_getFileCount it is possible to inspect the files that are  currently  in  the  tree
       (and  to  check  if  their respective modification timestamps, useful for keeping track of
       when  an  entry  maybe   outdated).    Finally   the   tree   must   be   released   using
       DOODLE_tree_destroy.   This  writes  the  changes  to  the  disk  and frees all associated

       Example code for using the complete libdoodle API can be found in doodle.c.  If jni.h  was
       found  when libdoodle was compiled, libdoodle will contain methods that allow Java code to
       directly use libdoodle.  See org.gnunet.doodle.Doodle for Java code providing an interface
       to  libdoodle and for a sample main method that demonstrates searching the doodle database
       from Java.


       doodle(1), extract(1), libextractor(3)


       libdoodle and doodle are released under the GPL.


       There is at least one known bug, but nobody was able to reproduce it yet.  But in  general
       things work fine. :-)


       Report  bugs  to  mantis  <>  or  by  sending  electronic  mail to


       doodle was originally written by Christian Grothoff <>.


       You     can     obtain     the     original     author's     latest      version      from