X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=doc%2Finterface.html;h=5e9d8b23cb980f4eaef7fa1002067c3e40331fc8;hb=f063286d11379bef709dc47d696e4f5b8e9b20c1;hp=68cea056841bd13363a64fd92462228750fcb435;hpb=5ae8605423ad98b85bebd61f9ecf97daa746d534;p=gedcom-parse.git diff --git a/doc/interface.html b/doc/interface.html index 68cea05..5e9d8b2 100644 --- a/doc/interface.html +++ b/doc/interface.html @@ -14,11 +14,11 @@
STRING
STRING
REC_INDI
XREF_PTR(INDI)
XREF_PTR(FAM),
+XREF_PTR(INDI),
+XREF_PTR(NOTE),
+XREF_PTR(OBJE),
+XREF_PTR(REPO),
+XREF_PTR(SOUR),
+XREF_PTR(SUBM),
+XREF_PTR(SUBN)
STRING
DATE
,
ELT_SUB_INDIV_BIRT,
ELT_SUB_INDIV_GEN,
- ELT_SUB_INDIV_ADOP
AGE
,
ELT_SUB_INDIV_BIRT,
ELT_SUB_INDIV_GEN,
- ELT_SUB_INDIV_ADOP
STRING
,
ELT_SUB_INDIV_BIRT,
ELT_SUB_INDIV_GEN,
- ELT_SUB_INDIV_ADOP
STRING
NULL
@@ -1519,6 +1520,7 @@ element start callback.
ELT_SUB_INDIV_BIRT,
ELT_SUB_INDIV_GEN,
ELT_SUB_INDIV_ADOP,
+ELT_SUB_INDIV_EVEN,
ELT_SUB_LIO_BAPL,
ELT_SUB_LIO_SLGC,
ELT_SUB_LSS_SLGS,
@@ -1613,7 +1615,12 @@ element start callback.
ELT_SUB_FAM_EVT
,
ELT_SUB_FAM_EVT_EVEN,
ELT_SUB_INDIV_ATTR,
- ELT_SUB_INDIV_RESI
+ ELT_SUB_INDIV_RESI,
+
+ELT_SUB_INDIV_BIRT,
+ ELT_SUB_INDIV_GEN,
+ ELT_SUB_INDIV_ADOP,
+ELT_SUB_INDIV_EVEN
STRING
@@ -1642,6 +1649,7 @@ element start callback.
ELT_SUB_INDIV_BIRT,
ELT_SUB_INDIV_GEN,
ELT_SUB_INDIV_ADOP,
+ELT_SUB_INDIV_EVEN,
ELT_SUB_LIO_BAPL,
ELT_SUB_LIO_SLGC,
ELT_SUB_LSS_SLGS,
@@ -1857,13 +1865,13 @@ the value that is returned by GEDCOM_STRING(val)
is always the s
raw_value
passed to the start callback, and is thus in fact redundant.
The date value is used for all elements that return a date. See
-here for the definition.
+here for the definition.
The xref value is for cross-references between records in the file. See
-here for the definition.
+here for the definition.
-struct date_value
+struct date_value
This struct describes a date as given in the GEDCOM file, and has the
following definition:
@@ -1991,7 +1999,7 @@ the value that is returned by GEDCOM_STRING(val)
is always the s
- struct date
+ struct date
The date1
and date2
also have a strict syntax:
@@ -2176,7 +2184,7 @@ The modifier can be one of the following:
AGE_NO_MODIFIER
: no modifierAGE_LESS_THAN
: the modifier '<' is addedAGE_GREATER_THAN
: the modifier '>' is added
-struct xref_value
+struct xref_value
This struct represents a cross-reference in the GEDCOM file (but note that
the Gedcom_val
contains a pointer to such a struct, not the struct
@@ -2200,7 +2208,9 @@ be one of:
XREF_REPO
XREF_SOUR
XREF_SUBM
- XREF_SUBN
+ XREF_SUBN
XREF_ANY
(if the type is not known, see below)
+
+
XREF_USER
(for application-specific cross-references)
@@ -2211,6 +2221,10 @@ can be filled by the application with an object (of any type) that corresponds
with the cross-reference, and then later extracted when the cross-reference
is used or defined again in the file. This relieves the application
from the burden of maintaining the mapping between cross-references and objects.
+
+The value XREF_ANY
is used when the type of the object is not
+immediately known: it has to come from further information. This is
+the case in an association (ELT_SUB_ASSO
): the type is then given by the TYPE
subtag.
The parser checks whether all cross-references that are used are defined
(if not, an error is produced) and whether all cross-references that are
@@ -2219,11 +2233,63 @@ the type of the cross-reference is the same on definition and use (if not,
an error is produced). The first two checks are done at the end of
the parsing, because cross-references can be defined after their usage in
GEDCOM.
-
+
+The following functions are available to manipulate xref_value objects:
+struct xref_value* gedcom_get_by_xref (const char *key)
+ Retrieve an xref_value by its key. Returns NULL
if the given key isn't a valid cross-reference key (see below) or isn't used.
+
+ struct xref_value* gedcom_add_xref (Xref_type type, const char* key, Gedcom_ctxt object)
+ Add an xref_value of the given type
(see list above), with the given key
, to the given object
, with a use count equal to 0. Returns the new xref_value if success. Returns NULL
in one of the following cases:
+
+ - the key isn't a valid cross-reference key (see below)
+ - there is already an xref_value with the same key
+ - there was a memory allocation error
+
+
+ int gedcom_delete_xref (const char* key)
+
+ Delete the xref_value corresponding to the given key. Returns 0 if success. Returns 1 in one of the following cases:
+
+ - the key isn't a valid cross-reference key (see below)
+ - there is no xref_value with the given key
+ - the xref_value is still in use, i.e. its use count is not 0 (see
gedcom_link_xref
and gedcom_unlink_xref
below)
+
+
+ struct xref_value* gedcom_link_xref (Xref_type type, const char* key)
+struct xref_value* gedcom_unlink_xref (Xref_type type, const char* key)
+ Declare the xref_value corresponding to the given key as being
+used/no longer used (linked to or unlinked) as the given type. The
+use of these functions is not mandatory, but it can aid in spotting places in the code where xref_value objects are deleted while they are still referenced.
+
+Returns the xref_value object if success, and its use count is incremented/decremented. Returns NULL
in one of the following cases:
+
+ - the key isn't a valid cross-reference key (see below)
+ - there is no xref_value with the given key
+ - the xref_value was previously added as another type than the type provided here
+
+
+
+
+
+
+
+A cross-reference key must be a string of maximum 22 characters, of the following format:
+
+ - an at sign ('@')
+ - followed by an alphanumeric character (A-Z, a-z, 0-9 or underscore)
+ - followed by zero or more characters, which can be any character except an at sign
+ - terminated by an at sign ('@')
+
+An example would thus be: "@This is an xref_val@".
+
$Id$
$Name$
+
+
+
+