9e5a8ca333820ec0312b0910f468ab5b42bf0493
kent
  Mon Apr 1 22:07:27 2013 -0700
Implementing heavy tag option.
diff --git src/meta/metaHoist/metaHoist.c src/meta/metaHoist/metaHoist.c
index aa5ec02..3a08e8d 100644
--- src/meta/metaHoist/metaHoist.c
+++ src/meta/metaHoist/metaHoist.c
@@ -120,36 +120,39 @@
 /* Do depth first recursion, but get early return if we're a leaf. */
 struct meta *child;
 if (meta->children == NULL)
     return;
 for (child = meta->children; child != NULL; child = child->next)
     metaTreeHoist(child);
 
 /* Build up list of tags used in any child. */
 struct slName *tag, *tagList = tagsInAny(meta->children);
 
 /* Go through list and figure out ones that are same in all children. */
 for (tag = tagList; tag != NULL; tag = tag->next)
     {
     if (!sameString(tag->name, keyTag))
 	{
+	if (heavy == NULL || !sameString(tag->name, heavy))
+	    {
 	char *val;
 	val = allSameVal(tag->name, meta->children);
 	if (val != NULL)
 	    hoistOne(meta, tag->name, val);
 	}
     }
+    }
 slFreeList(&tagList);
 }
 
 
 
 void metaHoist(char *inFile, char *outFile)
 /* metaHoist - Move tags that are shared by all siblings up a level.. */
 {
 struct meta *metaList = metaLoadAll(inFile, keyTag, parentTag, FALSE, FALSE);
 struct meta *meta;
 for (meta = metaList; meta != NULL; meta = meta->next)
     metaTreeHoist(meta);
 metaWriteAll(metaList, outFile, indent, withParent);
 }