e764efe5d0e596213c72e69f028df0a667d0a83c
markd
  Mon Jun 29 00:43:22 2020 +0000
gfClient working with blat server running under xinetd

diff --git src/jkOwnLib/genoFind.c src/jkOwnLib/genoFind.c
index 50612e8..dc158ae 100644
--- src/jkOwnLib/genoFind.c
+++ src/jkOwnLib/genoFind.c
@@ -80,37 +80,45 @@
 mustWrite(f, &gf->sourceCount, sizeof(gf->sourceCount));
 mustWrite(f, &gf->isPep, sizeof(gf->isPep));
 mustWrite(f, &gf->allowOneMismatch, sizeof(gf->allowOneMismatch));
 mustWrite(f, &gf->segSize, sizeof(gf->segSize));
 mustWrite(f, &gf->totalSeqSize, sizeof(gf->totalSeqSize));
 // now write out the variable-size arrays. The ones we need to
 // keep are listSizes and allocated--endLists/lists are generated
 // at load time, and in fact *must* be as they are
 // pointer-to-pointers which cannot be mmapped properly.
 
 // sources: length = gf->sourceCount
 int i;
 for (i = 0; i < gf->sourceCount; i++)
     {
     struct gfSeqSource *ss = gf->sources + i;
-    size_t fileNameLen = ss->fileName ? strlen(ss->fileName) + 1 : 0;
+    char *fileName = ss->fileName;
+    if (fileName != NULL)
+        {
+        // don't include directories
+        char *s = strrchr(fileName, '/');
+        if (s != NULL)
+            fileName = s + 1;
+        }
+    size_t fileNameLen = fileName ? strlen(fileName) + 1 : 0;
     mustWrite(f, &fileNameLen, sizeof(fileNameLen));
     if (fileNameLen != 0)
-        mustWrite(f, ss->fileName, fileNameLen);
+        mustWrite(f, fileName, fileNameLen);
     mustWrite(f, &ss->start, sizeof(bits32));
     mustWrite(f, &ss->end, sizeof(bits32));
-    // no masking information written/read yet.
+    // FIXME: no masking information written/read yet.
     }
 // listSizes: length = gf->tileSpaceSize
 mustWrite(f, gf->listSizes, gf->tileSpaceSize * sizeof(gf->listSizes[0]));
 
 if (gf->segSize == 0)
     {
     // use lists
     size_t count = 0;
     for (i = 0; i < gf->tileSpaceSize; i++)
         {
         if (gf->listSizes[i] < gf->maxPat)
             count += gf->listSizes[i];
         }
     mustWrite(f, gf->allocated, count*sizeof(bits32));
     }