Gedcom.pm history Release 1.22 - 15th November 2019 - Clarify licence in MYMETA files (Tina Müller) (github 25) Release 1.21 - 14th November 2019 - Add relationship method between two individuals (Nigel Horne) (github 12) - Fix "flush" output (Dabrien 'Dabe' Murphy) (github 24) - Modernise infrastructure - Improve documentation Release 1.20 - 17th September 2016 - Tidy up Makefile (Alberto Simões) (github 17) - Correct WebServices version (pauloscustodio) (github 9) - Fix AGE_AT_EVENT in 5.5.1 grammar (pauloscustodio) (github 8) - Work around Date::Manip API change (Tudor Constantin) (github 7) - Don't warn on using user-defined tags (Nigel Horne) (github 16) - Handle a star at the end of a value (Erin Spiceland) (github 6) - Validation error when there should be no value (Nigel Horne) (github 13) Release 1.19 - 18th August 2013 - Allow CONC and CONT on PAGE (Ken Williams) (github 2) - Make default grammar more lax but also include strict grammar file - Make Text::Soundex a prerequisite Release 1.18 - 24th January 2013 - Get dmake on Windows running again Release 1.17 - 29th December 2012 - Lots of clean-ups (Brian Cassidy) - POD fixes (Brian Cassidy) (rt 31321) - Add half-sibling/-brothers/-sisters (Michael H. Ionescu) (github 1) - Make sex() tolerant of missing information (Michael H. Ionescu) (github 1) - Select correct grammar when adding items (rt 82196) - Some doc fixes (rt 76519) - Change and document method for specifying a top-level xref - Always use correct grammar for notes (based on code from Jonathan Kamens) (rt 45391) - Clean up Makefile.PL (rt 6681) - Handle UTF-8 encoded files and BOMs (rt 79507) - Add grammar for version 5.5.1 Release 1.16 - 24th April 2009 - Allow family to be undef in children_statement in lines2perl - Add basic web services Release 1.15 - 3rd May 2005 - Update mailing list information Release 1.14 - 5th April 2004 - Fix the test routine. Oops - Don't lose the first line of level zero notes Release 1.13 - 6th December 2003 - Add get_ functions to Gedcom.pm, and some tests for them - Gedcom::Individual::surname returns "" when no surname is found - Spell Gedcom::Lifelines::getstrmsg correctly - Use maniread() to read manifest - Add Gedcom::Comparison and gedcom_compare (unfinished) - Add gedcom-5.5.aft.grammar for Ancestry Family Tree (Brad Rubenstein) Release 1.12 - 2nd February 2003 - Ignore CRLF differences in tests - Tighten up and improve XML output - Add some missing functions to lines2perl (John S. Quarterman) Release 1.11 - 7th April 2002 - Improvements to the algorithm in Gedcom::Grammar::item() Release 1.10 - 5th March 2002 - Correct write_xml() documentation - Make Gedcom::Grammar::item() return a list of valid items, not just one - Pick the correct item from the list returned by Gedcom::Grammar::item() - Make Gedcom::Individual::given_names() strip and normalise whitespace - Don't assume another file won't be read while we are reading files by providing an argument to tell() - Fix Gedcom::Lifelines::parents() - Tidy Gedcom::get_individual() and return all matches from all categories in list context - Let Gedcom::Item::write() output 0 values correctly - Let various functions in Gedcom::Record deal with 0 values correctly - Add a pointer flag to Gedcom::Item along with the corresponding function - Gedcom::new without a gedcom_file argument will create an empty Gedcom object with mandatory fields filled in - Add methods to add, delete and change records - Add functions to: Gedcom.pm: add_record() add_header() add_submitter() add_individual() add_family() add_note() add_repository() add_source() add_trailer() Item.pm: parent() delete() pointer() Record.pm: add_record() add() set() get_and_create() Family.pm: add_husband() add_wife() add_child() - Add t/ged_create.t - Change Gedcom::Record::resolve() so that unresolved xrefs do not return undef in list context - Establish the convention that SUBM xrefs start with SUBM to avoid clashes with SOUR - Some reorganisation of the AUTOLOAD functions - Add baptism and endowment information as default to Gedcom::CGI::indi() - Ensure a grammar knows its version number - Always add headers and trailers to a Gedcom file if necessary - Change get_individual to return all matching individuals rather than just those which match in the same category - A number of fixes to Gedcom::Lifelines.pm, some of which are based on work by Tim Lanfear - Update copyright - A little work on the documentation - Some general tidying up - A couple of workarounds for bleadperl bugs that are fixed now Release 1.09 - 12th February 2001 - Improve XML output especially with respect to notes - Quieten some spurious warnings - Fix some bugs reported by users that I don't recall at the moment - Add index file to speed up read_only option - Read files with binmode - keeps Windows happy - Correct line numbers of errors - Use File::Spec so tests pass under Windows - Allow for creation of ppms - Add Gedcom::CGI and cgi-bin/gedcom.cgi Release 1.08 - 8th May 2000 - Allow xrefs to match .+ instead of \w+\d+ - Make XML output valid - Allow extra sub-items of a grammar structure Release 1.07 - 14th March 2000 - Add functions to: Item.pm: item() full_value() - Get parse_grammar working again - Add a test for parse_grammar Release 1.06 - 13th February 2000 - Add functions to: Item.pm: get_item() Record.pm: record() get_record() get_value() tag_record() tag_value() delete_record() - Deprecate use of Item::get_child() - use Item::get_item() instead - Deprecate use of Item::get_children() - use Item::get_item() instead - Deprecate use of Record::child_value() - use Record::tag_value() instead - Deprecate use of Record::child_values() - use Record::tag_value() instead - Complete Lifelines::roman() using Roman.pm - Add check for Roman.pm to Makefile.PL - Add read_only option for lazy parsing - Rename ged.vim to gedcom.vim and package it up for inclusion with Vim - Restructure and abstract away some of the basic tests - Add tests: t/Engine.pm t/Basic.pm t/read_only.t t/resolve.t t/resolve_read_only.t t/birthdates.t t/Lines.pm t/lines.t t/lines/lines.ll t/bias.t t/lines/bias.ll - Use "item" instaed of "child" to represent Gedcom hierarchies - Raname Gedcom::Item::add_children() to Gedcom::Item::add_items() Gedcom::Item::skip_children() Gedcom::Item::skip_items() Gedcom::Item::delete_child() Gedcom::Item::delete_item() Gedcom::Item::delete_children() Gedcom::Item::delete_items() Gedcom::Item::next_record() Gedcom::Item::next_item() Gedcom::Grammar::child() Gedcom::Grammar::item() Gedcom::Grammar::children() Gedcom::Grammar::items() Gedcom::Grammar::valid_children() Gedcom::Grammar::valid_items() - Allow accessor functions in Gedcom::Item to set data too - Bless appropriate objects into Gedcom::Event - Add an experimental write_xml() - Add tutorial section to documentation Release 1.05 - 20th July 1999 - Add LifeLines.pm - Add Event.pm - Add functions to: Gedcom.pm: soundex() Item.pm: level() xref() tag() value() min() max() gedcom() file() line() Individual.pm: name() cased_name() surname() given_names() soundex() sex() older_siblings() younger_siblings() Family.pm: parents() number_of_children() - Change most functions in Individual and Family to check wantarray - Have get_individual check xrefs and soundex - Fix renumber error - xrefs are now calculated and then changed - Change basic.t to reflect renumber fix - Move normalise_dates from Item.pm to Record.pm - Add AUTOLOAD function to Record.pm to provide access based on tag name or description - Change lines2perl to use references to arrays and hashes - Other major changes to lines2perl to increase functionality - Change require 5.004 to require 5.005 - Add check for Text/Soundex.pm to Makefile.PL Release 1.04 - 29th May 1999 - Improve default sort subroutine - Include mailing list information - Add lines2perl - Improve Makefile.PL environment tests - Work around IO::Handle::input_line_number bug Release 1.03 - 13th May 1999 - Add Grammar::child() and Grammar::structure() - Make valid_children more efficient and include min and max information - Add validate_syntax() to Gedcom::Record.pm - Rename Record::validate() to Record::validate_semantics() - Add min(), max() and children() to Gedcom::Grammar.pm - Add GEDC and SUBM to royal.ged to accommodate validate_syntax() - Fix bug which prevented writing of @s around xref values Release 1.02 - 5th May 1999 - Add RIN numbers to royal.ged - Move test.pl to t/basic.t - Make basic.t "use Test" - Add many tests to basic.t - Add pre-parsed grammar files - Add grammar target to Makefile.PL - Add functions to Family.pm and change Individual.pm to use them - Improve error messages reading top level children - Change the profile of renumber() - Internally, remove leading and trailing @ in xrefs - Change order of renumber() to match documentation - Get renumber() to call collect_xrefs() - Add resolve_xref() to Gedcom.pm - Add next_xref() to Gedcom.pm - Add unresolve_xrefs() to compliment resolve_xrefs() Release 1.01 - 27th April 1999 - Add some documentation - Add Individual.pm and Family.pm - Remove get_records() - use get_children() instead - Change get_children() and children() to return a list, rather than a reference to one - Add resolve_xref() and resolve() - Change the profile of collect_xrefs(), resolve_xrefs() and validate() - Add get_individual() - Remove redundant Gedcom::Item::renumber() - Rename child() to child_value() and children() to child_values() - Improve testsuite - Make Date::Manip.pm optional Release 1.00 - Initial release - 8th March 1999