358232fdd2fe9b78248b54fd38a9cd2f52ff4586 angie Wed Oct 21 12:49:05 2020 -0700 lineFileUdcMayOpen automatically decompresses local files but not urls. netLineFileMayOpen does automatically decompress. For now, just use netLineFileMayOpen, although in the long term it would be better to ad support to lineFileUdcMayOpen to get the benefits of caching. diff --git src/lib/linefile.c src/lib/linefile.c index f2d0960..3e12bcc 100644 --- src/lib/linefile.c +++ src/lib/linefile.c @@ -300,30 +300,37 @@ 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 { + if (getDecompressor(fileOrUrl) != NULL) + { + warn("lineFileUdcMayOpen: can't open %s, support for compressed files not implemented. " + "[developer: use netLineFileMayOpen for compressed remote files.]", + fileOrUrl); + return NULL; + } 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; } }