735cf928eb52e73b26027b1c9800a8922b3eb078
kent
  Sat Jun 3 17:07:49 2017 -0700
Adding csvEscapeAndAppend

diff --git src/inc/csv.h src/inc/csv.h
index 71186af..f093580 100644
--- src/inc/csv.h
+++ src/inc/csv.h
@@ -1,33 +1,35 @@
 /* csv - stuff to help process comma separated values.  Have to wrap quotes around
  * things with commas, and escape quotes with more quotes sometimes. */
 
 #ifndef CSV_H
 #define CSV_H
 
+void csvEscapeAndAppend(struct dyString *dy, char *string);
+/* Append escaped string to dy.  Will insert comma if dy is non-empty */
+
 char *csvEscapeToDyString(struct dyString *dy, char *string);
-/* Wrap string in quotes if it has any commas.  Anything already in quotes get s double-quoted 
- * Returns transformated result, which will be input string if it has no commas, otherwise
- * will be dy*/
+/* Wrap string in quotes if it has any commas.  Put result into dy, and return it as a 
+ * string.   Anything already in quotes get double-quoted */
 
 void csvWriteVal(char *val, FILE *f);
 /* Write val, which may have some quotes or commas in it, in a way to be compatable with
  * csv list representation */
 
 char *csvParseNext(char **pos, struct dyString *scratch);
 /* Return next value starting at pos, putting results into scratch and
  * returning scratch->string or NULL if no values left. Will update *pos
  * to after trailing comma if any. This will tolerate and ignore leading
  * and trailing white space.  
  *     Since an empty or all-white string is will return NULL, if you
  * want empty strings to be a legitimate value then they have to be quoted
  * or followed by a comma. */
 
 boolean csvNeedsParsing(char *s);
 /* Return TRUE if s is something that needs parsing through the csv parser.  That
  * is it either starts with a quote or has a comma */
 
 struct slName *csvParse(char *csv);
 /* Return a list of parsed out csv values.  Do a slFreeList of this when done */
 
 #endif /* CSV_H */