full_value handling of CONC on FindMyPast Gedcoms
nigelhorne opened this issue · 0 comments
nigelhorne commented
This is a bug in FMP not in Gedcom, but since they are very unlikely to help I thought it best asking here for help.
In Item.pm there is this code:
sub full_value {
my $self = shift;
my $value = $self->{value};
$value =~ s/[\r\n]+$// if defined $value;
for my $item (@{$self->_items}) {
my $v = defined $item->{value} ? $item->{value} : "";
$v =~ s/[\r\n]+$//;
$value .= "\n$v" if $item->{tag} eq "CONT";
$value .= $v if $item->{tag} eq "CONC";
}
$value
}
The problem is that if a NOTE record (and perhaps others) or CONC record ends with a space, FMP (and perhaps ACOM) strips it which means that words can run on. I don't know how, but somehow it would be great if that could be worked around.
Maybe something horrible such as this:
$value .= "\n$v" if $item->{tag} eq "CONT";
$value .= ' ' if(($item->{tag} eq 'CONC') && ($value !~ /\s$/)); # Work around FMP
$value .= $v if $item->{tag} eq "CONC";