+++ /dev/null
-/* re_getlib.c - re-acquire a sequence given lseek, lcont */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "defs.h"
-#include "mm_file.h"
-
-#define GETLIB (m_fptr->getlib)
-
-int
-re_getlib(unsigned char *aa1,
- int maxn, /* longest aa1 */
- int maxt3, /* alternate maxn */
- int loff, /* overlap */
- int lcont,
- int term_code,
- long *loffset, /* offset from real start of sequence */
- long *l_off_p, /* coordinate of sequence start */
- struct lmf_str *m_fptr) {
-
- unsigned char *aa1ptr;
- int icont, maxt, ccont, n1;
- char libstr[20];
- fseek_t lmark;
-
- aa1ptr = aa1;
- icont=0;
-
- *loffset = 0l;
- maxt = maxn;
- n1 = -1;
- for (ccont=0; ccont<=lcont-1; ccont++) {
-
- n1= GETLIB(aa1ptr,maxt,libstr,sizeof(libstr),&lmark,&icont,m_fptr,l_off_p);
-
- if (term_code && m_fptr->lib_aa && aa1ptr[n1-1]!=term_code) {
- aa1ptr[n1++]=term_code;
- aa1ptr[n1]=0;
- }
-
- if (aa1ptr!=aa1) n1 += loff;
-
- if (icont>lcont-1) break;
-
- if (icont) {
- maxt = maxt3;
- memcpy(aa1,&aa1[n1-loff],loff);
- aa1ptr= &aa1[loff];
- *loffset += n1 - loff;
- }
- else {
- maxt = maxn;
- aa1ptr=aa1;
- }
- }
- return n1;
-}