9a96102d96e9fe1b59783df14a4e583a9895f4f0 braney Fri Sep 24 13:38:51 2010 -0700 add a routine to print metaDb to a file diff --git src/hg/lib/mdb.c src/hg/lib/mdb.c index aa9677e..921c863 100644 --- src/hg/lib/mdb.c +++ src/hg/lib/mdb.c @@ -1347,28 +1347,28 @@ // ----------- Printing and Counting ----------- -static void mdbVarValPrint(struct mdbVar *mdbVar,boolean raStyle) +static void mdbVarValPrint(struct mdbVar *mdbVar,boolean raStyle, FILE *outF) { if(mdbVar != NULL && mdbVar->var != NULL) { if(raStyle) - printf("\n%s ",mdbVar->var); + fprintf(outF, "\n%s ",mdbVar->var); else - printf(" %s=",mdbVar->var); + fprintf(outF, " %s=",mdbVar->var); if(mdbVar->val != NULL) { if(mdbVar->varType == vtBinary) - printf("binary"); + fprintf(outF, "binary"); else if(!raStyle && strchr(mdbVar->val, ' ') != NULL) // Has blanks - printf("\"%s\"",mdbVar->val); + fprintf(outF, "\"%s\"",mdbVar->val); else - printf("%s",mdbVar->val); + fprintf(outF, "%s",mdbVar->val); } } } -void mdbObjPrint(struct mdbObj *mdbObjs,boolean raStyle) +void mdbObjPrintToStream(struct mdbObj *mdbObjs,boolean raStyle, FILE *outF ) // prints objs and var=val pairs as formatted metadata lines or ra style { // Single line: @@ -1384,9 +1384,9 @@ if(mdbObj->obj == NULL) continue; - printf("%s %s",(raStyle?MDB_METAOBJ_RAKEY:MDB_METADATA_KEY),mdbObj->obj); + fprintf(outF, "%s %s",(raStyle?MDB_METAOBJ_RAKEY:MDB_METADATA_KEY),mdbObj->obj); if(mdbObj->deleteThis) - printf(" delete"); + fprintf(outF, " delete"); struct mdbVar *mdbVar = NULL; @@ -1394,17 +1394,33 @@ if(mdbObj->varHash != NULL) { mdbVar = hashFindVal(mdbObj->varHash,MDB_OBJ_TYPE); - mdbVarValPrint(mdbVar,raStyle); + mdbVarValPrint(mdbVar,raStyle, outF); } for(mdbVar=mdbObj->vars;mdbVar!=NULL;mdbVar=mdbVar->next) { if(mdbObj->varHash == NULL || !sameOk(MDB_OBJ_TYPE,mdbVar->var)) - mdbVarValPrint(mdbVar,raStyle); + mdbVarValPrint(mdbVar,raStyle, outF); } - printf("%s",(raStyle?"\n\n":"\n")); + fprintf(outF, "%s",(raStyle?"\n\n":"\n")); } if(raStyle) // NOTE: currently only supporting validation of RA files - printf("%s%d\n",MDB_MAGIC_PREFIX,mdbObjCRC(mdbObjs)); + fprintf(outF, "%s%d\n",MDB_MAGIC_PREFIX,mdbObjCRC(mdbObjs)); +} + +void mdbObjPrint(struct mdbObj *mdbObjs,boolean raStyle) +// prints objs and var=val pairs as formatted metadata lines or ra style +{ +mdbObjPrintToStream(mdbObjs, raStyle, stdout); +} + +void mdbObjPrintToFile(struct mdbObj *mdbObjs,boolean raStyle, char *file) +// prints objs and var=val pairs as formatted metadata lines or ra style +{ +FILE *f = mustOpen(file, "w"); + +mdbObjPrintToStream(mdbObjs, raStyle, f); + +fclose(f); } void mdbByVarPrint(struct mdbByVar *mdbByVars,boolean raStyle)