dlugolecki.net.pl
Dziennik
Polecane
Software
projects
/
gedcom-parse.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Moved gedcom_error etc to gedcom.h
[gedcom-parse.git]
/
gedcom
/
xref.c
diff --git
a/gedcom/xref.c
b/gedcom/xref.c
index 1aa3b6c21347685b6312ca271ac7e3f29a721103..ee58ad02eb7534891760e22acc341bef250a521d 100644
(file)
--- a/
gedcom/xref.c
+++ b/
gedcom/xref.c
@@
-126,6
+126,17
@@
int check_xref_table()
return result;
}
return result;
}
+struct xref_value *gedcom_get_by_xref(char *key)
+{
+ hnode_t *node = hash_lookup(xrefs, key);
+ if (node) {
+ struct xref_node *xr = (struct xref_node *)hnode_get(node);
+ return &(xr->xref);
+ }
+ else
+ return NULL;
+}
+
struct xref_value *gedcom_parse_xref(char *raw_value,
Xref_ctxt ctxt, Xref_type xref_type)
{
struct xref_value *gedcom_parse_xref(char *raw_value,
Xref_ctxt ctxt, Xref_type xref_type)
{
@@
-153,9
+164,11
@@
struct xref_value *gedcom_parse_xref(char *raw_value,
xr->used_line = line_no;
}
xr->used_line = line_no;
}
- if ((ctxt == XREF_DEFINED && xr->defined_type != xref_type)
+ if ((ctxt == XREF_DEFINED && xr->defined_type != xref_type &&
+ xr->defined_type != XREF_ANY)
|| (ctxt == XREF_USED &&
|| (ctxt == XREF_USED &&
- (xr->defined_type != XREF_NONE && xr->defined_type != xref_type))) {
+ (xr->defined_type != XREF_NONE && xr->defined_type != xref_type &&
+ xr->defined_type != XREF_ANY))) {
gedcom_error(_("Cross-reference %s previously defined as pointer to %s, "
"on line %d"),
xr->xref.string, xref_type_str[xr->defined_type],
gedcom_error(_("Cross-reference %s previously defined as pointer to %s, "
"on line %d"),
xr->xref.string, xref_type_str[xr->defined_type],