65cd37b670afee32047ab583582d848229baf80e
kent
  Thu Jan 22 14:56:42 2015 -0800
Adding maxDepth parameter to metaWriteAll. Adding depth command line option to metaReformat which uses this.

diff --git src/meta/metaFlatten/metaFlatten.c src/meta/metaFlatten/metaFlatten.c
index a7e4805..35748fb 100644
--- src/meta/metaFlatten/metaFlatten.c
+++ src/meta/metaFlatten/metaFlatten.c
@@ -1,82 +1,82 @@
 /* metaFlatten - Flatten meta.ra file so all stanzas include all tags.. */
 #include "common.h"
 #include "linefile.h"
 #include "hash.h"
 #include "options.h"
 #include "meta.h"
 
 boolean withParent = FALSE;
 boolean indent = META_DEFAULT_INDENT;
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "metaFlatten - Flatten meta.ra file so all stanzas include all tags.\n"
   "usage:\n"
   "   metaFlatten input output\n"
   "options:\n"
   "   -withParent - if set write out parent tags in each stanze\n"
   "   -indent - amount to indent per level of nesting.  If 0, you better set -withParent too.\n"
   "             Default is %d\n"
   , indent
   );
 }
 
 /* Command line validation table. */
 static struct optionSpec options[] = {
    {"withParent", OPTION_BOOLEAN},
    {"indent", OPTION_INT},
    {NULL, 0},
 };
 
 static void addNewTags(struct meta *meta, struct metaTagVal *mtvList)
 /* Add all tags in list that are not already in meta to meta. */
 {
 struct metaTagVal *mtv;
 for (mtv = mtvList; mtv != NULL; mtv = mtv->next)
     {
     if (metaLocalTagVal(meta, mtv->tag) == NULL)
         {
 	struct metaTagVal *newMtv;
 	AllocVar(newMtv);
 	newMtv->tag = mtv->tag;
 	newMtv->val = mtv->val;
 	slAddTail(&meta->tagList, newMtv);
 	}
     }
 }
 
 static void rMetaFlatten(struct meta *metaList)
 /* Add tags from parents to our own tags (so long as they don't conflict */
 {
 struct meta *meta;
 for (meta = metaList; meta != NULL; meta = meta->next)
     {
     if (meta->parent)
         addNewTags(meta, meta->parent->tagList);
     metaSortTags(meta);
     if (meta->children)
         rMetaFlatten(meta->children);
     }
 }
 
 void metaFlatten(char *input, char *output)
 /* metaFlatten - Flatten meta.ra file so all stanzas include all tags.. */
 {
 struct meta *metaList = metaLoadAll(input, "meta", "parent", FALSE, FALSE);
 rMetaFlatten(metaList);
-metaWriteAll(metaList, output, indent, withParent);
+metaWriteAll(metaList, output, indent, withParent, 0);
 }
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 optionInit(&argc, argv, options);
 if (argc != 3)
     usage();
 indent = optionInt("indent", indent);
 withParent = optionExists("withParent");
 metaFlatten(argv[1], argv[2]);
 return 0;
 }