Exemplo n.º 1
0
static void printHeaderColumns(struct annoFormatTab *self, struct annoStreamer *source,
                               boolean isFirst)
/* Print names of included columns from this source. */
{
FILE *f = self->f;
char *sourceName = source->name;
boolean isAvg = isWiggle(source->asObj->columnList) && doAvg;
struct asColumn *col;
int i;
for (col = source->asObj->columnList, i = 0;  col != NULL;  col = col->next, i++)
    {
    if (columnIsIncluded(self, sourceName, col->name))
        {
        if (isFirst)
            {
            fputc('#', f);
            isFirst = FALSE;
            }
        else
            fputc('\t', f);
        char fullName[PATH_LEN];
        makeFullColumnName(fullName, sizeof(fullName), sourceName, col->name);
        if (isAvg && sameString(col->name, "value"))
            safecat(fullName, sizeof(fullName), "Average");
        fputs(fullName, f);
        }
    }
}
void annoFormatTabSetColumnVis(struct annoFormatter *vSelf, char *sourceName, char *colName,
                               boolean enabled)
/* Explicitly include or exclude column in output.  sourceName must be the same
 * as the corresponding annoStreamer source's name. */
{
struct annoFormatTab *self = (struct annoFormatTab *)vSelf;
if (! self->columnVis)
    self->columnVis = hashNew(0);
char fullName[PATH_LEN];
makeFullColumnName(fullName, sizeof(fullName), sourceName, colName);
hashAddInt(self->columnVis, fullName, enabled);
}
static boolean columnIsIncluded(struct annoFormatTab *self, char *sourceName, char *colName)
// Return TRUE if column has not been explicitly deselected.
{
if (self->columnVis)
    {
    char fullName[PATH_LEN];
    makeFullColumnName(fullName, sizeof(fullName), sourceName, colName);
    int vis = hashIntValDefault(self->columnVis, fullName, 1);
    if (vis == 0)
        return FALSE;
    }
return TRUE;
}
static void printHeaderColumns(struct annoFormatTab *self, struct annoStreamer *source,
                               boolean *pIsFirst)
/* Print names of included columns from this source. */
{
FILE *f = self->f;
char *sourceName = source->name;
boolean isFirst = (pIsFirst && *pIsFirst);
struct asColumn *col;
for (col = source->asObj->columnList;  col != NULL;  col = col->next)
    {
    if (columnIsIncluded(self, sourceName, col->name))
        {
        if (isFirst)
            isFirst = FALSE;
        else
            fputc('\t', f);
        char fullName[PATH_LEN];
        makeFullColumnName(fullName, sizeof(fullName), sourceName, col->name);
        fputs(fullName, f);
        }
    }
if (pIsFirst != NULL)
    *pIsFirst = isFirst;
}