X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;ds=sidebyside;f=gom%2Fgom.c;h=630fe6852ef7fb8198a7f7d9acf129769968cef2;hb=HEAD;hp=6e27ab7bbf26b8949b6ce580874026b9ab14f8db;hpb=866835ac8928d7e40919c2ca59799cb37023856f;p=gedcom-parse.git diff --git a/gom/gom.c b/gom/gom.c index 6e27ab7..630fe68 100644 --- a/gom/gom.c +++ b/gom/gom.c @@ -105,19 +105,37 @@ void subscribe_all() int gom_active = 0; +/** This function initializes the object model by parsing the given GEDCOM + file. + + \param file_name The input file + + \retval 0 on success + \retval 1 on failure +*/ int gom_parse_file(const char* file_name) { if (gom_active) { gom_cleanup(); } else { + gedcom_set_compat_options(COMPAT_ALLOW_OUT_OF_CONTEXT); subscribe_all(); } gom_active = 1; - gedcom_set_compat_options(0); return gedcom_parse_file(file_name); } +/** This function starts an empty model. It does this by parsing the + \c new.ged + file in the data directory of the library (\c $PREFIX/share/gedcom-parse). + This can be used to start from an empty model, and to build up the model + by adding new records yourself. + + \retval 0 on success + \retval nonzero on errors (mainly the errors from + \ref gedcom_parse_file()). +*/ int gom_new_model() { if (gom_active) { @@ -130,6 +148,16 @@ int gom_new_model() return gedcom_new_model(); } +/** This function writes the current Gedcom model to a file. + + \param file_name The name of the file to write to + \param total_conv_fails Pass a pointer to an integer if you want to know + the number of conversion failures (filled in on return). You can pass + \c NULL if you're not interested. + + \retval 0 on success + \retval nonzero on errors +*/ int gom_write_file(const char* file_name, int *total_conv_fails) { Gedcom_write_hndl hndl;