File: create_seq.c

package info (click to toggle)
poa 2.0%2B20060928-2
  • links: PTS, VCS
  • area: main
  • in suites: lenny, squeeze
  • size: 364 kB
  • ctags: 344
  • sloc: ansic: 4,582; xml: 276; makefile: 83; perl: 35
file content (53 lines) | stat: -rw-r--r-- 1,185 bytes parent folder | download | duplicates (7)
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;
}