1999-03-04  Philippe Queinnec  <queinnec@enseeiht.fr>

	* Freeze V2-5

	* mycomplete.c (get_y_or_n): rl_abort must be called with two
	  parameters.
	  (my_complete_internal): remove use of savestring.
	  [ port to readline-4.0 ]

Wed Jun 18 18:33:04 1997  Philippe QUEINNEC  <queinnec@enseeiht.fr>
        
        * Freeze V2-4

        * readname.c (readname_titlekeyfile): Y2K bug.

Tue Apr  1 16:08:18 1997  Philippe QUEINNEC  <queinnec@enseeiht.fr>

        * Freeze V2-3.

        * command.c (database_complete): missing unsigned.

Sat Mar 29 15:37:14 1997  Philippe QUEINNEC  <queinnec@enseeiht.fr>

        * config/Makefile.in: IRIX 6.2 doesn't know about CPPFLAGS =>
           included in CFLAGS.

Fri Mar 28 14:09:44 1997  Philippe QUEINNEC  <queinnec@enseeiht.fr>

        * command.c (complete): use my_complete_internal instead of
           rl_complete_internal, to use a translation table.
          (init_readline): set readline variables convert-meta to off,
           output-meta to on and meta-flag to on, to handle iso-8859-1 chars.
          (init_readline): set LESSCHARSET if necessary.

        * array.c: include "translation.h".
          Use tr_strcmp and tr_strncmp to compare strings.
          Use "unsigned char *" instead of "char *".
          (struct array): changed according to new creation.
          (array_create): new interface.
          (convertlowcase): unused.
          (array_insert): simplified: no check for duplicates or unsorted
           insertion.
          (array_get_translations): new.
          (array_save, array_load): array_magic has been splitted in two
           strings: a header and a version number, to simplify detection
           of bad version.

        * array.h: use "unsigned char *" instead of "char *".
          (array_create): new interface, using a translation table. The
           too-numerous options have been removed, except "savable".
          (array_get_translations): new.
          (array_magic_version[]): new (array_magic has been splitted).

        * translation.h: new file. Translation tables, and string
          comparisons according to them.

        * translation.c: new file.

        * readname.c (readname_titlekeyfile): duplicate detection is done
          here after stripping the year.
          (readname_loadtitle): new interface for array_create.
          (readname_loadname): new interface for array_create.

        * mycomplete.h: new file. Completion with readline, using
          translation tables.

        * mycomplete.c: new file.

        * clist.c (init_array): new interface of array_create.

        * cgencompl.c (dump_names): new interface of array_create.
          (dump_titles): new interface of array_create.

        * config/Makefile.in: new files translation.{c,h} and mycomplete.{c,h}
          (TAGS): corrected.

Fri Dec  6 10:49:11 1996  Philippe QUEINNEC  <queinnec@enseeiht.fr>

        * Freeze V2-2.

        * config/Makefile.in (distclean): remove cquery.man and cgencompl.man

Fri Nov  1 15:45:16 1996  Philippe QUEINNEC  <queinnec@enseeiht.fr>

        * config/Makefile.in (install): install-sh installs only one
          program.

Thu Oct 31 16:09:30 1996  Philippe QUEINNEC  <queinnec@enseeiht.fr>

        * config/configure.in: call pq_FUNC_MMAP.

        * config/aclocal.m4 (pq_FUNC_MMAP): check for a half-working mmap
           (on HPUX9 for instance).
          (pq_MSG_CONFIG): use $pq_cv_func_mmap instead of $ac_cv_func_mmap.

Tue Oct 29 14:11:55 1996  Philippe QUEINNEC  <queinnec@enseeiht.fr>

        * array.c (array_load): for mmap, use MAP_PRIVATE instead of
           MAP_SHARED.

Mon Oct 28 09:38:17 1996  Philippe QUEINNEC  <queinnec@enseeiht.fr>

        * config/aclocal.m4: NEW.
        * config/configure.in: NEW.
        * config/Makefile.in: NEW.

        * config/cgencompl.man.in: add FILES section.
        * config/cquery.man.in: add FILES section.

