File: gedn.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 (48 lines) | stat: -rw-r--r-- 1,336 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
/*
 * @progname       gedn.ll
 * @version        none
 * @author         anon
 * @category       
 * @output         GEDCOM
 * @description
 *
 * The output of this report is a GEDCOM file of the following: 
 * N generations of ancestors, 
 * all spouses and 
 * all children of these ancestors and 
 * all descendents of a person, 
 * as well as the person him/herself 
 */

include("ged_write.li")

proc main ()
{
 	indiset(set1)		/*declare an indi set*/
 	indiset(set2)		/*declare another indi set*/
 	indiset(set3)		/*declare another indi set*/

 	getindi(ind1)		/*ask user to identify person*/
 	if(ind1) {
		getintmsg(maxgen, "Number of Generations")
	  	print("Finding Ancestors... ")
	  	addtoset(set1, ind1, 1)
	  	set(set2, ancestorset(set1))
	  	print(d(lengthset(set2)), nl())
	  	print("Triming Ancestors to ", d(maxgen), " generations... ")
	        forindiset(set2, ind1, ival, icnt) {
	      	  if(le(ival,maxgen)) {
		    addtoset(set3, ind1, ival)
		  }
		}
	  	print(d(lengthset(set3)), nl())

		set(set2, spouseset(set3))	/* add their spouses */
                set(set1, union(set3, set2))    /* combine set1 and set2 */

		set(set2, childset(set1))	/* find everyone's children */
                set(set1, union(set1, set2))    /* combine set1 and set2 */

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