|
29 | 29 | #include "phylib-of-snp-sites.h" |
30 | 30 | #include "parse-phylip.h" |
31 | 31 | #include "string-cat.h" |
32 | | - |
| 32 | +#include "fasta-of-snp-sites.h" |
33 | 33 |
|
34 | 34 | void build_snp_locations(int snp_locations[], char reference_sequence[]) |
35 | 35 | { |
@@ -90,54 +90,45 @@ int generate_snp_sites(char filename[],int output_multi_fasta_file, int output_v |
90 | 90 | char output_filename_base[FILENAME_MAX]; |
91 | 91 | char filename_without_directory[FILENAME_MAX]; |
92 | 92 | strip_directory_from_filename(filename, filename_without_directory); |
93 | | - memcpy(output_filename_base,filename_without_directory, size_of_string(filename_without_directory)+1 ); |
| 93 | + strncpy(output_filename_base, filename_without_directory, FILENAME_MAX); |
94 | 94 |
|
95 | 95 | if(output_filename != NULL && *output_filename != '\0') |
96 | 96 | { |
97 | | - memcpy(output_filename_base,output_filename, size_of_string(output_filename)+1 ); |
| 97 | + strncpy(output_filename_base, output_filename, FILENAME_MAX); |
98 | 98 | } |
99 | 99 |
|
100 | 100 | if(output_vcf_file) |
101 | 101 | { |
102 | | - char * vcf_output_filename; |
103 | | - vcf_output_filename = calloc(FILENAME_MAX,sizeof(char)); |
104 | | - memcpy(vcf_output_filename, output_filename_base, (FILENAME_MAX)*sizeof(char)); |
| 102 | + char vcf_output_filename[FILENAME_MAX]; |
| 103 | + strncpy(vcf_output_filename, output_filename_base, FILENAME_MAX); |
105 | 104 | if((output_vcf_file + output_phylip_file + output_multi_fasta_file) > 1 || (output_filename == NULL || *output_filename == '\0') ) |
106 | 105 | { |
107 | | - char extension[5] = {".vcf"}; |
108 | | - concat_strings_created_with_malloc(vcf_output_filename,extension); |
| 106 | + strcat(vcf_output_filename, ".vcf"); |
109 | 107 | } |
110 | 108 |
|
111 | 109 | create_vcf_file(vcf_output_filename, snp_locations, number_of_snps, bases_for_snps, sequence_names, number_of_samples, length_of_genome); |
112 | | - free(vcf_output_filename); |
113 | 110 | } |
114 | 111 |
|
115 | 112 | if(output_phylip_file) |
116 | 113 | { |
117 | | - char *phylip_output_filename; |
118 | | - phylip_output_filename = calloc(FILENAME_MAX,sizeof(char)); |
119 | | - memcpy(phylip_output_filename, output_filename_base, (FILENAME_MAX)*sizeof(char)); |
| 114 | + char phylip_output_filename[FILENAME_MAX]; |
| 115 | + strncpy(phylip_output_filename, output_filename_base, FILENAME_MAX); |
120 | 116 | if((output_vcf_file + output_phylip_file + output_multi_fasta_file) > 1 || (output_filename == NULL || *output_filename == '\0') ) |
121 | 117 | { |
122 | | - char extension[10] = {".phylip"}; |
123 | | - concat_strings_created_with_malloc(phylip_output_filename,extension); |
| 118 | + strcat(phylip_output_filename, ".phylip"); |
124 | 119 | } |
125 | 120 | create_phylib_of_snp_sites(phylip_output_filename, number_of_snps, bases_for_snps, sequence_names, number_of_samples); |
126 | | - free(phylip_output_filename); |
127 | 121 | } |
128 | 122 |
|
129 | 123 | if((output_multi_fasta_file) || (output_vcf_file ==0 && output_phylip_file == 0 && output_multi_fasta_file == 0)) |
130 | 124 | { |
131 | | - char *multi_fasta_output_filename; |
132 | | - multi_fasta_output_filename = calloc(FILENAME_MAX,sizeof(char)); |
133 | | - memcpy(multi_fasta_output_filename, output_filename_base, (FILENAME_MAX)*sizeof(char)); |
| 125 | + char multi_fasta_output_filename[FILENAME_MAX]; |
| 126 | + strncpy(multi_fasta_output_filename, output_filename_base, FILENAME_MAX); |
134 | 127 | if((output_vcf_file + output_phylip_file + output_multi_fasta_file) > 1 || (output_filename == NULL || *output_filename == '\0') ) |
135 | 128 | { |
136 | | - char extension[20] = {".snp_sites.aln"}; |
137 | | - concat_strings_created_with_malloc(multi_fasta_output_filename,extension); |
| 129 | + strcat(multi_fasta_output_filename, ".snp_sites.aln"); |
138 | 130 | } |
139 | 131 | create_fasta_of_snp_sites(multi_fasta_output_filename, number_of_snps, bases_for_snps, sequence_names, number_of_samples); |
140 | | - free(multi_fasta_output_filename); |
141 | 132 | } |
142 | 133 |
|
143 | 134 | // free memory |
|
0 commit comments