Sat Oct 26 18:07:27 1996  Philippe QUEINNEC  <queinnec@enseeiht.fr>

        * Reorganization: README rewritten. INSTALL is new. MACHINES is gone.
        * NEW: use autoconf.
        * NEW: use mmap if possible.
        * NEW: use zlib library.

        * config: new directory to hold all configuration-related files.

        * array.c (array_getallcompletions): howmany renamed as nbfound,
           because of cpp conflict.
          (array_load): branch to array_zload if bad magic string.
          (array_load): if HAVE_MMAP, use mmap to load the completion file.
          (array_zload): new. Read a compressed completion file.
          (array_do_zload): do the dirty job of array_zload. It's the same
           code as in array_load, except for gzread instead of read. 

        * exec.c (str_dup): new, in place of duplicateString (remove
           dependence on moviedb).
          (docommand): use vfork() instead of fork(). config.h may
           redefine vfork as fork.
          (docommand): NO_WAITPID replaced by HAVE_WAITPID.
          (openfile_readonly): try various extensions before giving up.
          (opencompletion): try various extensions.

        * imoviedb.h (NAMECOMPL,TITLECOMPL): are defined based on COMPLDIR
          instead of DBDIR.

        * cgencompl.c, clist.c, command.c, cquery.c, ctitle.c, readname.c,
          exec.c, array.c: use config.h and HAVE_*.

Fri Sep 20 09:16:47 1996  Philippe QUEINNEC  <queinnec@enseeiht.fr>

        * array.c (array_load): use sizeof(array_magic) instead of
          array_magiclen, as ANSI C forbids use of a const int here.

Wed Jul 17 14:23:21 1996  Philippe QUEINNEC  <queinnec@enseeiht.fr>
        
        * V2-1 was released around that date, but I have forgotten to
          freeze it!

        * cquery.man: Replace Mo with Mb. I am trying to write in English,
           but abbreviations are still French!                  
        * cgencompl.man: Replace Mo with Mb. 

        * readname.c (readname_loadtitle): use opencompletion instead of
            openfile_readonly.
          (readname_loadname): use opencompletion instead of
            openfile_readonly.

        * exec.h (opencompletion): new.
        * exec.c (opencompletion): new. Open a file, and warn if too old.

        * cquery.man: add reference to cgencompl.
           Update databases sizes.

        * array.h: export array_magic and array_magiclen.

        * array.c (array_magic[]): new.
          (array_save): save the magic string.
          (array_load): check the magic string.

Thu Jul 11 10:56:33 1996  Philippe QUEINNEC  <queinnec@enseeiht.fr>

        * NEW: Add dumped databases for very fast loading.

        * Makefile: add reference to the new program cgencompl. The
           following variables or rules have changed: EXEETC, EXE, SRC,
           installbin, cleanbin.

        * cgencompl.man: NEW. cgencompl man page.

        * imoviedb.h: NEW. filenames of the databases for completion.

        * cgencompl.c: NEW. Generate the databases for fast start of
             cquery, ctitle and clist.

        * cquery.c (init_array): removed.
          (main): use readname_loadtitle and readname_loadname instead of
            init_array and complex initialization.

        * ctitle.c: (init_array): removed.
          (handle_args): use readname_loadtitle instead of init_array.
          fromyear, toyear: now unsigned int.

        * clist.c (init_array): use readname_loadname.
          (init_array): use array_nb_of_words.

        * readname.c (readname_titlekeyfile): use array_nb_of_words.
          (readname_namekeyfile): use array_nb_of_words.
          (readname_loadtitle): new. Load the dumped database if available,
            or else use readname_titlekeyfile to load the key file.
          (readname_loadname):  new. Load the dumped database if available,
            or else use readname_namekeyfile to load the key file.

        * readname.h (readname_loadtitle, readname_loadname): new. Load
           the dumped database if available, or else the key files.

        * exec.c (openfile_readonly): new. To open a (potentially)
           compressed file. [Rq: code is commented out. ]

        * exec.h (openfile_readonly): new.

        * array.c: compilation without ECONOMICALLOC is no longer supported.
          (struct Array): add fields for private pool (leftinpool and
            pool) and for saving (savable, nbstringblocks, blocks).
          (keepstring): use a private pool if the array is savable, the
           common pool else. If the array is savable, record the blocks in
           the field a->blocks.
          (array_create): init of new fields.
          (array_destroy): if a->savable, the memory can now be freed.
          (array_nb_of_words): new.
          (array_endinsertion): removed *nbinserted parameter. See
           array_nb_of_words.
          (array_stat): new stats about pools.
          (array_save): all new. Save an array to a file descriptor.
          (array_load): all new. Load an array from a file descriptor.

        * array.h: Comments
          (array_create): add new parameter 'savable'.
          (array_endinsertion): remove second parameter. Use
            array_nb_of_words instead.
          (array_nb_of_words): new.
          (array_save): new.
          (array_load): new.

