-- Todo -=
 -------=

before 0.2.0: =
===============

 * BUGFIX:
	+ fix memory leaks:
		+ things that use custom structs are likely to leak memory.
		+ affected files:
			+ ud_tree.c
		+ others aren't affected, because those are not recursive,
		so they were easy to free up. (and db.c is fixed AFAIK)

before 0.4.0: =
===============
	+ A COMPLETE REWRITE.
	+ finish ud_tree.c
		+ add elements on-the-fly.
	+ add an export option.
		+ export the current database using a user
		specified template.
	+ document m3x-text and the ud-tree
	+ rewrite the 'script' interpreter.
		+ see TODO.script for details...
		+ this will allow the user to put multiple commands onto
		one line, so a
		--script="load this.xml; $name = get /name; print $name"
		thing would be possible.
	+ write plug-in support and API.
	+ use gnome_history to construct recent files menuitem.

The complete rewrite -
----------------------

	Before releasing version 0.4.0, I'd like to do a major rewrite.

	The main idea is to separate the backend and the frontends. So
	I'd like to make xml.c, misc.c and db.c a library, of course,
	extended with some new features, such as a command-language.

	What's that command-language is ? Easy. It's almost the same as
	the commands available in m3x-text, only this is in C, like
	cmd_ls and friends (m3x-text.c). They would take at least one
	argument: the 'Object' which they should perform their task on.
	For this purpose a struct should be created, that would hold
	a database and some state variables.

	The frontends only need to know these commands, and nothing
	about what goes on behind the scenes. This would make things
	easier. Writing a new frontend would be quite trivial...

	The hardest thing will be the design... I must make useful
	commands. Probably the best thing would be to make a bunch
	of primitive (low-level) functions, and add some convenience
	wrappers. For example, cmd_ls uses cmd_get to get the node,
	then just lists the hash, cmd_list would use cmd_ls to get
	the list of a hash in GList format, then cmd_get all of
	them, and if they aren't hashes, return the appropriate
	struct, for example MXDBEntry, MXPlayListEntry, or something
	like that. Of course, the struct would consist of a gint type,
	and a union, and the union would contain the actual data.
