File: extract_gedcom.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 (53 lines) | stat: -rw-r--r-- 1,657 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
/*
 * @progname       extract_gedcom.ll
 * @version        1.2 of 1995-08-27
 * @author         Scott McGee (smcgee@microware.com)
 * @category       
 * @output         GEDCOM
 * @description

This program allows the user to select a group of individuals from a database
and generate a GEDCOM file for them. It allows selection of multiple people 
by following family links, and then allows addition of all ancestors of the
selected set or of the first individual, and then all descendants of the 
selected set or of the orignal individual. It also allows addition of all 
persons with a specified number of relations to any individual in any of the 
groups added above.

For each person asked about, you will be given some information on them to
aid in deciding if they are the one you want or not. This is similar to a
person display when browsing with LifeLines. 

This program will also output all source records referred to in any person
record in the gedcom output.

Thanks to Tom Wetmore for many small routines that have been addapted for
use in this program as well as LifeLines itself.

Scott McGee
*/

include("extract_set.li")
include("tools.li")
include("outsources.li")

global(first)          /* first person shouldn't be asked about */
global(first_indi)     /* starting person */

proc main () {
  getindi(indi)
  if (indi) {
    set(first_indi, indi)
    set(out, extract_set(indi))
    call extract_gedcom(indi, out)
  }
  else {
    print("No one identified -- terminating\n")
  }
}

proc extract_gedcom(indi, out) {
  print("Generating GEDCOM file for ", d(lengthset(out)), " individuals.\n")
  gengedcom(out)
  call outsources(out)
}