Tue Mar 28 18:37:14 1995  Philippe QUEINNEC  (queinnec@mozart)

        * array.c (struct Array): add field noduplicates.
          (freestring): new. To complement keepstring().
          (array_create): take new parameter noduplicates.
          (array_destroy): bug in fprintf call. Use freestring.
          (array_insert): handle noduplicates: do not check previous word
          if not necessary.
          (array_delete): use freestring.
          (cmpword): correct typing with const everywhere.
          (array_endinsertion): new parameter *nbinserted.
          (array_endinsertion): add code to remove duplicates, comment it
           out, and explain why...

        * array.h (array_create): new parameter noduplicates, which say to
          not check when inserting if the word is already in the array.
          (array_endinsertion): add parameter *nbinserted.
          Everywhere: add a lots of comments.

        * ctitle.c (init_array): add new parameter to array_create call:
          noduplicates is false.

        * cquery.c (init_array): add new parameter to array_create call:
          noduplicates is true for the names, and false for the titles.

        * clist.c (init_array): add new parameter to array_create call:
          noduplicates is always true.

Sun Mar 26 17:46:31 1995  Philippe QUEINNEC  (queinnec@mozart)

        * Freeze V2-0

        * readname.c (readname_titlekeyfile): add comments, and put
          Dijkstra reference.

        * cquery.c (handle_args): remove Dijkstra reference.

        * ctitle.c (handle_args): remove Dijkstra reference.

