/usr/share/lifelines/count_dup.ll is in lifelines-reports 3.0.61-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 62 63 | /*
* @progname count_dup.ll
* @version 1.0
* @author anon
* @category
* @output Text
* @description
* Count dups among ancestors?
*/
global(cnttab)
global(indtab)
global(undone)
global(allind)
global(maxcount)
global(maxindi)
proc main() {
list(undone)
list(allind)
table(cnttab)
table(indtab)
getindi(person)
set(maxcount,0)
set(maxindi,person)
call addaperson(person)
set(c,0)
while (person,dequeue(undone)) {
incr(c)
/* print(d(c)," ",key(person),"\n") */
if(eq(mod(c,1000), 0)) {
print(d(c)," ",d(maxcount)," ",key(maxindi)," ",name(maxindi),"\n")
}
if (p,father(person)) { call addaperson(p) }
if (p,mother(person)) { call addaperson(p) }
}
while(p,dequeue(allind)) {
set(count,lookup(cnttab,key(p)))
d(count) " " key(p) " " name(p) " " title(p) "\n"
}
}
proc addaperson(p)
{
enqueue(undone,p)
set(count,lookup(cnttab,key(p)))
if(ne(count,0)) {
set(count, add(count,1))
if(gt(count, maxcount)) {
set(maxcount, count)
set(maxindi, p)
}
} else {
set(count,1)
insert(indtab, key(p), p)
enqueue(allind,p)
}
insert(cnttab, key(p), count)
}
|