FamilySearch / GEDCOM.io

Files for the GEDCOM.io website
2 stars 5 forks source link

example file `spaces.ged` violates the spec #111

Closed tychonievich closed 9 months ago

tychonievich commented 10 months ago

I think that testfiles/gedcom70/spaces.ged should be removed. Its internal TYPEs suggest a subtle yet important misunderstanding of the specification: conflating LineVal and payload.

The LineVal is the sequence of characters after a space after the tag and the before the newline. It must not be empty and if it starts with an @ it must start with two of them.

The payload is the string made by processing the LineVal and any following CONT pseudo-structures. It de-duplicates off leading @@, adds line breaks for CONTs, and is the empty string if there was no LineVal. It also treats the empty string and the lack of a payload as equivalent; or, in more theoretical language, payloads implicitly cast between Ɛ (the empty string) and ∅ (no string at all) as needed by their structure type's expected payload.

Thus

tychonievich commented 10 months ago

Discussed in steering committee; agreed that spaces.ged is in violation of the spec and should be removed from the set of testfiles and unlinked from the tools page