5d4616290454b29ef09230e5332b086ba5dea764 kent Fri May 26 14:38:30 2017 -0700 Adding a little verbose diagnostic message. diff --git src/tabFile/tabRepeatedFieldsToArrayField/tabRepeatedFieldsToArrayField.c src/tabFile/tabRepeatedFieldsToArrayField/tabRepeatedFieldsToArrayField.c index 7db4209..c30b494 100644 --- src/tabFile/tabRepeatedFieldsToArrayField/tabRepeatedFieldsToArrayField.c +++ src/tabFile/tabRepeatedFieldsToArrayField/tabRepeatedFieldsToArrayField.c @@ -58,50 +58,54 @@ while ((c = *val++) != 0) { if (c == '"') fputc('"', f); fputc(c, f); } fputc('"', f); } void tabRepeatedFieldsToArrayField(char *inFile, char *outFile) /* tabRepeatedFieldsToArrayField - Convert columns that are repeated in a tab-separated file to a * single column with comma separated values. */ { /* Read in tab-sep file */ struct fieldedTable *table = fieldedTableFromTabFile(inFile, inFile, NULL, 0); +int collapsedFields = 0; /* Build up list and hash of fieldInfo from table's field list */ struct hash *hash = hashNew(0); struct fieldInfo *list = NULL, *field; int i; for (i=0; ifieldCount; ++i) { char *name = table->fields[i]; field = hashFindVal(hash, name); if (field == NULL) { AllocVar(field); field->name = name; slAddHead(&list, field); hashAdd(hash, name, field); } + else + ++collapsedFields; struct slInt *si = slIntNew(i); slAddTail(&field->offsetList, si); } slReverse(&list); +verbose(1, "Collapsed %d fields\n", collapsedFields); /* Open output file and write out header row with optional leading # */ FILE *f = mustOpen(outFile, "w"); if (table->startsSharp) fputc('#', f); char *sep = ""; for (field = list; field != NULL; field = field->next) { fprintf(f, "%s%s", sep, field->name); sep = "\t"; } fputc('\n', f); /* Write out main rows */