c2a522145128e59acc06adedd08bf9270a207869
braney
  Wed Aug 26 14:40:57 2020 -0700
add yLabel to the set of complex variables that can have a dot after
them

diff --git src/hg/utils/tdbQuery/tdbQuery.c src/hg/utils/tdbQuery/tdbQuery.c
index c420bc1..6a55613 100644
--- src/hg/utils/tdbQuery/tdbQuery.c
+++ src/hg/utils/tdbQuery/tdbQuery.c
@@ -869,33 +869,35 @@
 			 childFp->fileName, child->key, childFp->startLineIx,
 			 parent->key, parentFp->startLineIx);
 	    struct tdbRecord *closestParent =
 	                                    closestTdbAboveLevel(recordList, childFp, parentDepth);
 	    assert(closestParent != NULL);
 	    if (closestParent != parent)
 	        errAbort("%s comes between parent (%s) and child (%s) in %s\n"
 		         "Parent at line %d, child at line %d.",
 			 closestParent->key, parent->key, child->key, childFp->fileName,
 			 parentFp->startLineIx, childFp->startLineIx);
 	    }
 	}
     }
 }
 
-static boolean isFilter(char *name)
+static boolean isComplex(char *name)
 /* Check to see if this is one of the filter variables that have arbitrary initial strings. */
 {
+if (startsWith("yLabel.", name))
+    return TRUE;
 if (startsWith("filter.", name))
     return TRUE;
 if (startsWith("filterValues.", name))
     return TRUE;
 if (startsWith("filterType.", name))
     return TRUE;
 if (startsWith("filterLimits.", name))
     return TRUE;
 if (startsWith("filterLabel.", name))
     return TRUE;
 if (startsWith("filterByRange.", name))
     return TRUE;
 if (startsWith("filterText.", name))
     return TRUE;
 if (endsWith(name, "Filter"))
@@ -912,31 +914,31 @@
 }
 
 static void doRecordChecks(struct tdbRecord *recordList, struct lm *lm)
 /* Do additional checks on records. */
 {
 /* Check fields against tagTypes.tab. */
 struct tdbRecord *record;
 for (record = recordList; record != NULL; record = record->next)
     {
     struct tdbField *typeField = tdbRecordField(record, "type");
     char *fullType = (typeField != NULL ? typeField->val : record->key);
     char *type = lmCloneFirstWord(lm, fullType);
     struct tdbField *field;
     for (field = record->fieldList; field != NULL; field = field->next)
         {
-        if (isFilter(field->name))
+        if (isComplex(field->name))
             continue;
 
 	struct slName *typeList = rqlHashFindValEvenInWilds(glTagTypes, field->name);
 	if (typeList == NULL)
 	    {
 	    recordAbort(record, "Tag '%s' not found in %s.\nIf it's not a typo please add %s to "
 	                        "that file.  The tag is", field->name, glTagTypeFile, field->name);
 	    }
 	if (!matchAnyWild(typeList, type))
 	    {
 	    recordAbort(record, "Tag '%s' not allowed for tracks of type '%s'.  "
 	                        "Please add it to supported types\n"
 	                        "in %s if this is not a mistake.  The tag is",
 	                        field->name, type, glTagTypeFile);
 	    }