It's been quite a while since I released a new version. Mostly this
has been because I have felt that the program has reached a terminal stage
of development, where further incremental changes would tend not
to improve the program. The current release was prompted by the fact
that I have moved my distribution site and E-mail addresses to
a new location,
which required that I update the program and documentation accordingly.
At the same time, I have incorporated a few minor bug fixes and other changes
that I had made to my development source over the past few years.
- There is now only a single Windows version, which should run on
any recent version of Windows.
- A bug was fixed that resulted in a failure to link texts into
the substructures of a source citation.
- Some changes to the default output program were made to address
certain issues arising from malformed dates in the GEDCOM.
- A bug was fixed in the default output program that would cause
single-letter surnames to appear in the wrong index tab
group in the output.
- Some error messages were corrected.
This release consists of incremental updates and improvements I have
been making since the release of version 3.5 a year and a half ago.
The following changes were made since version 3.5e:
- I've decided to discontinue support for the Windows 3.1 version.
I apologize to those who are still using Windows 3.1, but,
hey, even Microsoft doesn't support it anymore.
- The documentation is now accessible from the program via a "HELP" button,
using the standard Microsoft "HTML Help" viewer.
- New option variables
INCLUDE_INFO_EXT were added.
INCLUDE_PATH variable is a string that is
automatically prepended by the standard output program
to the GEDCOM identifier (RIN) for an individual,
to construct the name of an associated external file to be
included in the HTML output.
The default value is the empty string.
INCLUDE_INFO_EXT variables are strings that are
automatically appended by the standard output program to the
The default values are
INCLUDE_IMAGE_EXT variable is for the first include,
which is intended to be used to include an image of an individual.
INCLUDE_INFO_EXT variable is for the second include,
which is intended to be used to include additional information
about an individual.
- A new
.exists qualifier was added for string
x denotes a string, then
x.exists evaluates to non-null if the string
is the name of an existing file, otherwise to null.
The behavior of
include was changed so that
an error message is produced if an attempt is made to
include a nonexistent file.
The standard output program was modified to test whether
a file exists before attempting to include it.
- New option variables
IGNORE_SOURCES were added.
If set to non-null, then the program will completely
ignore any notes or sources in the input GEDCOM, other
This behavior is different from the previously existing
variables, because the latter variables only suppress the
production of separate notes and sources files, but left the
links intact in the other pages.
- Processing was added for the fields
These fields were previously ignored.
- Processing was added for the fields
These fields were previously ignored.
- An option was added to put dates on the pedigree chart.
The production of dates is controlled by the new option
PEDIGREE_DATES, which has the default
value 1, meaning that dates are produced.
- New qualifiers
were added for individual values. These produce events
similarly to the previously existing
- A new statement,
deftag, was added to the output
language. The syntax is
deftag <id> <expr>,
<id> is a GEDCOM 5.5 tag
<expr> is an expression that evaluates
to a string. The effect is that the default print name
for the specified GEDCOM tag (such as "Individual" or
"Birth") is replaced by the new string. This construct
can be used by the end user to customize the GEDCOM tag
names that get printed out with events; for example, if the
user does not agree with the particular default translation
of the tag name in a particular language.
- A new option variable
NO_LDS_ORDINANCES was added.
If nonzero, then the production of output corresponding
to LDS ordinance information is suppressed.
The default value is zero.
- Support was added for producing Slovenian output.
- Support was added for producing Portuguese output.
- Support was added for producing Afrikaans output.
- The method of sorting individuals in the index was modified so
that individuals with identical names are sorted chronologically
according to any available date information.
- The default output program was changed so that pedigree charts
will not be printed for an individual if there is no information
about that individual's mother or father.
- A problem was corrected in which the output interpreter failed
to interpret array subscripts correctly.
- A bug was corrected that was causing the date in the "Created by"
page footer to come out in the US English locale instead of any
- The old locale names used under FreeBSD were updated to those
currently in use in FreeBSD 3.x.
- A problem was corrected with the interpretation of GEDCOM dates that
- A bug was fixed that caused extra junk to be left at the end of
a text field when
@ was used in the GEDCOM.
- The method for converting strings to upper case was modified
to have the correct results for accented letters.
This conversion should now work correctly, at least for languages
that use the ISO-8859-1 character set. Slovenian is the only
supported language so far that does not use this character set.
- Various minor corrections and improvements were made in the
standard output program.
Another mostly bugfix release that supersedes version 3.5d.
The following changes were made since version 3.5d:
- Incorrect codes in internal tables for the ANSEL character set
were corrected. This problem caused certain international
characters, including "es zet", slash o, thorn, ligature ae,
and various other symbols, to appear incorrectly in the output
for certain GEDCOMs.
- Some minor changes were made to the Swedish language tables.
- Failure of GED2HTML to correctly interpret dates with trailing
spaces was corrected.
- A missing comma was added to the output program. This was causing
a mysterious "00" to be output after the LDS "Temple" tag.
- Father, mother, and child links from family group sheets were
changed to point to places that were a bit more reasonable.
In particular, an attempt is made to always point such links
to the most suitable family group page, if such exists,
giving preference to a page that records the marriage of the
target individual over one that records that individual as
- Code was added to the output program to link to notes and sources
for "Married:" events, the same was as was already done for
"Born:" and "Died:" events.
- Finnish was added to the list of supported languages.
- Some little-used and/or old GEDCOM tag names that appeared to
be coded incorrectly in internal tables were corrected.
Another bugfix release that supersedes version 3.5c.
The following problems in version 3.5c were fixed:
- A problem was corrected that caused the alphabetical index tabs not
to point correctly to the proper surnames in case there were
null surnames in the GEDCOM input.
- A problem was fixed in which children's marriage date/place information
was coming out blank in the parents' family group sheet.
- In family group sheets, father/mother links now point to the
page for the correct marriage, rather than to the first marriage
for the specified individual.
- Superfluous blanks that were being output in the gendex.txt file
- A bug in the output language that prevented subscripted variables
from working properly was corrected.
Another bugfix release that supersedes version 3.5b.
The following problems in version 3.5b were fixed:
- The "standard.g2h" output program was reworked to fix
brokenness in the support of the INLINE_NOTES option,
and to make the INLINE_NOTES and INLINE_SOURCES options
behave like the documentation says they are supposed to.
- A problem was fixed in the "standard.g2h" output program
that caused it to fail during generation of the alphabetical
surnames index in cases where there were individuals
with no surnames.
- The error message claiming that a date is
"missing non-GEDCOM-5.5-compliant: was toned down to state
only that the the date is "missing or uninterpretable".
This is because there are a couple of constructions
in GEDCOM-5.5 dates that GED2HTML does not yet understand,
so it seems best not to declare arrogantly that they
are not GEDCOM-5.5-compliant.
- The behavior of the GED2HTML.EXE dialog screen was changed
so that selecting an options file through the use of
the BROWSE button causes that options file to be loaded
immediately. The failure of this loading to occur has
confused many people in the past.
This additional bugfix release supersedes version 3.5a.
The following problems in version 3.5a were fixed:
- A problem was fixed in which the day of the month portion
of dates failed to appear in the HTML output.
- A problem was fixed that caused error messages and failure
of the program to generate output when the SURNAME_WIDTH
parameter was set to a nonzero value.
- A problem was corrected that caused children in family
group sheet output to be listed with the same marriage
place as their parents.
- The number of error messages printed out in case of
non-GEDCOM-5.5-compliant date strings was limited,
with full details going to the error file.
This bugfix release supersedes version 3.5. The following problems
in version 3.5 were fixed:
- A problem was fixed in which notes that had CONC in them
were being truncated after two lines.
- A workaround was implemented for the situation in which the
GEDCOM file contains non-GEDCOM-5.5-compliant date formats.
(Brother's Keeper appears to be a significant culprit here.)
GED2HTML v3.5 would silently interpret such dates incorrectly.
Version 3.5a now complains loudly about the incorrect date
format, and then simply uses the date string verbatim, rather
than trying to interpret it. This means that non-compliant
dates will not be translated according to the selected
output language or locale.
- A mistake was corrected regarding the transmission of the
"Output Program File" parameter between the GED2HTML.EXE
dialog screen and the G2H.EXE program. The dialog screen
was using the old parameter name TEMPLATE_FILE, rather
than the new parameter name OUTPUT_PROGRAM.
It's been a long time since version 3.1a, and as I've made a fairly
substantial number of improvements, I've bumped the version number
several notches. I didn't go all the way to 4.0, though,
because the changes to the program are primarily evolutionary,
rather than revolutionary. The following summarizes the most important
changes. There have also been many other minor changes and fixes.
- The family group sheet output format has been integrated into
the standard output template program, and it is selectable
via the "Additional Options" field of the dialog box.
- A number of parts of the GEDCOM 5.5 specification that were not
handled before, or were handled only minimally, are now handled
more fully. This includes sources and source citations,
as well as repository information.
- Dates in the GEDCOM are now interpreted by GED2HTML, if possible.
This enables dates to be produced in the HTML output in a
format appropriate for the desired output language
(English, French, etc.)
- The separate output programs for each individual output language
have been merged into a single standard program. This makes it
possible to change the output language via program options,
without having to also use a different output program.
The disadvantage is that the standard output program is now
a daunting piece of code of over 2500 lines, which probably
makes it fairly difficult for non-programmers to make
- The output template now provides some control, via options
variables, of whether notes and sources appear on the same
page as the individual or family to which they pertain,
or else on a separate notes page.
- For surname indexes that aren't too long, the standard template
now uses an alphabetical style that seems to be popular
on the Web. To support this, the output template language
was extended with comparison operators on both integer
and string values.
- Some non-backward-compatible changes were made to the output
language in order to support some of the new features in
this release. These changes primarily have to do with the
additional of additional types of values, and changes in
the meanings of certain qualifiers. If you have made substantial
customizations to the output program, you will want to review
the output language definition.
It's sort of embarrassing to issue a new release a few days after
a previous release, but in this case I had to do it because of a bug
in the new "automatic living detection" feature that could potentially
cause me to get a lot of E-mail.
- A bug was fixed that prevented many dates from being interpreted
correctly, which would in turn cause individuals that should
have been presumed "living" not to be flagged properly.
This release consists of minor bug fixes and changes I introduced in response
to E-mail from users, plus a new experimental output format, ability to
process LDS ordinance information, and a feature for automatic flagging of
- A bug was fixed where when an individual had multiple NAME records,
the last one was chosen as the primary name, rather than the first.
- The standard template was modified to add an indication of whether
the family line continues with a child.
- A new experimental template "famgrp.g2h" was added, which produces
the individual data pages in "family group" format, much in the
style of another popular GEDCOM to HTML converter program.
Although the fact that I could code this template illustrates
the flexibility of the GED2HTML output processor, it wasn't as
straightforward as I would have liked. In the future, I will be
looking into generalizing the output language to make it easier
to generate output formats radically different than the "original"
- Some problems with umlauts in ANSEL-encoded GEDCOMs were fixed.
- Processing was added for LDS ordinance information.
- A bug was fixed that caused a GPF or invalid page fault when
processing a GEDCOM that had undefined cross-reference links
- Several new options variables were added that make it easier
to set background colors or images on the generated HTML pages.
- Added a feature by which GED2HTML will automatically presume a
person to be living if they are born after a specified year
and have no explicit death information.
- Support for output in German and Norwegian has been added.
- The program is now somewhat more forgiving in case there are
undefined cross-reference ID's in the GEDCOM. Previously,
it would often terminate prematurely in the output phase.
Now, it should complete producing the output files in most
- A bug was fixed that prevented options beginning with a digit
from being recognized as strings, even when there was a
preceding double quote.
- Some improvements and extensions to the standard template program.
This version incorporates a few bug fixes and extensions since
version 3.0. Specifically, the following changes were made:
- The processing of "individual attributes", such as EDUC, RELI, RESI,
was broken. These should now work much better.
- The GED2HTML dialog box would mysteriously fail to save options
settings in certain situations. This was due to a parameter
being set too low, which limited the number of changed options
that could be recorded in an options file to 10. I have now
increased this parameter to 100.
- I got rid of a long directory name (templates) that was causing
certain unzip programs to choke on the distribution file.
The template directory is now called "template".
Version 3.0 represents a major rewrite of a large portion of GED2HTML.
The main objective of this rewrite was to modify the internal design of the
program to obtain flexibility for accomodating the GEDCOM 5.5 standard
as fully as possible. There were three main problems with the old design
that stood in the way of doing this: (1) the output template language was
too complicated, making it infeasible to add further features or information
to the output pages; (2) the internal data structures could not accomodate
the additional information allowed by GEDCOM 5.5 without using excessive
amounts of memory; (3) the method of specifying program options was too
complicated and ad hoc to support the introduction of additional
options for output customization. The following is a brief summary of the
main changes in functionality between 2.5b and 3.0:
- The output template language has been completely redesigned.
The new language is much more like an ordinary programming language,
and it actually has some features for finding errors in templates
before they are run, as well as for debugging templates while they
are running. The several output templates that existed in the
previous version have been combined into a single template, and
recoded in the new language.
- The method by which customization options are set has been completely
revised and made more uniform. Nearly all options are now controlled
by setting variables in the output template interpreter.
Many more customization options were added.
- Under Windows, the GED2HTML.EXE dialog box has been redesigned
and substantially extended, so that essentially any program option
can be set from it. It is now possible to save options settings
to a file and recall them on a later run, making it much easier
to associate a different collection of options settings with
each GEDCOM one might wish to run. The dialog box has been
enhanced with "Browse" and "Save As" common dialog boxes for
specifying the GEDCOM, options, and template files.
- The program now has a native Windows 95 version, as well as a
Windows 3.1 version. The Windows 95 version is several times
faster than the Windows 3.1 version.
- An attempt has been made to make GED2HTML compatible with the
current GEDCOM 5.5 standard. Besides INDI and FAM, both
both NOTE and SOUR at level zero are now fully supported.
Though other level-zero records permitted by GEDCOM 5.5 are
not yet supported, the internal design of the program has
been reworked so that it should be much easier to add support
for these records in future releases.
- Support for several character sets other than ISO-8859-1 has
been added. In particular, the program should now do a reasonable
job with international characters encoded in ANSEL,
ISO-8859-1, and IBMPC character sets under DOS code pages
850, 863, and 437.
- The program now supports output in French and Dutch as well
as in English.
- A two-level hierarchical surnames index is now supported, to
reduce the size of the surnames index files for very large
- Notes and sources files can be split up into pieces, so that
each piece is a manageable size.
- The registered and "demo" versions are now identical, except
for the following: (1) the demo version outputs an
UNREGISTERED message on each HTML output page; (2) substitution
of new output template programs is not supported in the demo
version; (3) the demo version will read in, but not produce
output for, GEDCOMs containing over 5000 individuals.
- It is now possible, using an option setting, to switch between
the hash-based assignment of individuals to files and directories
of version 2.5b, and the alphabetical assignment used in
older versions. This should alleviate a common complaint
- The behavior of the !LIVING feature has been placed under the
control of the output template program. The default behavior
is to output the name of a living individual, but no other
information. More or less information can be included by
changing the output template program.
- Better error messages are produced in response to problems with the
GEDCOM being processed.
- It is now possible to access some of the information in the
0 HEAD GEDCOM header record.
- Fixed bug (again!) which caused earlier Windows versions to look
!INCLUDE files in either the directory below
(versions earlier than 2.5) or above (versions 2.5 and 2.5a)
the directory where the documentation says it looks.
- Fixed a bug which caused surname ``JAMES'' to appear before
surname ``JAME'' in the index.
- Fixed a bug in the that was causing links between sources to fail.
- Fixed an omission from the output templates that was causing
sources associated with family events not to appear in the
- Added some documentation about international character sets, and
revised some other parts of the documentation.
- Fixed -w 0 option so it works instead of crashing the program.
- Added a trailer line to the GENDEX files to help in detecting
- Added Kagi Shareware REGISTER.EXE program to provide additional
ways to pay the registration fee under Windows. This should
make it feasible and convenient for non-US users to pay by
- Revamped the scheme for assigning individuals to subdirectories
and files within subdirectories. The new scheme calculates
the particular directory and file in which to put an individual
from the individual's cross-reference ID, so the same individual
will always end up in the same directory and file as long as
the same number of directories and number of files per directory
are used. A new option (
-D n) was added to allow
the user to specify the number of directories to be used.
This should make it possible to link to individual pages from
external documents, and have these links remain valid when the
GEDCOM is re-processed, even if individuals have been added to
the GEDCOM since the first run.
- Added the following feature to aid in eliding information about
living persons: If an 0 INDI record for an individual contains
a field that begins 1 NOTE !LIVING, then all personal data is
deleted from that individual's page and the only information
that is output is the text of the note.
- Eliminated large array allocation that was effectively limiting
the number of individuals that could be processed to 16384
- Changed the option syntax for dumping compiled-in templates
so that it can actually be used under Windows to dump templates
to a file.
- Fixed a problem with empty surnames generating multiple entries
in the surnames index.
- Fixed a problem under Windows, where files to be included in the
HTML output were being looked for in the wrong directory.
- The GENDEX.txt index files now use christening date/place if
no birth information is available, and burial date/place if
no death information is available.
- Fixed bug that could cause infinite looping at end of file on some
Unix systems, and caused weird syntax errors when 8-bit characters
occurred in GEDCOM files under Windows.
- Fixed bug where the alternate index and surname template fields were
interchanged in the GED2HTML.EXE dialog box under Windows.
- Windows executables are much smaller, and probably run a bit faster,
due to the use of different compiler options.
- Introduced changes that cut memory usage in half, and also significantly
- Some progress printout was added to the Windows version,
because people were mailing me telling me that the program
had hung up, when in fact it was just taking a long time.
GED2HTML home page
- GED2HTML is now being released as shareware.
Please see here
for more information.
- New documentation has been written in HTML.
You're reading it.
- The DOS version of the program has been discontinued.
Only the Windows version is in the current release.
The DOS version was pretty useless for GEDCOM's of any
interesting size, anyway.
- A true Windows user interface is now provided to make it
easier and less confusing for most Windows users to run
- Source records are now supported. Previous versions of the
program would only include source information at level 1
within INDI records. Furthermore, full source structures
were not supported. The Version 2.4 handles cross-referenced
source records at level 0, as well as source structures
within INDI, FAM, NOTE, and event structures at higher levels.
The existence of source information is signalled in the output
file by ``footnote markers'' that appear near the information
to which they pertain. The footnote markers link to source
information in separate HTML files.
The chaining of source structures, as described in the
GEDCOM 5.3 draft standard,
is also supported, but it is not thoroughly
tested since I do not have sample GEDCOMs that use this feature.
At present, only source structures chained to other source
records are handled. Chaining of source structures to event
records, though allowed by the GEDCOM 5.3 draft standard,
will result in an error message.
- Performance improvements have been made in the production
of the output files, especially under Windows.
- OCCU, EDUC, and a variety of other tags giving information
about an individual are now processed properly, and the information
appears in the output files.
- Pedigree charts have been changed slightly to be
a little more compact at depths of 4 or greater.
- PERSONS.html is now the name of the top-level index file,
rather than INDEX.html. The latter was an unfortunate
choice that conflicted with defaults built into many Web servers.
- Titles of individual pages now include birth and death dates.
- New template constructs have been added to cause the date
of the run and the version number of GED2HTML to be inserted into
- The Windows version of the program now creates its output
files in a subdirectory HTML, rather than in the directory from
which it was run.
- The hierarchical index algorithm was modified to try to
reduce the frequency of index nodes with hardly any entries in
them. The current scheme adjusts the width of the index nodes
less than the specified maximum width, so that all the nodes at
the same level of the index have close to the same number of entries.
Under certain conditions the top-level index node can still end
up with as few as two entries, but this can be worked around
by adjusting the specified maximum width until better results are
- A few minor bugs were fixed that existed in the previous
version of the program.
Copyright © 1995-2004 Eugene W. Stark. All rights reserved.
SEND ME EMAIL