I decided it was important at this juncture to change the data structure to include the GEDCOM data exactly as it is in the file and to change the structure from lines-based to records-based. Previously I had taken some shortcuts and internally modified some of the GEDCOM lines to make processing easier later. I would concatenate the lines, convert the character set, change @xxxx@ link references to addresses and more. But that then gave some sort of GEDCOM monster that was no fun to work with.
Not doing that will make it much easier to input and store the data and then later export it back out to GEDCOM. It will make the internal data structure of Behold a truly GEDCOM record-based structure. For some reason, some genealogy programmers think this is good. Personally, I see advantages and disadvantages to it, but the bottom line is “it’s convenient”.
It took a while (hey: a while is now just “a week”!!) to make these changes. Over a year ago, I had tried to implement them, but I bit off a bit more than I could chew, and the program was too complex to rebuild using that data structure so I had to abandon those improvements.
This time, I started with a working version and kept it working as I made the changes one by one. This method worked much better, and the knowledge of where I was going as well as having a prototype of the code already available made this second attempt a success. There are a few small things that I haven’t yet converted over, but those I’ll get done for the next beta. Most people won’t notice them.
Because of this major change, I do expect some bugs. The tests I have run are working, but I expect the real world will find others. You’ve all been great at uncovering new problems for me to fix. Really, do send me them. It’s the only way I can ensure that Behold becomes as bug-free as possible.
And that last version 0.99.5 did have some nasty problems that some people uncovered. I believe this version has fixed almost all of them. So I highly recommend upgrading to 0.99.6.
For a complete list of the changes in this version, see the Behold History page.