Sat Mar 25 17:52:12 1995  Philippe QUEINNEC  (queinnec@mozart)

        * readname.c (readname_titlekeyfile): year starts with /(1/, /(?/
          or /( /.

        * array.c: 
          A few unsigned int have appeared.
          (array_destroy): free strings if !ECONOMICALLOC, else warn user.
          (array_delete): written.
          (array_trycompletion): EXACT or EXACTBUTLONGER were computed too
           soon. They must be computed only after index has moved back to
           the first matching strings.
          (array_dump): written.
          (array_stat): written.

        * array.h: rewrite comments.

        * Makefile: Ooops, typo in SRC.

Sat Mar 25 15:58:52 1995  Philippe QUEINNEC  (queinnec@mozart)

        * cquery.man: update memory requirements.

        * Makefile: replace atree.{c,h} with array.{c,h} and completion.{c,h}

        * clist.c, cquery.c, ctitle.c: use array instead of atree.

        * command.c, command.h: use array instead of atree.

        * readname.c, readname.h: use array instead of atree.

        * completion.h, completion.c: NEW: isolation of Compl_Success
          type, for compatibility between atree and array.

        * memory.c, memory.h: NEW: common interface to array and tree.
           Unnecessary, as atree is no longer used.

        * array.c, array.h: NEW: sorted array with dichotomic search and
           completion.
           A special case is made if insertions are done in alphabetic
           order, in which case, it's not necessary to sort the array at
           the end.
           It's almost as fast as atree (insertion is even lightly
           faster), and use a lot less memory (especially with ECONOMICALLOC).

        * atree.c: Compatibility with array and memory: completion types
          come from completion.h (all macros TREECOMPL_* renamed COMPL_*) 

        * atree.h: Compatibility with array and memory (completion status
          moved to completion.h)

Fri Mar 24 11:07:09 1995  Philippe QUEINNEC  (queinnec@mozart)

        * Freeze V1-6

        * atree.c (UNITOFALLOC): changed to 63 (a power of 2 minus 1)

        * cquery.man, ctitle.man, clist.man: NEW.

Thu Mar 23 15:14:22 1995  Philippe QUEINNEC  (queinnec@mozart)

        * readname.c (readname_namekeyfile): same as previous
          readname_keyfile.
          (readname_titlekeyfile): based on old readname_keyfile. Handles
          removing of year information (stripyear), and year constraints
          (fromyear and toyear).

        * readname.h: readname_keyfile has been splitted into two
          functions: readname_titlekeyfile and readname_namekeyfile.

        * ctitle.c: new variables: keepyear, fromyear, toyear.
          (init_tree): readname_keyfile changed into readname_titlekeyfile.
          (handle_args): add options -keepyear, -from year, -to year

        * cquery.c: new variables: keepyear, fromyear, toyear.
          (init_tree): readname_keyfile changed into readname_namekeyfile
           or readname_titlekeyfile.
          (handle_args): add options -keepyear, -from year, -to year

        * clist.c (options[]): renamed to be the same as list(1).
          (init_tree): readname_keyfile changed into readname_namekeyfile.

Wed Mar 22 09:47:12 1995  Philippe QUEINNEC  (queinnec@mozart)

        * atree.c (getnode): remove ANTIALPHABETIC as this was stupid: if
          words are inserted in alphabetic order, the first son always
          holds the previous inserted letter, so it's the right one, and
          the while loop is executed only once.

Tue Mar 21 19:10:43 1995  Philippe QUEINNEC  (queinnec@mozart)

        * command.c (split_line): comments correction.

        * atree.c (ANTIALPHABETIC): added.
          (createnode): if ANTIALPHABETIC new version.
            if !ANTIALPHABETIC, remove useless tree parameter.
          (getnode): add ANTIALPHABETIC case.

        * atree.h: Translate documentation into English.
          Remove normalchars (medieval history).

Tue Nov 29 12:14:41 1994  Philippe QUEINNEC  (queinnec@mozart)

        * LICENSE: replace old GPL by the new Internet Movie Database
          License.

        * readname.c (readname_keyfile): accept bogus entry "|depl", ie
          without name.

Fri Nov 25 15:55:11 1994  Philippe QUEINNEC  (queinnec@mozart)

        * Freeze V1-5

        * Check that it works with moviedb 3.1.

        * Check that it works with readline 2.0 too.

Mon Nov  7 10:52:07 1994  Philippe QUEINNEC  (queinnec@mozart)

        * exec.c (docommand): add ignore of SIGINT while executing a
          command. As this is not propagated into subprocesses, ^C can
          be used to interrupt a lasting query. A ^C while no request is
          running halts the program.

Fri Jul  1 11:43:49 1994  Philippe QUEINNEC  (queinnec@gogol)

        * Freeze V1-4.

        * command.c (split_line): Detection of >> redirection.
        (name_loop): propagation of changes from split_line().

        * exec.c (docommand): Handling of >> redirection.

        * exec.h: Handling of >> redirection:
          Redirection type created.
          set_default_output() and set_command_output() prototypes changed.

        * ctitle.c (handle_args): -o implies set_default_output(), not
          set_command_output.

        * cquery.c (handle_args): -o implies set_default_output(), not
          set_command_output.
          Include "exec.h".

        * clist.c (init_tree): -o implies set_default_output(), not
          set_command_output.


Tue Jun 28 17:19:19 1994  Philippe QUEINNEC  (queinnec@gogol)

        * exec.c (docommand): don't forget to truncate output file!

Mon Jun 20 16:08:32 1994  Philippe QUEINNEC  (queinnec@gogol)

        * exec.c, exec.h (stringdup): removed (dbutils.c provides
          dupliacteString).

Thu Jun 16 16:58:35 1994  Philippe QUEINNEC  (queinnec@gogol)

        * Freeze V1-3.

        * Makefile: new dependencies

        * command.c (name_loop): mixing from loop() and query_name_loop().
        (name_loop): fix memory leak.
        (init_readline): new initialization.
        (split_line and other places): add local redirection:
          "name>/tmp/foo" or "name|foo".
        (complete and other places): do completion on filenames after '|'
          or '>'. This is the sh*tty part.

        * command.h: loop() has disappeared, replaced by init_commands(),
          the commands and name_loop(). It's far cleaner this way.

        * exec.c (set_default_output, restore_default_output,
          set_command_output): added/rewritten to write local redirection
          of output.
          (stringdup): added.

        * exec.h: export set_default_output, restore_default_output and
          stringdup.

        * cquery.c (main): use init_commands() and new query_loop() which
          uses the new generic name_loop().

        * clist.c (main): use the new generic name_loop() instead of old
          loop().

        * ctitle.c (main): idem.

Tue Jun 14 21:01:28 1994  Philippe QUEINNEC  (queinnec@gogol)

        * command.c: use different prompts based on list/title for cquery.

Sat Jun  4 16:40:26 1994  Philippe QUEINNEC  (queinnec@gogol)

        * freeze V1-2

Thu Jun  2 09:47:53 1994  Philippe QUEINNEC  (queinnec@gogol)

	* exec.c: Replace environment variable MORE by PAGER.

Mon May 30 08:51:18 1994  Philippe QUEINNEC  (queinnec@gogol)

	* command.h: Fixed stupid ; problem...

	* command.h: Export getline().

	* command.c:
	Common code between loop() and query_name_loop() has been moved into
	getline(). This code should be reusable, so getline() is exported.

Fri May 27 12:45:21 1994  Philippe QUEINNEC  (queinnec@gogol)

	* freeze V1-1

	* cquery.c: Add handle_args to handle optional argument -o file.

	* exec.h, exec.c: Initial revision

	* command.c: Move docommand() and the related code into exec.c.

	* ctitle.c: Add handle_args to handle optional argument -o file.

	* clist.c: Rewrite of init_tree to handle optional argument -o file.

	* Makefile: Add exec.c/exec.h.

Wed May 25 09:31:52 1994  Philippe QUEINNEC  (queinnec@gogol)

	* freeze V1-0 aka V0-7

	* command.c: Add help message.

Fri May 20 14:25:25 1994  Philippe QUEINNEC  (queinnec@gogol)

	* readname.c:
	- use mapfastNameKeyToText() instead of mapNameKeyToText(): one malloc() and  one free() gained.
	- remove calls to tree_check(): there were used only for statistics. Time is
	  more important.

	* command.c: A free() was not done in one peculiar case.

	* Makefile: CAUXFLAGS default to NDEBUG.

Thu May 19 08:47:45 1994  Philippe QUEINNEC  (queinnec@gogol)

	* freeze V0-6

	* command.c: Configurable use of vfork().
	Use environment variable MORE.

Mon May 16 06:45:54 1994  Philippe QUEINNEC  (queinnec@gogol)

	* freeze V0-5

	* ctitle.c:
	Change ctitle.c to act as ctitle or clistall based on argv[0].

	* clist.c:
	Change clist.c to act as clist or cltrace based on argv[0].

	* Makefile:
	cltrace and clistall are just specialized versions of clist and ctitle.

Fri May 13 14:16:53 1994  Philippe QUEINNEC  (queinnec@gogol)

	* command.c: Lots of changes due to cquery:
	 - include <ctype.h> for isdigit()
	 - module variable tree renamed into completion_tree
	 - docomplete() heavily changed: the TreeCompletion *tc is valid only for
	   one completion. It is destroyed as soon as the completion has returned
	   all the matches. This was necessary, as the completion tree may now
	   change between two successive calls to docomplete().
	 - add set_completion() to set the tree and the completion routine.
	 - init_readline() becomes static and no longer inits the completion routine
	   to call.
	 - loop() now calls init_readline() and set_completion().
	 - loop() is changed for better checks and sooner freeing of memory.
	 - Add support for cquery:
	     - query_get_command() to choose between list/ltrace/...
	     - query_name_loop() rather similar to loop()
	     - query_loop() as an entry point.

	* cquery.c:
	Completion version of list/ltrace/title/listall. Inspired by a mixing of
	clist and ctitle.

	* command.h:  - init_readline() is not longer exported.
	 - query_loop() appears (support for cquery).

	* readname.c:
	readname_keyfile() and readname_dbs() should fail when tree_insert() fails.
	No cleaning is done (beurk!)

	* ctitle.c, cltrace.c, clistall.c, clist.c:
	init_readline() has been moved back into command.c, where it should have
	belonged from the start.

	* atree.c: Add cast (char*) to please HP-UX.

	* Makefile: Add support for cquery.

Wed May 11 12:55:43 1994  Philippe QUEINNEC  (queinnec@gogol)

	* freeze V0-4

	* Makefile: Add support for clistall and cltrace.

	* cltrace.c, clistall.c: Initial revision

Wed May  4 13:06:27 1994  Philippe QUEINNEC  (queinnec@gogol)

	* freeze V0-3

	* readname.c: Upgrade to moviedb 3.0. Complete rewrite (once again!)
	New interfaces:
	 - readname_keyfile(): read the name information in a .key file.
	   this routines needs to know the format of a .key file.
	 - readname_dbs():  read the name information in a .names file, using
	   getName(), getOffset() and mapNameKeyToText() (from dbutils.c). This
	   routine is hopefully portable.
	
	Major implementation differences:
	 - read_a_dbs and the strange loop structure disappear. The previous
	   structure reappear.
	 - use openFile() instead of open_file()

	* readname.h: Upgrade to moviedb 3.0
	New interfaces:
	 - readname_keyfile(): read the name information in a .key file
	 - readname_dbs():  read the name information in a .names file

	* ctitle.c: Upgrade to moviedb 3.0: load the titles database.
	ctitle does not accept options or arguments any longer.

	* clist.c:
	Upgrade to moviedb 3.0: the databases are no longer directly readable.
	Use options (same as `list'), instead of specifying the database name.
	Without option (default), load the names database.

	* Makefile: Upgrade to moviedb 3.0.

Thu Apr 28 15:40:57 1994  Philippe QUEINNEC  (queinnec@gogol)

	* freeze V0-2

	* Makefile: Initial revision

Wed Apr 27 11:38:56 1994  Philippe QUEINNEC  (queinnec@gogol)

	* readname.c:
	Complete rewrite to use the standard routines to handle databases.
	Interface changes: readname() disappears, and is replaced by
	readpersonname(), readpersontitle(), readtitle() and readakatitle().
	
	Everything has been rewritten using readrecord() (from dblib.h),
	readtitlerecord() (from movies.h) and readakarecord() (from aka.h).
	Also use file.h to handle compressed database.

	* readname.h:
	Complete rewrite to use the standard routines to handle databases.
	Interface changes: readname() disappears, and is replaced by
	readpersonname(), readpersontitle(), readtitle() and readakatitle().

	* ctitle.c:
	Propagate changes in readname.c: readname() becomes readtitle(),
	readakatitle() or readpersontitle(), depending on context.

	* clist.c:
	Propagate changes in readname.c: readname() becomes readpersonname().

Wed Apr 20 12:35:16 1994  Philippe QUEINNEC  (queinnec@gogol)

	* freeze V0-1

	* command.c, atree.c: Remove testing code.

Thu Apr 14 12:38:19 1994  Philippe QUEINNEC  (queinnec@gogol)

	* ctitle.c: Integration into the moviedb package:
	 - Remove config.h.
	 - rename DBSPATH into DBDIR.

	* command.c: Integration into the moviedb package:
	 - Remove config.h.

	* clist.c: Integration into the moviedb package:
	 - Remove config.h.
	 - rename DBSPATH into DBDIR.

Tue Apr  5 09:42:35 1994  Philippe QUEINNEC  (queinnec@gogol)

	* command.h, command.c: Initial revision

	* ctitle.c:
	Transfer dolist (renamed into docommand), init_readline and the main loop
	into command.c, which is also used by clist.

	* clist.c:
	Transfer dolist (renamed into docommand), init_readline and the main loop
	into command.c, which is also used by ctitle.

Sat Apr  2 13:16:53 1994  Philippe QUEINNEC  (queinnec@gogol)

	* readname.c, ctitle.c, clist.c, atree.c:
	Port to Dec ALPHA/OSF1 and Solaris.

	* ctitle.c, readname.c, atree.c, readname.h, clist.c:
	ntree.h renamed into atree.h.

	* readname.h: Add comments.
	readname() now takes the field number to include into the tree.

	* readname.c:
	readname() now takes the field number to include into the tree.

	* ctitle.c: Initial version.
	Based on clist.c

	* constants.h, config.h: Initial version.

	* clist.c: - include new config.h
	- list -full is now piped into more. Require waitpid().

	* atree.c:
	- A true tree, with only one root, and no special root nodes.
	- homogeneize function names
	- get_and_create_node and get_node mixed in one function getnode.
	- get_root disappear.
	- tree_delete implemented.

Fri Mar 18 10:18:24 1994  Philippe QUEINNEC  (queinnec@gogol)

	* readname.c: *** empty log message ***

Thu Mar 17 13:27:08 1994  Philippe QUEINNEC  (queinnec@gogol)

	* clist.c: Completion now uses tree_getnextcompletion.
	This is really fast!

	* atree.c: - tree_create() changed (remove commonchars)
	- add static buildstring() and buildstringwithlen()
	- rewrite node_action() with buildstringwithlen()
	- add tree_getallcompletions()
	- add tree_getnextcompletion()

	* atree.h: Add getallcompletions and getnextcompletion.
	Add a few comments (not yet enough).

	* clist.c: With completion, but use tree_getallcompletions.
	Next version will use getnextcompletion, I hope.

Wed Mar 16 13:35:28 1994  Philippe QUEINNEC  (queinnec@gogol)

	* atree.c: Initial revision

	* ntree.c:
	Characters are given in probability order, and only the part of the
	needed array is allocated. This gives a great improvment, but
	it's still insufficient.

	* clist.c: Use readline, but yet not completion.

Tue Mar 15 15:54:36 1994  Philippe QUEINNEC  (queinnec@gogol)

	* clist.c, readname.c, readname.h, ntree.c, atree.h: Initial revision

