a914d9bdef4d00a82f03f03c0176cf8c14eb7421 max Wed Jul 29 06:32:49 2015 -0700 allowing empty name fields in bigBed. refs #15780 diff --git src/lib/common.c src/lib/common.c index d8e3335..db3c27c 100644 --- src/lib/common.c +++ src/lib/common.c @@ -2369,55 +2369,61 @@ if (e == NULL) { e = strchr(s, '\n'); if (e != NULL) *e = 0; *pLine = NULL; } else { *e++ = 0; *pLine = e; } return s; } -char *cloneFirstWordByDelimiter(char *line,char delimit) -/* Returns a cloned first word, not harming the memory passed in */ +char *cloneFirstWordByDelimiterNoSkip(char *line,char delimit) +/* Returns a cloned first word, not harming the memory passed in. Does not skip leading white space.*/ { if (line == NULL || *line == 0) return NULL; -line = skipLeadingSpaces(line); -if (*line == 0) - return NULL; int size=0; char *e; for (e=line;*e!=0;e++) { if (*e==delimit) break; else if (delimit == ' ' && isspace(*e)) break; size++; } if (size == 0) return NULL; char *new = needMem(size + 2); // Null terminated by 2 memcpy(new, line, size); return new; } +char *cloneFirstWordByDelimiter(char *line,char delimit) +/* Returns a cloned first word, not harming the memory passed in. Skips over leading white space. */ +{ +if (line == NULL || *line == 0) + return NULL; +line = skipLeadingSpaces(line); +return cloneFirstWordByDelimiterNoSkip(line, delimit); +} + char *cloneNextWordByDelimiter(char **line,char delimit) /* Returns a cloned first word, advancing the line pointer but not harming memory passed in */ { char *new = cloneFirstWordByDelimiter(*line,delimit); if (new != NULL) { *line = skipLeadingSpaces(*line); *line += strlen(new); if ( **line != 0) (*line)++; } return new; } char *nextStringInList(char **pStrings)