1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-21 08:42:23 +00:00
freebsd-ports/biology/recombine/files/patch-recombine.c
Li-Wen Hsu 5bf9108d86 Add a patch to remove use of gets(3)
PR:		238685
Submitted by:	Walter Schwarzenfeld <w.schwarzenfeld@utanet.at>
Reported by:	emaste
Sponsored by:	The FreeBSD Foundation
2019-09-01 16:40:06 +00:00

169 lines
6.1 KiB
C

--- recombine.c.orig 2019-08-03 09:14:33 UTC
+++ recombine.c
@@ -169,7 +169,7 @@ void openfile(FILE **fp, char *filename,
file[0] = '\0';
while (file[0] =='\0'){
fprintf(stdout,"Please enter a new filename>");
- gets(file);
+ fgets(file,100,stdin);
}
break;
case 'w':
@@ -177,7 +177,7 @@ void openfile(FILE **fp, char *filename,
file[0] = '\0';
while (file[0] =='\0'){
fprintf(stdout,"Please enter a new filename>");
- gets(file);
+ fgets(file,100,stdin);
}
break;
}
@@ -1864,28 +1864,28 @@ if (strchr("#FLAHONESPGUMVRTD",ch) != NU
case 'R':
do {
printf("Relative mutation rate of trait?\n");
- gets(input);
+ fgets(input,LINESIZE,stdin);
op->mutrait = atof(input);
} while (op->mutrait <= 0.0);
break;
case 'T':
do {
printf("Ratio of forward to back trait mutation?\n");
- gets(input);
+ fgets(input,LINESIZE,stdin);
op->traitratio = atof(input);
} while (op->traitratio <= 0.0);
break;
case 'D':
do {
printf("Frequency of trait?\n");
- gets(input);
+ fgets(input,LINESIZE,stdin);
op->pd = atof(input);
} while (op->pd <= 0.0 || op->pd >= 1.0);
break;
case 'A':
do {
printf("Number of drops while resimulating (0-2)?\n");
- gets(input);
+ fgets(input,LINESIZE,stdin);
op->hapdrop = atol(input);
} while (op->hapdrop != 0 && op->hapdrop != 1 && op->hapdrop != 2);
default:
@@ -1972,7 +1972,7 @@ if(strchr("#NQPDITFCRVHWZS12L34AB",ch) !
case 'T':
do {
printf("Transition/transversion ratio?\n");
- gets(input);
+ fgets(input,LINESIZE,stdin);
locus_ttratio = atof(input);
if (locus_ttratio < 0.5)
printf("TTratio cannot be less than 0.5\n");
@@ -1991,13 +1991,13 @@ if(strchr("#NQPDITFCRVHWZS12L34AB",ch) !
op->panel = !op->panel;
if (op->panel) {
printf("Number of populations?\n");
- gets(input);
+ ;
*numpop = atol(input);
op->numpanel = (long *)calloc(*numpop,sizeof(long));
for(i = 0; i < *numpop; i++) {
printf("Number of panel haplotypes for population");
printf(" %ld?\n",i+1);
- gets(input);
+ fgets(input,LINESIZE,stdin);
op->numpanel[i] = atol(input);
}
} else
@@ -2012,7 +2012,7 @@ if(strchr("#NQPDITFCRVHWZS12L34AB",ch) !
if (op->ctgry) {
do {
printf("Number of categories ?");
- gets(input);
+ fgets(input,LINESIZE,stdin);
op->categs = atoi(input);
} while (op->categs < 1);
free(op->rate);
@@ -2091,7 +2091,7 @@ if(strchr("#NQPDITFCRVHWZS12L34AB",ch) !
if (!op->watt) {
do {
printf("Initial theta estimate?\n");
- gets(input);
+ fgets(input,LINESIZE,stdin);
theta0 = atof(input);
} while (theta0 <= 0.0);
}
@@ -2099,7 +2099,7 @@ if(strchr("#NQPDITFCRVHWZS12L34AB",ch) !
case 'Z':
printf("What recombination rate?\n");
do {
- gets(input);
+ fgets(input,LINESIZE,stdin);
rec0 = atof(input);
if (rec0 < 0.0)
printf("recombination rate must be non-negative\n");
@@ -2108,7 +2108,7 @@ if(strchr("#NQPDITFCRVHWZS12L34AB",ch) !
case 'S':
do {
printf("How many Short Chains?\n");
- gets(input);
+ fgets(input,LINESIZE,stdin);
op->numchains[0] = atoi(input);
if (op->numchains[0] < 0)
printf("Must be non-negative\n");
@@ -2118,7 +2118,7 @@ if(strchr("#NQPDITFCRVHWZS12L34AB",ch) !
done = FALSE;
while (!done) {
printf("How often to sample trees?\n");
- gets(input);
+ fgets(input,LINESIZE,stdin);
op->increm[0] = atoi(input);
if (op->increm[0] > 0) done = TRUE;
else printf("Must be a positive integer\n");
@@ -2128,7 +2128,7 @@ if(strchr("#NQPDITFCRVHWZS12L34AB",ch) !
done = FALSE;
while (!done) {
printf("How many short steps?\n");
- gets(input);
+ fgets(input,LINESIZE,stdin);
op->steps[0] = atoi(input);
if (op->steps[0] > 0) done = TRUE;
else printf("Must be a positive integer\n");
@@ -2137,7 +2137,7 @@ if(strchr("#NQPDITFCRVHWZS12L34AB",ch) !
case 'L':
do {
printf("How many Long Chains?\n");
- gets(input);
+ fgets(input,LINESIZE,stdin);
op->numchains[1] = atoi(input);
if (op->numchains[1] < 1)
printf("Must be a positive integer\n");
@@ -2147,7 +2147,7 @@ if(strchr("#NQPDITFCRVHWZS12L34AB",ch) !
done = FALSE;
while (!done) {
printf("How often to sample trees?\n");
- gets(input);
+ fgets(input,LINESIZE,stdin);
op->increm[1] = atoi(input);
if (op->increm[1] > 0) done = TRUE;
else printf("Must be a positive integer\n");
@@ -2157,7 +2157,7 @@ if(strchr("#NQPDITFCRVHWZS12L34AB",ch) !
done = FALSE;
while (!done) {
printf("How many long steps?\n");
- gets(input);
+ fgets(input,LINESIZE,stdin);
op->steps[1] = atoi(input);
if (op->steps[1] > 0) done = TRUE;
else printf("Must be a positive integer\n");
@@ -2239,7 +2239,7 @@ do {
if (menu1) print_startmenu(op,writeout);
else {print_datamenu(op); print_searchmenu(op);}
print_menuend();
- gets(input);
+ fgets(input,LINESIZE,stdin);
ch = toupper((int)input[0]);
done = (ch == 'Y');
if (!done) {