GED2HTML: Commonly Encountered Problems


Typical General Problems


Typical Windows Problems


Typical Unix Problems


Answers to Problems

Q: When I run the program, I get lots of error messages like the following: Date missing or uninterpretable ('BEF. 1998') at Gedcom line 89

A: These errors are produced because Family Tree Maker does not produce GEDCOM files that are completely GEDCOM-5.5 compliant. There should not be any period after the keywords "BEF", "AFT", and "BET". You can ignore the error messages, though this could affect GED2HTML's ability to do automatic detection of living individuals, because it will not understand some of the dates in your GEDCOM. As a workaround, you can edit the GEDCOM and remove the periods before running GED2HTML.


Q: When I run the program, I get lots of error messages like the following: Missing/incorrect cross-reference ID in 'ALIA' at GEDCOM line 102

A: These errors are produced because Family Tree Maker does not produce GEDCOM files that are completely GEDCOM-5.5 compliant. What should follow the ALIA tag is not a person's name, but rather a cross reference such as @I123@. This error is not very important, and probably doesn't even affect the output of GED2HTML. If you like, you can get rid of the error message by editing the GEDCOM and changing all occurrences of "ALIA" to "NOTE ALIA".


Q: I can't figure out how to run the program under Windows. When I try to run G2H.EXE, a window pops up with a message I can't understand and it just sits there.

A: Don't run G2H.EXE directly. The proper way to launch GED2HTML is to run GED2HTML.EXE, which will pop up a dialog box. The program G2H.EXE gets called automatically from GED2HTML.EXE, once the GEDCOM file and program options have been selected and processing starts.


Q: Everything looks fine on my PC, but when I upload the files to my Web service provider, all the HTML files have suffix ``.htm'' and Netscape doesn't seem to interpret them as HTML files.

A: This is a somewhat technical problem. The easiest solution requires the cooperation of your Web service provider. Web servers generally have a ``mime.types'' configuration file, which lists mappings from filename suffixes to MIME types. This information allows the server to determine what kind of information is in a file by looking at the suffix. The server communicates this information to your browser when the file is retrieved, and the browser, in turn, uses the information to control how the file is displayed. Some servers lack an entry:

text/HTML htm in this file, which would tell them that files ending in ``.htm'' are to be interpreted as HTML source. Your files all end in ``.htm'' because they were created under DOS, and DOS only supports three-letter filename suffixes. It is not sufficient to change the names of all the files to end in ``.html'', because then the names won't match all the links in each of the files. What you need to do is to ask your friendly Web service provider to add the above entry to the server ``mime.types'' configuration file. Usually they will agree to do this for you, as it doesn't have any bad effect, and it will generally help out DOS users who are uploading HTML from their PC's. If they refuse to make this change, you can work around it as described here.


Q: Under Windows 3.1, how can I create all the output files so that their names end in ``.html'', rather than ``.htm''.

A: You can't. The reason is that DOS only supports three-letter filename suffixes, and will truncate anything longer than that. The Windows 95 version of the program does not have this limitation.


Q: I am running Windows 3.1. How can I cause all the HTML files to be generated so that the links in all the individual files specify filenames ending in ``.html'', rather than ``.htm''?

A: You can do this by putting

-D FILENAME_TEMPLATE="%s.html"
in the "Additional Options" field in the GED2HTML dialog box. See here for information on supplying additional options to the Windows version of GED2HTML, and here for information on the special output interpreter variables that can be used to customize GED2HTML behavior.


Q: My Web provider needs to have filenames in 8.3 format, but when running GED2HTML under Windows 95, all the files and links are created with extension ".HTML" instead of ".HTM". When I upload to my provider, none of the links work anymore. How can I arrange for the links to say ".HTM" instead of ".HTML"?

A: Put the following in the "Additional Options" field of the GED2HTML dialog box:

-D FILENAME_TEMPLATE="%s.HTM"
For a further discussion of the HTM/HTML issue, see here. See here for information on supplying additional options to the Windows version of GED2HTML, and here for information on the special output interpreter variables that can be used to customize GED2HTML behavior.


Q: After I upload all the HTML files to my Web service provider, none of the links work, because the file names are all in upper case, but the links specify the file names in lower case.

A: Under Windows, reprocess your GEDCOM with the "Upper" radio button selected in the "Case fold links" button group. Under Unix, initialize the output interpreter variable CASE_FOLD_LINKS to "Upper".

A similar procedure applies if the file names are all in lower case, but the links specify the file names in upper case. See here for a more detailed discussion of the upper-case/lower-case issue.


Q: GED2HTML doesn't seem to find my "include files", which contain HTML code to pull in images of each person in my database. What's wrong?

