7714cf4d6ed357c525a34f3b6e6048ddc90583c8
kent
  Sun Aug 11 11:57:03 2019 -0700
Making uncvs return empty when endex out of range like untsv does.

diff --git src/lib/strex.c src/lib/strex.c
index 7eb7c3a..40c0f9d 100644
--- src/lib/strex.c
+++ src/lib/strex.c
@@ -928,31 +928,31 @@
         {
 	if (end == NULL)
 	    return lmCloneString(lm, s);
 	else
 	    return lmCloneMem(lm, s, end - s);
 	}
     s = end;
     }
 }
 
 static char *uncsvString(char *csvIn,  int ix,  struct lm *lm)
 /* Return the comma separated value of index ix. Memory for result is lm */
 {
 struct dyString *scratch = dyStringNew(0);
 char *one = csvParseOneOut(csvIn, ix, scratch); 
-char *res = lmCloneString(lm, one);	// Save in more permanent memory
+char *res = emptyForNull(lmCloneString(lm, one));	// Save in more permanent memory
 dyStringFree(&scratch);
 return res;
 }
 
 static char *separateString(char *string, char *splitter, int ix, struct lm *lm)
 /* Return the ix'th part of string as split apart by splitter */
 {
 int splitterSize = strlen(splitter);
 if (splitterSize != 1)
     errAbort("Separator parameter to split must be a single character, not %s", splitter);
 int count = chopByChar(string, splitter[0], NULL, 0);
 if (ix >= count)
     errAbort("There aren't %d fields separated by %s in %s", ix+1, splitter, string);
 char **row;
 lmAllocArray(lm, row, count);