6380: GEDCOM export error for family _UID

Port gramps34 [429c18]
    Applying patch from 2013-12-24 by Enno Borgsteede,
    fixing attribute processing on the path that handled _UID
    and adding another extension, _FSFTID.
This commit is contained in:
Vassilii Khachaturov 2013-12-30 11:03:28 +02:00
parent aa3a3c8270
commit 0e534e598e
2 changed files with 8 additions and 5 deletions

View File

@ -635,7 +635,7 @@ class GedcomWriter(UpdateCallback):
key = str(attr.get_type())
value = attr.get_value().strip().replace('\r', ' ')
if key in ("AFN", "RFN", "REFN", "_UID"):
if key in ("AFN", "RFN", "REFN", "_UID", "_FSFTID"):
self._writeln(1, key, value)
continue
@ -882,10 +882,11 @@ class GedcomWriter(UpdateCallback):
attr_type = int(attr.get_type())
name = libgedcom.FAMILYCONSTANTATTRIBUTES.get(attr_type)
key = str(attr.get_type())
value = attr.get_value().replace('\r', ' ')
if attr_type in ("AFN", "RFN", "REFN", "_UID"):
self._writeln(1, attr_type, value)
if key in ("AFN", "RFN", "REFN", "_UID"):
self._writeln(1, key, value)
continue
if name and name.strip():
@ -893,7 +894,7 @@ class GedcomWriter(UpdateCallback):
continue
else:
self._writeln(1, 'FACT', value)
self._writeln(2, 'TYPE', str(attr.get_type()))
self._writeln(2, 'TYPE', key)
self._note_references(attr.get_note_list(), level+1)
self._source_references(attr.get_citation_list(),

View File

@ -277,6 +277,7 @@ TOKEN_ROLE = 127
TOKEN__MAR = 128
TOKEN__MARN = 129
TOKEN__ADPN = 130
TOKEN__FSFTID = 131
TOKENS = {
"HEAD" : TOKEN_HEAD, "MEDI" : TOKEN_MEDI,
@ -382,7 +383,7 @@ TOKENS = {
"EMAI" : TOKEN_EMAIL, "WWW" : TOKEN_WWW,
"_URL" : TOKEN_URL, "URL" : TOKEN_URL,
"_MAR" : TOKEN__MAR, "_MARN" : TOKEN__MARN,
"_ADPN" : TOKEN__ADPN
"_ADPN" : TOKEN__ADPN, "_FSFTID" : TOKEN__FSFTID,
}
ADOPT_NONE = 0
@ -1010,6 +1011,7 @@ _MAP_DATA = {
TOKEN__STAT : GedLine.calc_attr,
TOKEN__UID : GedLine.calc_attr,
TOKEN_AFN : GedLine.calc_attr,
TOKEN__FSFTID : GedLine.calc_attr,
}
#-------------------------------------------------------------------------