%include;favicon %include;css %include;hed %message_to_wizard;
%include;perso_utils %include;menubar

%nn; [*link between]%sp; %if;(public_name != "")%public_name;%else;%first_name;%end; %if;(qualifier != "") %qualifier;%end; %sp;%surname; %(%if;(alias != "") (%alias;)%end;%) %sp;[and] [close family]

%define;nth_cousins(xx) [*%s cousins:::xx]%nn; %end; %define;list_ancestor(vvv) %foreach;ancestor_level; %if;(level=vvv+1) %foreach;ancestor; %if;(not is_first) · %end;%ancestor; %end; %end; %end; %end; %define;link(vvv,www,ttt,ddd) %if(www=0 and "ddd"="disabled" and vvv!=0) %else; ttt
%if;(www=0 and vvv>0) %end;%apply;list_ancestor%with;vvv%end;
%end; %end; %define;one_ancestor(vvv,www,ttt) %reset_count; %foreach;ancestor_level; %if;(level=vvv+1) %foreach;ancestor; %incr_count; %end; %end; %end; %apply;link%with;vvv%and;www%and;%count; ttt%and;%if;(count=0)disabled%end;%end; %end; %define;link_cousin(vvv,www,ttt) %let;cousin_vvv_www;%cousins.vvv.www;%in; %if;(cousin_vvv_www!=0) %if;(cousin_vvv_www>bvar.max_cousins)≥%bvar.max_cousins;%else;%cousin_vvv_www;%end; ttt %end; %end; %define;cousin(vvv,www) %cousins.vvv.www; %end; %define;nth_cousins(xx) [%s cousins:::xx]%nn; %end; %( table of cousins.i.level-xxx+i %) %define;table(xxx) %(%let;yyy;%expr(xxx+4)%in; %let;zzz;%expr(xxx+1)%in; %) %foreach;cousin_level; %if;(level>0 and level %for;i;0;xxx; %if;(i!=0 and level+i=xxx) %apply;one_ancestor%with;%i%and;0%and; %if;(i=5)arrière-arrière-arrière-grand-parents
quadrisaïeuls %elseif;(i=4)[great-great-grandparents]
trisaïeuls%nn; %elseif;(i=3)[great-grand-parents]
bisaïeuls%nn; %elseif;(i=2)[grand-parents]
aïeuls%nn; %elseif;(i=1)[parents]%nn; %end;
%end; %elseif;(level+i %end;%) %else; %if;(i=0 and level=xxx) %apply;link%with;0%and;0%nn; %and;%if;is_male;[*him/her]0%elseif;is_female;[*him/her]1%end;%nn; %and;disabled%end; %else;
%end; %end; %end; %end; %end;
%apply;link_cousin%with;%i;%and;%expr(level-xxx+i)%and; %if;(level-xxx+i=1) %if;(i=5)arrière-arrière-grands-oncles/tantes
siblings des trisaïeuls %elseif;(i=4)[siblings of the great-grandparents]
siblings des bisaïeuls%nn; %elseif;(i=3)[siblings of the grandparents]
siblings des aïeuls%nn; %elseif;(i=2)[uncles and aunts]
siblings des parents%nn; %elseif;(i=1)[siblings] (germains/consanguins/utérins)
siblings ou adelphes%nn; %elseif;(i=0)[child/children]c%nn; %end; %elseif;(level-xxx+i=2) %if;(i=5)%apply;a_of_b%with;[cousins]3%and;[great-grand-parents]%end;
arrière-grand-soncles/tantes à la mode de Bourgogne/Bretagne
arrière-arrière-grands-cousins au 1er degré %elseif;(i=4)%apply;a_of_b%with;[cousins]3%and;[a grandfather/a grandmother/a grandparent]2%end;
grand-oncle à la mode de Bourgogne/Bretagne
arrière-grand-cousins 1er %elseif;(i=3)%apply;a_of_b%with;[cousins]3%and;[the father/the mother/a parent]2%end;
oncles/tantes à la mode de Bourgogne/Bretagne
petits-oncles (désuet)
grands-cousins 1er %elseif;(i=2)[a cousin]2 germains
(ou non)
cousins au 1er degré %elseif;(i=1)[a nephew/a niece]4%nn;
cousin·e·s des enfants** %elseif;(i=0)[grandchild/grandchildren]c%nn; %end; %elseif;(level-xxx+i=3) %if;(i=5)cousins issus de germain d’un grand-parent
arrière-grands-cousins au 2e degré %elseif;(i=4)cousins issus de germain d’un parent
grands-cousins 2e %elseif;(i=3)[2nd cousins]
cousins remués de germain (vieilli)
cousins au 2e degré %elseif;(i=2)petits-cousins* (au 1er degré)
cousins issus de germains des enfants**
petits-cousins 1er %elseif;(i=1)[a great-nephew/a great-niece]4%nn; %elseif;(i=0)arrière-petits-enfants*%nn; %end; %elseif;(level-xxx+i=4) %if;(i=5)cousin issus d’issus de germain d’un parent
grands-cousins 3e %elseif;(i=4)[3rd cousins]
petits-cousins
cousins au 3e degré %elseif;(i=3)petits-cousins issus de germain*
cousins issus d’issus de germains des enfants**
petits-cousins 2e %elseif;(i=2)arrière-petits-cousins
arrière-petits-cousins 1er %elseif;(i=1)arrière-petits-neveux/nièces*%nn; %elseif;(i=0)arrière-arrière-petits.-enfants*%nn; %end; %elseif;(level-xxx+i=5) %if;(i=5)cousins issus d’issus d’issus de germains
arrière-petits-cousins
cousins au 4e degré %elseif;(i=4)petits-cousins issus d’issus de germains*
petits-cousins 3e %elseif;(i=3)arrière-petits-cousins 2e %elseif;(i=2)arrière-arrière-petits-cousins
arrière-arrière-petits-cousins 1er %end; %elseif;(level-xxx+i=6) %if;(i=5)petits-cousins au 4e degré %elseif;(i=4)arrière-petits-cousins 3e %elseif;(i=3)arrière-arrière-petits-cousins 2e %end; %elseif;(level-xxx+i=7) %if;(i=5)arrière-petits-cousins 4e %elseif;(i=4)arrière-arrière-petits-cousins 3e %end; %elseif;(level-xxx+i=8) %if;(i=5)arrière-petits-cousins 2e%end; %else;[TODO] %end;
%i/%expr(level-xxx+i) %end;
Descendants of only one ancestor are included in counts (half-siblings/half-cousins…)
%( TODO : cousins.v1=v2.v2=v1 très gourmand, à optimiser, déjà vérifier qu'il a des arr-arr-arr-gd-parents pour que cousin.5.5 puisse exister… surement ajouter un bouton pour calculer ces cousins en + ? un autre pour aller plus loin passé 10 (~30s) ? %)
%( %reset_count; %foreach;cousin_level; %incr_count; %end; %let;max;%count;%in;%)
[*autres cousins]
%for;i;6;10;
%apply;link_cousin%with;%i%and;%i%and; %apply;nth_cousins%with;%apply;nth%with;zero/[nth (cousin)]%and;%i%end;%end; %end;
%end;
%end; %(include;cousins_tools%) %apply;table(6) %include;trl %include;copyr
%include;js