/* burial_index Written 1999, Dennis Nicklaus, nicklaus@fnal.gov Write an (unsorted) list of every person in the database whose burial place contains a requested string (which is the "town" that this report asks for). It matches for the town anywhere in the place field. so town can also be a state or county. Personally, many of my relatives are from Iowa, so I like to make a file of everyone buried in Iowa by entering Iowa to the prompt. For MY typical record, which looks like 1 NAME First /Last/ 1 BIRT 2 DATE 31 Dec 1900 1 DEAT 2 DATE 1 Jan 2000 1 BURI 2 PLAC town,county,state 3 ADDR cemeteryname (technically should be 2 ADDR acc. to new GEDCOM std.) burial_index produces a line which looks like: town,cemeteryname : Last, First (1900-2000) If your database looks like: 1 BURI 2 PLAC cemeteryname,town,county,state Then you'll probably want to change this report around a bit. Where I do: "getel(parts,1)", you'll want: "getel(parts,2) getel(parts,1)". For married women, it attempts to make their name what it may be on their tombstone, that is, the surname of their first husband, but includes a "nee" (= "born", but without the accent mark) and the maiden name. This generally works great for the standard once-married person. If a woman was married multiple times, it puts all the husbands' surnames on there, starting with the first husband, ending with the maiden surname. So my ancestor, Ruth, maiden surname Matthews, who first married E. Scott, 2nd J. Alkire, and 3rd married N. Bates, gets an entry like this: Scott, a.k.a. Alkire, a.k.a. Bates, nee Matthews, Ruth (1831-1917) where a.k.a. stands for "also known as". In doing all this, it'll (possibly wrongly) assume both that a woman was married and took on the father's surname for any family she was a parent in. It's pretty tough to cover every case automatically, so you just have to examine and edit the output when it's done if you care. It is probably useful to run the output of this through Unix sort. There is also a companion program, bury.c, which reformats the sorted output to make it prettier. An example is at: http://www.geocities.com/grandmashannon/iowa_burials.txt */ proc main () { list(parts) getstrmsg(town, "Enter town for burial index") set (town,save(town)) print("Looking for ") print(town) " Burials in " town "\n" forindi(person, number) { set(e,burial(person)) if (and(e,place(e))) { if (index(place(e),town,1)) { extractplaces(e,parts,np) getel(parts,1) call doSite(e) " : " if (female(person)) { /* print out married surnames of women */ set(nffam,nfamilies(person)) families(person,fam,sp,spi) { surname(sp) if (eq(spi,nffam)) { /* the next IF is designed to catch a case where a woman had one child where the father wasn't known and she didn't otherwise marry. In that case, just her maiden surname will appear, no "nee". Odd cases will still circumvent this, and make things look odd, such as multiple kids by different unknown fathers, ... I don't care. */ if (or(sp,gt(nffam,1))) { ", nee " } } else { /* cover the case where the father's name isn't known at all. Don't print an extra "a.k.a". odd cases will still look bad, such as married, then mother with unknown father. */ if (sp) { ", a.k.a. " } } } } fullname(person,0,0,80) " (" year(birth(person)) "-" year(death(person)) ")" "\n" } } } } proc doSite(event) { fornodes(event, subnode) { if (eq(0,strcmp("PLAC", tag(subnode)))) { fornodes(subnode, subnode2) { if (eq(0,strcmp("ADDR", tag(subnode2)))) { ", " value(subnode2) }}}} }