A: GED2HTML looks for the include files in the destination directory, which is typically called "HTML", and which is where the output files and directories get produced. This is admittedly somewhat counterintuitive, and it might be changed in the future. In the meantime, note that there is a mechanism by which you can use a modified output program to change the directory in which GED2HTML looks for the include files. Specifically, you can change the line that reads:

include i.xref ^ ".img"
to read instead:
include INCLUDE_DIR ^ i.xref ^ ".img"
You will then need to put, for example:
-D INCLUDE_DIR="C:\MYDIR\"
in the "Additional Options" field of the dialog box. The effect of these two changes will be that GED2HTML will look for your image files in the directory C:\MYDIR\, instead of the destination directory.

For more information on modifying the GED2HTML output program, see here.


Q: I wanted to change the background color on my HTML pages, and I tried to put
print "<BODY BGCOLOR="#66ccff">" ;
in the output program. But GED2HTML didn't accept even this simple change.

A: First of all, you probably don't want to be doing this, because the standard GED2HTML output program already has an option for setting the background color. Simply put:

-D BACKGROUND_COLOR="#66ccff"
in the "Additional Options" field under Windows, or as an additional command line argument under Unix. This is one of a number of customizations that are controlled by setting variables in the output interpreter. For a complete list of all such variables and the customizations they control, see here.

If you really do think you want to edit the output program, note that in the output language, it is necessary to escape double quotes within string constants by using a preceding backslash. Thus, the correct change would be:

print "<BODY BGCOLOR=\"#66ccff\">" ;
The escapes are necessary, because otherwise there would be no way to tell a quote that ends a string constant from a quote that is part of the string to be printed. The complete set of escapes understood within string constants is documented here.


Q: How can I use the GIF file "foo.gif" as a background image?

A: Put

-D BACKGROUND_IMAGE="foo.gif"
in the "Additional Options" field under Windows, or as an additional command line argument under Unix. This is one of a number of customizations that are controlled by setting variables in the output interpreter. For a complete list of all such variables and the customizations they control, see here.


Q: I paid my registration fee, now how can I make the program stop putting the UNREGISTERED message in each of the output pages?

A: When I receive your registration, I will send you a password which you can use to download the full version of the program from here. The full version of the program does not produce the UNREGISTERED message.

Q: When I try to compile the program under Unix, I get millions of syntax errors. What is wrong?

A: You are trying to compile the program with a pre-ANSI C compiler. It cannot understand ANSI function prototypes. Get an ANSI C compiler, such as gcc, and use that.


Q: When I link the program under Unix, I get a message ``Undefined symbol _fgetln''. What is wrong?

A: You are running on an older or non-BSD version of Unix that does not have the ``fgetln()'' function. I actually wrote my own implementation of fgetln() and put it in the code, but it is #ifdef'ed out because I would rather use a library version if it exists. Edit the Makefile and delete the ``-DHAVE_FGETLN'' from the ``CFLAGS'' line. Then re-run ``make''.


Q: When I link the program under Unix, I get a message ``Undefined symbol _strdup''. What is wrong?

A: You are running on a version of Unix that does not have the ``strdup()'' function. There is code for it, but it is #ifdef'ed out because I would rather use a library version if it exists. Edit the Makefile and delete the ``-DHAVE_STRDUP'' from the ``CFLAGS'' line. Then re-run ``make''.


Q: When compiling tags.c under Unix, the compiler complains about incompatible types at the line containing ``bsearch()''. What should I do?

A: It may be necessary to place the cast (struct tag *) in front of the call to bsearch() in tags.c, or possibly to change the cast on the function argument to bsearch to make the compiler happy. This is not necessary with gcc, and it is my belief that it should not be necessary under ANSI C.


Q: When compiling main.c under Unix, the compiler complains about SEEK_END being undefined. What should I do?

A: Some people have found that they need to #include <unistd.h> in main.c. My belief is that ANSI C dictates that the constant SEEK_END should be in <stdlib.h>. If you are having this problem, try #include'ing <unistd.h> too.


Q: When compiling output.c under Unix, the compiler complains about FILENAME_MAX being undefined. What should I do?

A: Add -DFILENAME_MAX=1024 to the CFLAGS line in the Makefile, and recompile.


Q: When compiling using gcc under SunOS 4.1.3, I get lots and lots of compiler warnings, but the program compiles and runs. Is this OK?

A: Yes. SunOS 4.1.3 does not have fully ANSI prototyped header files, and you are compiling the program using the -Wall option, which causes gcc to produce warnings for the slightest thing. If you remove -Wall from the CFLAGS line in the Makefile, the program will compile quietly.


GED2HTML home page

Copyright © 1995-2000 Eugene W. Stark. All rights reserved.
SEND ME EMAIL