4
* @author Tom Wetmore (ttw@shore.net)
9
* output family group summaries in HTML format
12
/* third draft -- 12/27/95 -- Tom Wetmore -- ttw@shore.net */
14
global(pert) /* person table */
15
global(showf) /* families that have been shown */
19
getindi(per0, "Who do you want to start with?")
20
set(fam0, parents(per0))
25
insert(pert, save(key(per0)), lst)
29
while (per, dequeue(perq)) {
30
if (fam, parents(per)) {
31
if (per, husband(fam)) {
32
call makelink(per, fam)
36
call makelink(per, fam)
44
while (fam, dequeue(famq)) {
45
if (not(lookup(showf, key(fam)))) {
47
insert(showf, save(key(fam)), 1)
49
set(husb, husband(fam))
51
if (fam, parents(husb)) { enqueue(famq, fam) }
52
if (fam, parents(wife)) { enqueue(famq, fam) }
57
proc makelink (per, fam)
59
if (lst, lookup(pert, key(per))) {
60
call enqueueifnew(lst, key(fam))
63
enqueue(lst, save(key(fam)))
64
insert(pert, save(key(per)), lst)
68
proc enqueueifnew (lst, key)
70
forlist (lst, el, num) {
71
if (eqstr(key, el)) { return() }
73
enqueue(lst, save(key))
79
families(per, fam, sp, num) {
82
call showchildren(fam)
89
"<A NAME=\"" key(fam) "\"></A>\n"
90
call showone(husband(fam))
91
call showone(wife(fam))
93
call showchildren(fam)
99
if (not(per)) { return() }
100
"<P><STRONG>"name(per, 0)"</STRONG>\n"
101
if (evt, birth(per)) { "<BR>born "long(evt)"\n" }
102
if (evt, death(per)) { "<BR>died "long(evt)"\n" }
103
set(fam, parents(per))
104
if (par, father(per)) {
105
"<BR>father " call showlink(par, key(fam)) "\n"
107
if (par, mother(per)) {
108
"<BR>mother " call showlink(par, key(fam)) "\n"
114
if (evt, marriage(fam)) { "<BR>married "long(evt)"\n" }
117
proc showchildren (fam)
119
if (eq(0, nchildren(fam))) { return() }
120
"<P><STRONG>Children</STRONG>\n"
121
children (fam, per, num) {
122
"<BR>" d(num) " " call showchild(per) "\n"
126
proc showlink (per, key) {
127
set(lst, lookup(pert, key(per)))
128
if (lst) { "<A HREF=\"#" key "\">" }
134
proc showchild (per) {
135
if (lst, lookup(pert, key(per))) {
136
call showlinks(per, lst)
143
proc showlinks (per, lst) /* LOOSEEND -- THIS ROUTINE NEEDS MORE */
145
if (eq(0, length(lst))) {
146
call showlink(per, "start")
148
call showlink(per, getel(lst, 1))
152
proc showevents (per)
155
if (and(evt, year(evt))) { ", b " year(evt) }
157
if (and(evt, year(evt))) { ", d " year(evt) }
161
"<HTML><HEAD><TITLE>Genealogy Page</TITLE></HEAD>\n<BODY>\n"
162
"<A NAME=\"start\"></A>\n"