3250ccef57e0a9c28c586d67fc5facec46cb4449 kent Sun Jun 11 16:36:22 2017 -0700 Making it so that lineFileUdcMayOpen will work with stdin in a pipe. diff --git src/lib/linefile.c src/lib/linefile.c index c91fa6d..55176f7 100644 --- src/lib/linefile.c +++ src/lib/linefile.c @@ -289,44 +289,48 @@ ti_iter_destroy(lf->tabixIter); lf->tabixIter = iter; lf->bytesInBuf = 0; lf->lineIx = -1; lf->lineStart = 0; lf->lineEnd = 0; return TRUE; } struct lineFile *lineFileUdcMayOpen(char *fileOrUrl, bool zTerm) /* Create a line file object with an underlying UDC cache. NULL if not found. */ { if (fileOrUrl == NULL) errAbort("lineFileUdcMayOpen: fileOrUrl is NULL"); +if (udcIsLocal(fileOrUrl)) + return lineFileOpen(fileOrUrl, zTerm); +else + { struct udcFile *udcFile = udcFileMayOpen(fileOrUrl, NULL); if (udcFile == NULL) return NULL; - struct lineFile *lf; AllocVar(lf); lf->fileName = cloneString(fileOrUrl); lf->fd = -1; lf->bufSize = 0; lf->buf = NULL; lf->zTerm = zTerm; lf->udcFile = udcFile; return lf; } +} void lineFileExpandBuf(struct lineFile *lf, int newSize) /* Expand line file buffer. */ { assert(newSize > lf->bufSize); lf->buf = needMoreMem(lf->buf, lf->bytesInBuf, newSize); lf->bufSize = newSize; } struct lineFile *lineFileStdin(bool zTerm) /* Wrap a line file around stdin. */ { return lineFileAttach("stdin", zTerm, fileno(stdin));