I’m working hard to fix up any little things with the cross referencing. The optional values on the GEDCOM line had to be included in the reference. Any leading blanks in the optional values had to be removed. I had find a way to define a name to textually identify a Note, Object, Repository or Source reference, and I had to mark those that had no descriptions that could be used for this identifier.
This type of work involves making incremental “tweaks” to the program. It is quite tricky and sometimes leaves you with a routine that works, but is difficult to read or understand its logic. This step in programming is a necessary evil that messes up the code but is needed to get the program working. The key thing is to always have a program that works, and not get the impulse in the middle of coding to clean things up. There is a later phase for this, which Extreme Programming refers to as “Refactoring”. That involves inspecting code and finding ways to merge common routines and improve the logic, but this should be done only when you’ve got a stable version.