a nitty-gritty picyune detail
There is (at least) one bug in query builder. You will only
notice this one if you have tag names greater than 24
chars in length and have the memory checking turned on.
The bug is in several places, whereever a menu is being
newMenu->text = (char *) arrayCreate (BUFFER_SIZE, char);
strcpy(newMenu->text, "menu item string");
This was copying the string into the array structure (length 24)
It should be
newMenu->text (char *) messalloc (BUFFER_SIZE) ;
strcpy (newMenu->text, "menu item string") ;
Likewise the destroy has to be changed to do a messfree.