void freeSEQUENCE(SEQUENCE seq){
  freeSTRING(seq.name);
  freeSTRING(seq.sequence);
  freeSTRING(seq.orf);
  seq.from = 0;
  seq.to   = 0;
}
Exemple #2
0
static void parseDBESTline(FILE *fp, ANYTYPE *a){
    register int ch;
    register STRING *s;
    a->type = 's';
    while(isspace(ch = getc(fp))) /* SKIP LEADING WHITE SPACE */
        if(ch == EOF){
            a->u.s = NULL;
            return;
            }
    s = newSTRING();
    do {
        switch(ch){
            case '\t': /* REPLACE TABS WITH SPACES */
                addSTRING(s, ' ');
                break;
            case '\n':
                a->u.s = s->str;
                free(s); /* FREE STRING SHELL ONLY */
                return;
            default:
                addSTRING(s, ch);
                break;
            }
    } while((ch = getc(fp)) != EOF);
    a->u.s = NULL;
    freeSTRING(s);
    return;
    }
Exemple #3
0
static void parseDBESTblock(FILE *fp, ANYTYPE *a){
    register STRING *s = newSTRING();
    register int ch, prev = ' ';
    a->type = 's';
    while( (ch = getc(fp)) != EOF){
        switch(ch){
            case '\n':
                if(prev == '\n'){
                    a->u.s = s->str; 
                    free(s); /* FREE SHELL ONLY */
                    return; 
                    }
                break;
            case ' ':
            case '\t':
                break;
            default:
                addSTRING(s, ch);
                break;
            }
        prev = ch;
        }
    freeSTRING(s);
    a->u.s = NULL;
    return;
    }
Exemple #4
0
static void parseDBESTpara(FILE *fp, ANYTYPE *a){
    register STRING *s = newSTRING();
    register int ch, prev = ' ';
    a->type = 's';
    while(isspace(ch = getc(fp)));
    do {
        switch(ch){
            case '\n':
                if(prev == '\n'){ /* SECTION END */
                    a->u.s = s->str; 
                    free(s); /* FREE SHELL ONLY */
                    return; 
                    }
                break;
            case ' ': /*FALLTHROUGH*/
            case '\t':
                if(prev == '\n'){ /* SKIP SPACE AT START OF LINE */
                    while(isspace(ch = getc(fp))){
                        if((ch == '\n') && (prev == '\n')){
                            a->u.s = s->str;
                            free(s); /* FREE SHELL ONLY */
                            return;
                            }
                        prev = ch;
                        }
                    addSTRING(s, ' ');
                    }
                addSTRING(s, ch);
                break;
            default:
                if(prev == '\n'){  /* TAG END */
                    ungetc(ch, fp);
                    a->u.s = s->str;  
                    free(s); /* FREE SHELL ONLY */
                    return;
                    }
                addSTRING(s, ch);
                break;
            }
        prev = ch;
    } while( (ch = getc(fp)) != EOF);
    freeSTRING(s);
    a->u.s = NULL;
    return;
    }