Commit 6373bc1c by Celine Mercier

Temporarily switching back to older bugless fasta libs while fixing a

bug
parent f9d0ac00
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
...@@ -69,34 +69,15 @@ char* fastaSeqPtr_header_add_field(fastaSeqPtr seq, char* name, char* value) ...@@ -69,34 +69,15 @@ char* fastaSeqPtr_header_add_field(fastaSeqPtr seq, char* name, char* value)
element_from_header* table_header_add_field(element_from_header* header, char* name, char* value) element_from_header* table_header_add_field(element_from_header* header, char* name, char* value)
{ {
int nbf; int nbf;
int i, j;
element_from_header* new_header;
nbf = atoi(header[0].value); nbf = atoi(header[0].value);
new_header = (element_from_header*) realloc(header, ((nbf+1)*sizeof(element_from_header))); nbf++;
header = (element_from_header*) realloc(header, (nbf+1)*sizeof(element_from_header));
i=0; header[nbf].name = (char*) malloc((1+strlen(name))*sizeof(char));
while ((strcmp(new_header[i].name, "definition") != 0) && (i < nbf)) strcpy(header[nbf].name, name);
i++; header[nbf].value = (char*) malloc((1+strlen(value))*sizeof(char));
strcpy(header[nbf].value, value);
if (strcmp(new_header[i].name, "definition") == 0) sprintf(header[0].value, "%d", nbf);
{ return(header);
j = nbf-1;
while (strcmp(new_header[j].name, "definition") == 0)
{
new_header[j+1].name = new_header[j].name;
new_header[j+1].value = new_header[j].value;
j--;
}
}
new_header[i].name = (char*) malloc((1+strlen(name))*sizeof(char));
strcpy(new_header[i].name, name);
new_header[i].value = (char*) malloc((1+strlen(value))*sizeof(char));
strcpy(new_header[i].value, value);
sprintf(new_header[0].value, "%d", nbf+1);
return(new_header);
} }
...@@ -105,7 +86,7 @@ void free_header_table(element_from_header* header) ...@@ -105,7 +86,7 @@ void free_header_table(element_from_header* header)
int i; int i;
int nbf = atoi(header[0].value); int nbf = atoi(header[0].value);
for (i = 0; i < nbf; i++) for (i = 0; i <= nbf; i++)
{ {
free((header[i]).name); free((header[i]).name);
free((header[i]).value); free((header[i]).value);
...@@ -120,7 +101,7 @@ char* getItemFromHeader(char* name, element_from_header* header) ...@@ -120,7 +101,7 @@ char* getItemFromHeader(char* name, element_from_header* header)
int nbf; int nbf;
int i; int i;
nbf = atoi(header[0].value); nbf = atoi(header[0].value);
for (i = 1; i < nbf; i++) for (i = 1; i <= nbf; i++)
{ {
if (strcmp(header[i].name,name)==0) if (strcmp(header[i].name,name)==0)
value = header[i].value; value = header[i].value;
...@@ -134,7 +115,7 @@ void changeValue(element_from_header* header, char* name, char* newValue) ...@@ -134,7 +115,7 @@ void changeValue(element_from_header* header, char* name, char* newValue)
int i; int i;
int nbf = atoi(header[0].value); int nbf = atoi(header[0].value);
for (i = 1; i < nbf; i++) for (i = 1; i <= nbf; i++)
{ {
if (strcmp(header[i].name, name)==0) if (strcmp(header[i].name, name)==0)
{ {
......
File mode changed from 100644 to 100755
...@@ -798,7 +798,7 @@ YY_RULE_SETUP ...@@ -798,7 +798,7 @@ YY_RULE_SETUP
(*p_header)[*nbf].value = (char*) malloc(sizeof(char)*size_needed); (*p_header)[*nbf].value = (char*) malloc(sizeof(char)*size_needed);
strcpy(((*p_header)[*nbf]).value,header_yytext); strcpy(((*p_header)[*nbf]).value,header_yytext);
p_header = check_and_realloc_mem_in_header_table(p_header, nbf, memory_allocated); (*nbf)++;
} }
YY_BREAK YY_BREAK
case 3: case 3:
...@@ -820,7 +820,7 @@ YY_RULE_SETUP ...@@ -820,7 +820,7 @@ YY_RULE_SETUP
case 5: case 5:
YY_RULE_SETUP YY_RULE_SETUP
#line 69 "fasta_header_parser.l" #line 69 "fasta_header_parser.l"
{ // TODO {
/*fprintf(stderr,"\n<REGNAME>{SPACE} **%s**",header_yytext);*/ /*fprintf(stderr,"\n<REGNAME>{SPACE} **%s**",header_yytext);*/
if (i != 0) if (i != 0)
field = store_in_field(field,header_yytext,&free_size,&i); field = store_in_field(field,header_yytext,&free_size,&i);
...@@ -886,21 +886,24 @@ case YY_STATE_EOF(REGVAL): ...@@ -886,21 +886,24 @@ case YY_STATE_EOF(REGVAL):
#line 113 "fasta_header_parser.l" #line 113 "fasta_header_parser.l"
{ {
field = store_in_header_table(field, &((*p_header)[*nbf].value), &free_size, &i); field = store_in_header_table(field, &((*p_header)[*nbf].value), &free_size, &i);
(*nbf)++; p_header = check_and_realloc_mem_in_header_table(p_header, nbf, memory_allocated);
end_header_table(p_header, *nbf); end_header_table(p_header, *nbf);
free(field); free(field);
BEGIN(INITIAL); BEGIN(INITIAL);
return 0; return 0;
} }
YY_BREAK YY_BREAK
case YY_STATE_EOF(REGNAME): case YY_STATE_EOF(REGNAME):
#line 122 "fasta_header_parser.l" #line 123 "fasta_header_parser.l"
{ {
(*p_header)[*nbf].name = (char*) malloc(sizeof(char)*19); /*(*p_header)[*nbf].name = (char*) malloc(sizeof(char)*19);
strcpy((*p_header)[*nbf].name,"definition"); strcpy((*p_header)[*nbf].name,"other_informations");
field = store_in_header_table(field, &((*p_header)[*nbf].value), &free_size, &i); field = store_in_header_table(field, &((*p_header)[*nbf].value), &free_size, &i);
(*nbf)++; p_header = check_and_realloc_mem_in_header_table(p_header, nbf, memory_allocated);
end_header_table(p_header, nbf); */
end_header_table(p_header, *nbf);
free(field); free(field);
BEGIN(INITIAL); BEGIN(INITIAL);
return 0; return 0;
...@@ -908,10 +911,10 @@ case YY_STATE_EOF(REGNAME): ...@@ -908,10 +911,10 @@ case YY_STATE_EOF(REGNAME):
YY_BREAK YY_BREAK
case 12: case 12:
YY_RULE_SETUP YY_RULE_SETUP
#line 133 "fasta_header_parser.l" #line 136 "fasta_header_parser.l"
ECHO; ECHO;
YY_BREAK YY_BREAK
#line 915 "<stdout>" #line 918 "<stdout>"
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(REGID): case YY_STATE_EOF(REGID):
yyterminate(); yyterminate();
...@@ -1909,7 +1912,7 @@ void header_yyfree (void * ptr ) ...@@ -1909,7 +1912,7 @@ void header_yyfree (void * ptr )
#define YYTABLES_NAME "yytables" #define YYTABLES_NAME "yytables"
#line 133 "fasta_header_parser.l" #line 136 "fasta_header_parser.l"
...@@ -1920,32 +1923,38 @@ int header_yywrap() ...@@ -1920,32 +1923,38 @@ int header_yywrap()
element_from_header* header_parser_main(char *h) element_from_header* header_parser_main(char *h)
{ {
int nbfields, memory_allocated; int nbfields,memory_allocated;
element_from_header* header; element_from_header* header;
char* nbfields_n; char* nbfields_n;
YY_BUFFER_STATE state; char* nbfields_v;
state=header_yy_scan_string(h); nbfields_n = (char*) malloc(9*sizeof(char));
nbfields_v = (char*) malloc(5*sizeof(char));
memory_allocated=MEMALLOCATED; memory_allocated=MEMALLOCATED;
header = (element_from_header*) malloc(memory_allocated * sizeof(element_from_header)); nbfields=1;
nbfields_n = (char*) malloc(9*sizeof(char));
strcpy(nbfields_n, "nbfields"); strcpy(nbfields_n, "nbfields");
strcpy(nbfields_v, "1");
header = (element_from_header*) malloc(memory_allocated * sizeof(element_from_header));
header[0].name = nbfields_n; header[0].name = nbfields_n;
header[0].value = nbfields_v;
// Initialize memory to store the number of fields YY_BUFFER_STATE state;
header[0].value = (char*) malloc(10*sizeof(char));
nbfields=1; state=header_yy_scan_string(h);
header_parser(&nbfields, &memory_allocated, &header); header_parser(&nbfields, &memory_allocated, &header);
header_yy_delete_buffer(state); header_yy_delete_buffer(state);
return header; return header;
} }
File mode changed from 100644 to 100755
...@@ -53,7 +53,7 @@ EQUAL = ...@@ -53,7 +53,7 @@ EQUAL =
(*p_header)[*nbf].value = (char*) malloc(sizeof(char)*size_needed); (*p_header)[*nbf].value = (char*) malloc(sizeof(char)*size_needed);
strcpy(((*p_header)[*nbf]).value,yytext); strcpy(((*p_header)[*nbf]).value,yytext);
p_header = check_and_realloc_mem_in_header_table(p_header, nbf, memory_allocated); (*nbf)++;
} }
...@@ -66,7 +66,7 @@ EQUAL = ...@@ -66,7 +66,7 @@ EQUAL =
field = store_in_field(field,yytext,&free_size,&i); field = store_in_field(field,yytext,&free_size,&i);
} }
<REGNAME>{SPACE} { // TODO <REGNAME>{SPACE} {
/*fprintf(stderr,"\n<REGNAME>{SPACE} **%s**",yytext);*/ /*fprintf(stderr,"\n<REGNAME>{SPACE} **%s**",yytext);*/
if (i != 0) if (i != 0)
field = store_in_field(field,yytext,&free_size,&i); field = store_in_field(field,yytext,&free_size,&i);
...@@ -112,19 +112,22 @@ EQUAL = ...@@ -112,19 +112,22 @@ EQUAL =
<REGVAL><<EOF>> { <REGVAL><<EOF>> {
field = store_in_header_table(field, &((*p_header)[*nbf].value), &free_size, &i); field = store_in_header_table(field, &((*p_header)[*nbf].value), &free_size, &i);
(*nbf)++; p_header = check_and_realloc_mem_in_header_table(p_header, nbf, memory_allocated);
end_header_table(p_header, *nbf); end_header_table(p_header, *nbf);
free(field); free(field);
BEGIN(INITIAL); BEGIN(INITIAL);
return 0; return 0;
} }
<REGNAME><<EOF>> { <REGNAME><<EOF>> {
(*p_header)[*nbf].name = (char*) malloc(sizeof(char)*19); /*(*p_header)[*nbf].name = (char*) malloc(sizeof(char)*19);
strcpy((*p_header)[*nbf].name,"definition"); strcpy((*p_header)[*nbf].name,"other_informations");
field = store_in_header_table(field, &((*p_header)[*nbf].value), &free_size, &i); field = store_in_header_table(field, &((*p_header)[*nbf].value), &free_size, &i);
(*nbf)++; p_header = check_and_realloc_mem_in_header_table(p_header, nbf, memory_allocated);
end_header_table(p_header, nbf); */
end_header_table(p_header, *nbf);
free(field); free(field);
BEGIN(INITIAL); BEGIN(INITIAL);
return 0; return 0;
...@@ -139,31 +142,37 @@ int header_yywrap() ...@@ -139,31 +142,37 @@ int header_yywrap()
element_from_header* header_parser_main(char *h) element_from_header* header_parser_main(char *h)
{ {
int nbfields, memory_allocated; int nbfields,memory_allocated;
element_from_header* header; element_from_header* header;
char* nbfields_n; char* nbfields_n;
YY_BUFFER_STATE state; char* nbfields_v;
state=yy_scan_string(h); nbfields_n = (char*) malloc(9*sizeof(char));
nbfields_v = (char*) malloc(5*sizeof(char));
memory_allocated=MEMALLOCATED; memory_allocated=MEMALLOCATED;
header = (element_from_header*) malloc(memory_allocated * sizeof(element_from_header)); nbfields=1;
nbfields_n = (char*) malloc(9*sizeof(char));
strcpy(nbfields_n, "nbfields"); strcpy(nbfields_n, "nbfields");
strcpy(nbfields_v, "1");
header = (element_from_header*) malloc(memory_allocated * sizeof(element_from_header));
header[0].name = nbfields_n; header[0].name = nbfields_n;
header[0].value = nbfields_v;
// Initialize memory to store the number of fields YY_BUFFER_STATE state;
header[0].value = (char*) malloc(10*sizeof(char));
nbfields=1; state=yy_scan_string(h);
header_parser(&nbfields, &memory_allocated, &header); header_parser(&nbfields, &memory_allocated, &header);
yy_delete_buffer(state); yy_delete_buffer(state);
return header; return header;
} }
...@@ -52,7 +52,7 @@ void printOnlyHeaderFromTable(element_from_header* header, FILE* output) ...@@ -52,7 +52,7 @@ void printOnlyHeaderFromTable(element_from_header* header, FILE* output)
fprintf(output,">%s ",header[1].value); fprintf(output,">%s ",header[1].value);
for (i = 2; i < nbf; i++) for (i = 2; i <= nbf; i++)
{ {
if (strcmp(header[i].name, "definition") != 0) if (strcmp(header[i].name, "definition") != 0)
{ {
...@@ -60,10 +60,11 @@ void printOnlyHeaderFromTable(element_from_header* header, FILE* output) ...@@ -60,10 +60,11 @@ void printOnlyHeaderFromTable(element_from_header* header, FILE* output)
fprintf(output,"="); fprintf(output,"=");
fprintf(output,"%s; ",header[i].value); fprintf(output,"%s; ",header[i].value);
} }
else if (strcmp(header[i].name, "definition") == 0)
fprintf(output,"%s ", header[i].value);
} }
if (strcmp(header[nbf].name, "definition") == 0)
fprintf(output,"%s; ",header[nbf].value);
fprintf(output,"\n"); fprintf(output,"\n");
} }
......
File mode changed from 100644 to 100755
...@@ -76,7 +76,7 @@ element_from_header** check_and_realloc_mem_in_header_table(element_from_header* ...@@ -76,7 +76,7 @@ element_from_header** check_and_realloc_mem_in_header_table(element_from_header*
{ {
(*nbf)++; (*nbf)++;
if ((*nbf)+1 == *memory_allocated) if (*nbf == *memory_allocated)
{ {
(*memory_allocated)++; (*memory_allocated)++;
*p_header = (element_from_header*) realloc(*p_header, (*memory_allocated) * sizeof(element_from_header)); *p_header = (element_from_header*) realloc(*p_header, (*memory_allocated) * sizeof(element_from_header));
...@@ -87,6 +87,7 @@ element_from_header** check_and_realloc_mem_in_header_table(element_from_header* ...@@ -87,6 +87,7 @@ element_from_header** check_and_realloc_mem_in_header_table(element_from_header*
void end_header_table(element_from_header** p_header, int nbf) void end_header_table(element_from_header** p_header, int nbf)
{ {
*p_header = (element_from_header*) realloc(*p_header, nbf * sizeof(element_from_header)); nbf = nbf - 1;
//fprintf(stderr, "nbf = %d", nbf);
sprintf((*p_header)->value, "%d", nbf); sprintf((*p_header)->value, "%d", nbf);
} }
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment