#include #define MAX_SEQ 200000 #define MIN(A,B) (A 1) { argv++; if (!strcmp(*argv, "-1")) { dont_add_1 = 1; argc--; } else argv--; } if (argc > 1) { for (argv++; *argv; argv++) { if (!(finp = fopen (*argv, "r"))) { fprintf (stderr, "Could not read \"%s\" ", *argv); perror ("because"); return; } do_file (finp, dont_add_1); } } else do_file(stdin, dont_add_1); } do_file (finp, dont_add_1) FILE *finp; int dont_add_1; { char pat_name[480], seq_line[MAX_SEQ]; int count, last, first, j; while (fscanf(finp, "%s %s", pat_name, seq_line) != EOF) { count = strlen(seq_line); if (dont_add_1 == 0) { seq_line[count] = '1'; seq_line[count+1] = '\0'; } else count--; if (count > 0) { fprintf(stdout, "; LOCUS\t%s\n;\n%s\n", pat_name, pat_name); last = count; first = 0; while (first < count) { last = MIN(69,count-first); for (j = first; j <= first + last; j++) fprintf(stdout, "%c", seq_line[j]); fprintf(stdout, "\n"); fflush(stdout); first = first+70; } } } }