1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#include "default.h"
#include "seq_util.h"
void save_sequence_fields(Sequence_T *seq,
char seq_name[],char seq_title[],int length)
{
STRNCPY(seq->name,seq_name,SEQUENCE_NAME_MAX);
if (seq_title)
seq->title=strdup(seq_title);
else
seq->title=strdup("untitled");
seq->length=length; /* SAVE LENGTH */
}
int create_seq(int nseq,Sequence_T **p_seq,
char seq_name[],char seq_title[],char tmp_seq[],
int do_switch_case)
{
int i,j;
Sequence_T *seq;
REBUFF(*p_seq,nseq,SEQUENCE_BUFFER_CHUNK,Sequence_T); /* ALLOCATE MEMORY*/
seq= (*p_seq)+nseq; /* SET POINTER TO NEWLY ALLOCATED ELEMENT */
for (i=j=0;tmp_seq[i];i++) /* ELIMINATE WHITE SPACE */
if (!isspace(tmp_seq[i]))
tmp_seq[j++]=tmp_seq[i];
tmp_seq[j]='\0'; /* TERMINATE COMPRESSED STRING*/
seq->sequence=strdup(tmp_seq); /* SAVE A DYNAMIC COPY */
save_sequence_fields(seq,seq_name,seq_title,j);
switch (do_switch_case) {
case switch_case_to_lower:
LOOP (i,seq->length)
seq->sequence[i]=tolower(tmp_seq[i]);
break;
case switch_case_to_upper:
LOOP (i,seq->length)
seq->sequence[i]=toupper(tmp_seq[i]);
break;
}
return 1;
}
|