static void response (GtkWidget *dialog, gint response, EContactMergingLookup *lookup) { switch (response) { case GTK_RESPONSE_OK: doit (lookup, FALSE); break; case GTK_RESPONSE_CANCEL: cancelit (lookup); break; case GTK_RESPONSE_APPLY: if (mergeit (lookup)) break; return; case GTK_RESPONSE_DELETE_EVENT: cancelit (lookup); break; default: g_warn_if_reached (); break; } gtk_widget_destroy (dialog); }
int main(int argc, char **argv) { SNP **snpmarkers ; Indiv **indivmarkers ; int numsnps, numindivs ; unsigned char *packg1, *packg2 ; int **snppos ; int *snpindx ; int lsnplist, lindlist, numeg ; int i,j; SNP *cupt, *cupt1, *cupt2, *cupt3 ; Indiv *indx ; int ch1, ch2 ; int fmnum , lmnum ; int num, n1, n2 ; int nkill = 0 ; int t, k, x ; int nignore, numrisks = 1 ; char **genolist ; int numgenolist ; int maxmiss ; tersem = YES ; // no snp counts readcommands(argc, argv) ; setomode(&outputmode, omode) ; packmode = YES ; settersemode(tersem) ; nums1 = getsnps(snp1, &snpm1, 0.0, NULL, &nignore, numrisks) ; putped(1) ; freeped() ; nums2 = getsnps(snp2, &snpm2, 0.0, NULL, &nignore, numrisks) ; putped(2) ; freeped() ; for (x=0; x<nums1; ++x) { cupt1 = snpm1[x] ; cupt1 -> tagnumber = -1 ; } for (x=0; x<nums2; ++x) { cupt2 = snpm2[x] ; t = x %1000 ; // if (t==0) printf("zz %d %d\n", x, nums2) ; k = snpindex(snpm1, nums1, cupt2 -> ID) ; if (k<0) { cupt2 -> ignore = YES ; continue ; } cupt1 = snpm1[k] ; cupt1 -> tagnumber = x ; t = checkmatch(cupt1, cupt2) ; if (t==1) continue ; if (t==2) { cupt2 -> isrfake = YES ; continue ; } if (t<0) { cupt1 -> ignore = cupt2 -> ignore = YES ; continue ; } printf("allele funny: %s", cupt1 -> ID) ; printalleles(cupt1, stdout) ; printalleles(cupt2, stdout) ; printnl() ; cupt1 -> ignore = cupt2 -> ignore = YES ; continue ; } freesnpindex() ; numi1 = getindivs(ind1, &indm1) ; numi2 = getindivs(ind2, &indm2) ; for (x=0; x<numi2; ++x) { k = indindex(indm1, numi1, indm2[x] -> ID) ; // this code could be modified to allow duplicate individuals if (k>=0) fatalx("dup ind: %s\n", indm2[x] -> ID) ; // fix later? } setgenotypename(&geno1, ind1) ; getped(1) ; getgenos(geno1, snpm1, indm1, nums1, numi1, nignore) ; packg1 = (unsigned char *) getpackgenos() ; clearpackgenos() ; setgenotypename(&geno2, ind2) ; getped(2) ; getgenos(geno2, snpm2, indm2, nums2, numi2, nignore) ; packg2 = (unsigned char *) getpackgenos() ; numindivs = mergeit(snpm1, snpm2, &indm1, indm2, nums1, nums2, numi1, numi2) ; snpmarkers = snpm1 ; numsnps = nums1 ; indivmarkers = indm1 ; free(packg1) ; free(packg2) ; outfiles(snpoutfilename, indoutfilename, genooutfilename, snpmarkers, indivmarkers, numsnps, numindivs, packout, ogmode) ; printf("##end of mergeit run\n") ; return 0 ; }