LifeLines Source Release, Version 3.0.46
http://lifelines.sourceforge.net
-------------------------------------------------------------------------

New features added in 3.0.46
============================
 - Import warns if FAMS, FAMC, HUSB, or WIFE occur where not expected. 

Bug fixes in 3.0.46
============================
 - ASSERT crash if automatically add source to family record (sf#1222702)
 - ASSERT crash due to FAMS pointer in FAM record (sf#1223357)
 - outfile doesn't work in llexec (sf#1223390)

New features added in 3.0.45
============================
 - Kinyarwanda translation

Bug fixes in 3.0.45
============================
 - Fixed count variable in spouses and families report iterations (sf#1219200)
 - Fixed crash upon merging two families (sf#1219209)
 - Fixed memory leaks

Bug fixes in 3.0.44
============================
 - Fixed browing to family (for empty & non-traditional families)
 - Remove keytonod record ASSERT which is firing
 - Fixed some memory leaks

Bug fixes in 3.0.43
============================
 - Fixed some memory leaks
 - ASSERT failures browsing from family to indi

New features added in 3.0.42
============================
- empty() report function can also be used on tables and sets
- dbverify can fix bad family linking references
- dbverify can fix bad deleted/undeleted record status

Bug fixes in 3.0.42
============================
- Fixed ASSERT failure adding 65th skipped key at import
- Fixed some memory leaks

New features added in 3.0.41
============================
- ancestorset and parentset now support non-traditional families

Bug fixes in 3.0.41
============================
- Crash on some systems with ncurses 5.4
- ASSERT failure if report calls undefined function

New features added in 3.0.40
============================
- Delete any record menu choice
- length(SET/TABLE/LIST) report function

Bug fixes in 3.0.40
============================
- Fixed bug in src/liflines/Makefile.am failing compilation (finding libintl.h)
- Fixed merge function, which locked up in infinite loop in 3.0.39

New features added in 3.0.39
============================
- New report function test(mode, file)

Bug fixes in 3.0.39
============================
- Cache bug causes people to be confused intermittently (sf#1015745)
- Add source/event/other could lead to corruption (sf#1059724)
- Importing GED file with keys with leading zeros (eg, I01) led to crash (sf#1094199)
- A bad xref (eg, "@I23") would cause report engine to crash (sf#1093628)
- Inserting 0 into a table could lead to crash (sf#954704)
- Removing unsexed spouse led to ASSERT (sf#1097583,sf#1097608)
- Removing empty child led to ASSERT (sf#1097629)

New features added in 3.0.38
============================
- Two-stage tt conversion via UTF-8
- No more indirect cache
- Unlimited #people may be added to lists and tables (during reports)
- Polish translation
- Dutch translation

Bug fixes in 3.0.38
============================
- Fix nspouses
- Fix display of TTPATH in u/c
- Fix uppercasing of non-ASCII in non-UTF-8 case

Bug fixes in 3.0.37
============================
- AnnotatePointers and ExpandRefnsDuringEdit work together

New features added in 3.0.36
============================
- New option AnnotatePointers
- New option DisplayKeyTags

Bug fixes in 3.0.36
============================
- Fix extra .ged appended to short archives

Bug fixes in 3.0.35
============================
- Fix name corruption bug in 3.0.33 and 3.0.34.

Bug fixes in 3.0.34
============================
- Fix internal translation tables.

Bug fixes in 3.0.33
============================
- Fix crash when opening second database in same session.
- Fix browsing */surname for non-ASCII first initials.
- Fix all edits of indi to expand refns (not all were doing it).
- Prepend UTF-8 BOM for file passed to editor on Windows (when appropriate).

New features added in 3.0.32
============================
- Added the dup() function, which does a "deep" copy of a list.
- New directories created in first directory in LLDATABASES path.

Bug fixes in 3.0.32
============================
- Fix translation table menu to show menu keys.
- Fix basm and barm to not say "bapt" in birth display.
- Peter Fales' bugfix for browsing to lower family from tandem.
- Bugfix for set functions deleting temporary values too early (causing ASSERT).
- Compile fix in wcslen.c (to fix compile on MacOS, re: va_list in arch.h).

Bug fixes in 3.0.31
============================
- Bugfix for crash if one argument passed to (r)sort.
- Call legacy (built-in) translation tables

New features added in 3.0.30
============================
- Some low-level btree validation in dbverify

Bug fixes in 3.0.29
============================
- Import will strip out empty families, and browse will ASSERT
- Import will not import GEDCOMs with more than 50 lines HEAD

Bug fixes in 3.0.28
============================
Fix tandem mode to not default to quit (bug#717421).
Change Greek sigma lowercasing, as recommended by Georg Skillas.
Remove extraneous codeset conversion in str_to_indiseq (fix bug 724761).
Bugfix for illegal character handling in iconv wrapper for Win32.
Change temp file on Win32 to end in .txt extension (so SaveAs UTF-8 works in notepad).
Fix pronouns in German message catalog.

Bug fixes in 3.0.27
============================
- ASSERT failure searching by name
- Cache overflow 

New features added in 3.0.26
============================
- New report functions sort & rsort.

Bug fixes in 3.0.26
============================
- Codeset translation incorrect in menu items

New features added in 3.0.25
============================
- Tries harder to diplay info on birth & death
- HTML & TEX subcodings added to translation tables
- Regularized report summaries (in report subdir)
- Reports elapsed time during report execution

Bug fixes in 3.0.25
============================
- Report NODE references lock person in cache
- keypad fix to prevent crash on Solaris
- Allow user to read error before invoking report debugger
- Fix misparsing of BC dates without month
- report memory leaks fixed
- Fix addnode, detachnode, writeindi, writefam (report functions)
- Fix crash editing place abbrev table
- Switch to uilocale for ui functions during report interpretation

Bug fixes in 3.0.24
============================
- Fixed broken use of last person for add child
- Fixed compilation on Darwin
- Fixed list functions

New features added in 3.0.23
============================

- internal use of UTF-8 has significant improvements
- report functions upper & lower fixed for UTF-8
- ANSEL GEDCOMs may be read (using UTF-8)
- HTML reports using character entities may be written (using UTF-8)

Bug fixes in 3.0.23
============================

- Fixed crash when using $$ to browse to references

New features added in 3.0.22
============================

- Redirected input works on Win32 version
- New option R to choose from list of GEDCOM input files
- Config file variables
- Danish translation
- Simpler win32 binary package (includes gettext & iconv dlls, and
  translations unzip into place)

New features added in 3.0.21
============================

- New commandline option -I to set property name & value

Bug fixes in 3.0.21
============================

- Fix to handle bad system comparison without ASSERT in indiseq.c
- Fix broken -x option (run report directly)

Bug fixes in 3.0.20
============================

- Fix initialization of locale

New features added in 3.0.19
============================

- binary rpm includes message files
- More complete French translation
- Fix for menu item translation in browse screens

New features added in 3.0.18
============================

- Directory structure changes to group sources in src and build stuff in build
- Some improvements in collation & partial UTF-8 support
- French translation (po file)

New features added in 3.0.17
============================

- Change history added (analogous to visit history). Both available off search menu,
  or via commands in browse menus.
- Option to quit current database added to main menu.
- Iconv conversion between Internal (database) and Gui, Editor, Report, & Gedcom codesets.

Bug fixes in 3.0.17
===================

- Browsing to a named list would crash.
- Saving a record with blank REFN would crash.
- Couldn't change the value of a top level other node (not INDI, FAM, EVEN, or SOUR).

Bug fixes in 3.0.16
===================

- A fatal crash was triggered if last item was popped off a list in a report.

New features added in 3.0.15
============================

- Option to list all databases at startup
- Shift page keys to move quickly through long lists
- Prompt after edit if unresolved references

Bug fixes in 3.0.15
===================

- Import was validing but not importing from UTF-8 files with UTF-8 BOM.

New features added in 3.0.13
============================

- Arrow keys, page keys, home/end keys supported in lists & list browse.

New Features Added in 3.0.11
============================

- INDIs without NAMEs are now allowed.

- Records (INDI etc) implicitly convertible to NODEs in reports.

New Features Added in 3.0.7
===========================

- New Display-to-Internal translation table.

- "z" zip browse command changed to "zi" zip for indi and "zz" zip for
  any records. Zip commands added to auxiliary browse screen
  (the browse used for SOUR,EVEN,OTHR records).

- %s,%e,%x options to add SOUR,EVEN,OTHR records directly from
  browse screens, and optionally insert references automatically.

- config file variables & user options made consistent

- Variety of new config options.

- New date modes
   12- year only, old short form
   13- dd/mo yr
   14- as in GEDCOM (truncated to 50 chars)

- A preferred date mode may be selected for use in LifeLines curses UI.

- Variable column menus. Menus at bottom of screen (ie, browse modes)
  may be more than 3 column, and this may be changed on the fly. At
  startup the current width of the screen is used to initialize number
  of menu columns (80 characters gets 3 columns, 120 get 5 columns).

- Msg list. Output messages are buffered & can be reviewed in list, if
  if more than one occurs during a given command.

- UTF-8 support added to report substr & trimname commands. This is
  enabled by setting the useroption "codeset" to "UTF-8".

- Detail area in popup lists (accessible via [ and ] keys).

- New report date commands: titlecase, yearformat, eraformat, datepic
  complexpic

- New report command to help debug reports: global(explicitvars)

- New commandline arguments for batch files on MS-Windows: -x and -o


Bug fixes in 3.0.7
==================

- interp_indisetloop & interp_forlist deleted evaluated value too early.
   (book-latex.ll would crash from line beginning: forindiset(intersect(...)

- dbverify reported soundex-equivalent names for one indi as duplicate names

- traverse could crash due to index and/or buffer falling out of cache

- bugfixes in child_indiseq & difference_indiseq.

- _substring & llindex subject to buffer overflow

- Import not closing file handle. striplead could read before
  beginning of buffer.

- upper or lower could overflow internal buffers

- NULL PSTRINGs (eg, from getindi(), or father()) could crash string
  functions

- fornodes wasn't handling nodes with no children correctly

- was double-deleting strings for filenames named in include statements

- added readonly message when adding/editing S/E/X records
   (instead of ASSERT coredump)

- generic_to_list_string didn't handle NULL keys because of bug

- menuchoose would crash if non-string list item

- Was not saving changes to value of top-level node when editing
  (eg, text directly in the NOTE line of an 'other' NOTE)

- Removed most pvalue leaks in running program(s)

- (Windows) Notepad was appending .txt to temp file, preventing creation
  of new trans tables or user options tables 

- (Windows) Editing user options or trans tables could crash because
  of CR/LF translation causing fread to not report filesize number of bytes

- Deep recursive search with children (or similar) could flush cache & crash
  (Now it will report cache overflow & fail, instead of failing unpredictably
  with no explanation)

- (GEDCOM compliant) French Republic & Hebrew dates were not parsed correctly.


New Features Added in 3.0.6
===========================

- New data in keyfile detects database from platform of wrong alignment

- New environment variable: LLNEWDBDIR

- New gengedcomstrong & weak report functions

- New report functions: 'lastindi' and 'lastfam'

- New name scan option, with wildcards (refer fpattern)
  (new 's' option on main menu)

- Scrolling children (& spouses) in INDI & FAM browse
  ('++' marker at end of lines to indicate more info off-screen)
  (hotkeys '(' and ')' to scroll)

- Direct to child navigation (hotkeys '1','2,','3',...)
  in INDI & FAM browse screens
- Optional numbers in front of children in INDI & FAM screens
  (hotkey '#' toggles)

- New report option lists available reports with summary info
  (new 'p' option on main menu)

- Navigate in db order in INDI & FAM browse (& source & event & other browse)
  (hotkeys '+' and '-')

- New browse sources, events, and others lists & gedcom mode view
  (from extra menu)

- Cross-reference sources from INDI or FAM browse
  (hotkey '$')

- New commandline argument to specify terminal size
  (eg, lines -u120,30)

- New gedcom mode in indi & fam screens
  (hotkey '!')
  (hotkeys '(' and ')' to scroll)

- Improved pedigree screen, with both ancestor & descendent modes
  and scrolling and adjustable generation depth
  (hotkey '&' to toggle ancestor/descendent)
  (hotkeys '[' and ']' to adjust generation depth)
  (hotkeys '(' and ')' to scroll)

- New tool dbverify to check a database for many types of corruption

- New paging & resizable & toggleable menus

- New config file


Bug fixes in 3.0.6
==================

- Merge code would produce ghost REFNs & NAMEs if they were edited

- Ctrl-C from open database prompt would fail

- Using menuchoose() during a report would corrupt screen display

- array & stack overflow if delete a spouse from a family with 3+ spouses

New Features in 3.0.4
=====================

- LifeLines Version 3.0.4, December 15, 1999, is now released under
  an MIT-style license.  See the file LICENSE in included with this
  kit for the full license.
