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));