File: gedlist.ll

package info (click to toggle)
lifelines 3.0.50-2
  • links: PTS
  • area: main
  • in suites: etch-m68k
  • size: 11,140 kB
  • ctags: 6,517
  • sloc: ansic: 57,468; xml: 8,014; sh: 4,255; makefile: 848; yacc: 601; perl: 170; sed: 16
file content (61 lines) | stat: -rw-r--r-- 1,542 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
 * @progname       gedlist.ll
 * @version        1.1
 * @author         Paul B. McBride (pbmcbride@rcn.com)
 * @category       
 * @output         GEDCOM
 * @description

	gedlist.ll generates a GEDCOM file for the male line of the
	input individuals.

 Algorithm:
	prompt for people
	add male line of each person to set
	add all children to set
	add all spouses to set
	add all parents to set
	generate GEDCOM file

 Author:	 Paul B. McBride (pbmcbride@rcn.com)

 Version:
	1.1 January 10, 2001   correct prompt
 	1.0 September 27, 2000 created from gdc.ll dated February 28, 1996
 */

include("ged_write.li")
 
proc main ()
{
	indiset(set0)
	indiset(set1)		/*declare an indi set*/
	indiset(set2)		/*declare another indi set*/

	getindiset(set0, "Identify people to include in GEDCOM File")

	if(eq(lengthset(set0),0)) { return() }

	/* add everyone in the male line for each person*/

	forindiset(set0, indi, ival, icnt) {
	    addtoset(set1, indi, 1)	/*add that person to set1*/
	    set(fath, indi)
	    while(fath, father(fath)) {
	      addtoset(set1, fath, 1)	/*add the father to set1*/
	    }
	}

	set(set2, childset(set1))	/* add all the children */
	set(set1, union(set1, set2))    /* combine set1 and set2 */

 	set(set2, spouseset(set1))	/* add all the spouses */
	set(set1, union(set1, set2))    /* combine set1 and set2 */

	set(set2, parentset(set1))	/* find everyone's parents */
        set(set1, union(set1, set2))    /* combine set1 and set2 */

	call ged_write(set1)		/* write out GEDCOM file */
}

/* end of report */