This NEWS file for liblingoteach covers a short overview about the latest changes. 0.2.3 2005-04-21: ------------------- meaning interfaces: * ling_meaning_add() now can handle NULL pointers as root element. * New function ling_meaning_get_description() for retrieving meaning descriptions. * New function ling_meaning_get_phonetic for retrieving the phonetic transcriptions of a meaning. * lingMInfo now contains the image information as returned by ling_meaning_get_images(), too. 0.2.2 2005-03-17: ------------------- General: * Several memory leaks and possible inconsistencies have been fixed. The overall memory usage thus has been reduced. * Several compiler warnings, which could break compatibility on other platforms (especially for Debian GNU/Linux packages) have been fixed. Thanks to Martin Godisch for providing those fixes. conf interfaces: * ling_conf_init_config () now has two new parameters (DTDs) for validating documents against those. * New function ling_config_free_config() for freeing lingConfigs. lang interfaces: * ling_lang_free_languages () has been removed. ling_strings_free () is the replacement. * Renamed ling_lang_get_max_languages() to ling_lang_get_language_amount(). * New functions ling_lang_get_lang_translation(), ling_lang_get_trans_language () and ling_lang_get_lang_translations() for retrieving translations of the languages set in a language file. lesson interfaces: * New sound attribute in lingLesson, indicating the sound subdirectory. * The lesson attribute of a lingMeaning was not correctly set in ling_lesson_create_tree(). This has been fixed. * Removed the use flag, since it is not needed anymore. * Removed ling_lesson_use_lesson(). * Removed ling_lesson_return_used(). * ling_lesson_add_lesson() has been renamed to ling_lesson_add(). * ling_lesson_remove_lesson() has been renamed to ling_lesson_remove(). * ling_lesson_create_lesson() has been renamed to ling_lesson_create(). * ling_lesson_create_new() has been renamed to ling_lesson_create_template(). * ling_lesson_create_template() now uses the appname, which is set set in a passed config for DTDs. * New function ling_lesson_set_path () for setting the path of a lesson. * New function ling_lesson_new () for creating a lingLesson structure. * New function ling_lesson_free() for freeing a lingLesson. * ling_lesson_return_path() has been renamed to ling_lesson_get_path(). * ling_lesson_get_max_meaning() has been renamed to ling_lesson_get_last_meaning_id(). * ling_lesson_return_rand_lesson() has been removed. * New function ling_lesson_get_translation_amount(), which retrieves the total amount of translations for a lesson. meaning interfaces: * Renamed ling_meaning_find_sound() to ling_meaning_get_sound() * ling_meaning_get_sound() will only retrieve the sound path for the meaning now, not the full qualified path. The parameter soundpath has been removed. * ling_meaning_modify_meaning() has been renamed to ling_meaning_replace () to clarify the function behaviour. * ling_meaning_modify() could modify the wrong meaning, if more than one with the same ID was given. This has been fixed. * New function ling_meaning_get_images() for retrieving images. * New function ling_meaning_create_lesson() for creating a lingLesson from of a meaning tree. * New phonetic attribute support in the lingMeaning struct. * New structure lingMInfo for detailled meaning information. * New info attribute in lingMeaning for an attached lingMinfo. * New function ling_meaning_info_new (). * ling_meaning_get_new() has been renamed to ling_meaning_new(). * ling_meaning_save_meanings() has been removed. * ling_meaning_get_another_meaning() has been removed. * Method enum has been removed since it is not longer used. * ling_meaning_get_by_word_id has been renamed to ling_meaning_get_by_id(). * ling_meaning_free_meaning() has been renamed to ling_meaning_free(). * ling_meaning_free_meaning_1() has been renamed to ling_meaning_free_1(). 0.2.1 2003-11-23: ------------------- * ling_conf_set_app_name() and ling_conf_set_lang_file() return NULL on failure instead of NULL or an empty lingConfig * In some cases ling_lang_get_languages() produced memory leaks. This has been fixed. * In some cases ling_lang_get_max_languages() produced memory leaks. This has been fixed. * Some internal lesson functions did not initialize structures correctly. This has been fixed. * Some internal lesson functions did not clean up all memory references, which resulted in high memory usage and possible memory leaks. This has been fixed. * In seldom cases ling_lesson_save_lesson() did not close the file correctly, which could lead to incorrect saving and buggy file contents. This has been fixed. * If meaning ids had negative values, ling_lesson_create_tree() could get mad and produce unwanted results. This has been fixed. * Missing checks for successful memory allocation in ling_lesson_create_tree() could lead to unwanted results and segmentation faults. This has been fixed. * Missing checks could lead to unwated results and segmentation faults due to wrong data passed to libxml2 in ling_meaning_find_sound(). This has been fixed. * A wrong buffer size could lead to segmentation faults when using ling_meaning_save_lesson(). This has been fixed. * ling_meaning_get_by_word_id() could cause a inconsistent memory table in libxml2 due to a missing allocation check. This has been fixed. * ling_meaning_save_meanings() returned TRUE, disregarding if the lesson could be saved to a file or not. This has been fixed. * ling_meaning_get_new() will now initialize all members with NULL or 0. * ling_lang_get_languages will now return -1 on failure * New function ling_lang_free_languages for freeing language arrays created by ling_lang_get_languages. * ling_lesson_return_rand_lesson() can spin in an endless loop due to a wrong check. This is fixed. It now returns NULL if nothing can be found within twenty loop rounds. * Meanings now support additional descriptions. Thanks to Dag Bakke and others for reporting errors. 0.2.0 2003-10-12: ------------------- * Types have been changed to work as linked lists (lingMeaning). * A new type lingLesson for lesson lists has been introduced. * all global variables, except the defines for XPath-validation have been removed. The library can now be used by multiple programs at the same time. * Meaning lists can now easily be modified using different manipulation interfaces like edit, add and remove. * A new type lingConfig is introduced on a per lesson base. * The library now handles application names for all lessons. * All interfaces have changed.