4898794edd81be5285ea6e544acbedeaeb31bf78 max Tue Nov 23 08:10:57 2021 -0800 Fixing pointers to README file for license in all source code files. refs #27614 diff --git src/hg/lib/lav.c src/hg/lib/lav.c index 017431d..c64e3c8 100644 --- src/hg/lib/lav.c +++ src/hg/lib/lav.c @@ -1,163 +1,163 @@ /* lav.c - common lav file reading routines */ /* Copyright (C) 2014 The Regents of the University of California - * See README in this or parent directory for licensing information. */ + * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */ #include "lav.h" static void unexpectedEof(struct lineFile *lf) /* Squawk about unexpected end of file. */ { errAbort("Unexpected end of file in %s", lf->fileName); } static void seekEndOfStanza(struct lineFile *lf) /* find end of stanza */ { char *line; for (;;) { if (!lineFileNext(lf, &line, NULL)) unexpectedEof(lf); if (line[0] == '}') break; } } static char *needNextWord(struct lineFile *lf, char **pLine) /* Get next word from line or die trying. */ { char *word = nextWord(pLine); if (word == NULL) errAbort("Short line %d of %s\n", lf->lineIx, lf->fileName); return word; } static char *justChrom(char *s) /* Simplify mongo nib file thing in axt. */ { char *e = stringIn(".nib:", s); if (e == NULL) return s; *e = 0; e = strrchr(s, '/'); if (e == NULL) return s; else return e+1; } void parseS(struct lineFile *lf, int *tSize, int *qSize) /* Parse s stanza and return tSize and qSize */ { char *words[3]; if (!lineFileRow(lf, words)) unexpectedEof(lf); *tSize = lineFileNeedNum(lf, words, 2); if (!lineFileRow(lf, words)) unexpectedEof(lf); *qSize = lineFileNeedNum(lf, words, 2); seekEndOfStanza(lf); } void parseH(struct lineFile *lf, char **tName, char **qName, boolean *isRc) /* Parse out H stanza */ { char *line, *word, *e; int i; /* Set return variables to default values. */ freez(qName); freez(tName); *isRc = FALSE; for (i=0; ; ++i) { if (!lineFileNext(lf, &line, NULL)) unexpectedEof(lf); if (line[0] == '#') continue; if (line[0] == '}') { if (i < 2) errAbort("Short H stanza line %d of %s", lf->lineIx, lf->fileName); break; } word = needNextWord(lf, &line); word++; /* Skip over `"' and optional `>' */ if (*word == '>') word++; e = strchr(word, '"'); if (e != NULL) { *e = 0; if (line != NULL) ++line; } if (i == 0) *tName = cloneString(justChrom(word)); else if (i == 1) *qName = cloneString(justChrom(word)); if ((line != NULL) && (stringIn("(reverse", line) != NULL)) *isRc = TRUE; } } void parseD(struct lineFile *lf, char **matrix, char **command, FILE *f) /* Parse d stanza and return matrix and blastz command line */ { char *line, *words[64]; int i, size, wordCount = 0; struct axtScoreScheme *ss = NULL; freez(matrix); freez(command); if (!lineFileNext(lf, &line, &size)) unexpectedEof(lf); if (stringIn("lastz",line)) { stripChar(line,'"'); wordCount = chopLine(line, words); fprintf(f, "##aligner=%s",words[0]); for (i = 3 ; i <wordCount ; i++) fprintf(f, " %s ",words[i]); fprintf(f,"\n"); char aligner[strlen(words[0])+1]; safecpy(aligner, sizeof aligner, words[0]); ss = axtScoreSchemeReadLf(lf); axtScoreSchemeDnaWrite(ss, f, aligner); } seekEndOfStanza(lf); } struct block *removeFrayedEnds(struct block *blockList) /* Remove zero length blocks at start and/or end to * work around blastz bug. */ { struct block *block = blockList; struct block *lastBlock = NULL; if (block != NULL && block->qStart == block->qEnd) { verbose(2,"removeFrayedEnds: first block: %d == %d\n", block->qStart, block->qEnd); blockList = blockList->next; freeMem(block); } for (block = blockList; block != NULL; block = block->next) { if (block->next == NULL) /* Last block in list */ { if (block->qStart == block->qEnd) { verbose(2,"removeFrayedEnds:\n"); if (lastBlock == NULL) /* Only block on list. */ blockList = NULL; else lastBlock->next = NULL; } } lastBlock = block; } if (lastBlock != NULL && lastBlock->qStart == lastBlock->qEnd) freeMem(lastBlock); return blockList; }