4898794edd81be5285ea6e544acbedeaeb31bf78
max
  Tue Nov 23 08:10:57 2021 -0800
Fixing pointers to README file for license in all source code files. refs #27614

diff --git src/hg/utils/makeTrackIndex/makeTrackIndex.c src/hg/utils/makeTrackIndex/makeTrackIndex.c
index a63a8b9..f55ac12 100644
--- src/hg/utils/makeTrackIndex/makeTrackIndex.c
+++ src/hg/utils/makeTrackIndex/makeTrackIndex.c
@@ -1,164 +1,164 @@
 /* Make a track ixIxx file for the given to be used in the track search tool. */
 
 /* Copyright (C) 2013 The Regents of the University of California 
- * See README in this or parent directory for licensing information. */
+ * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */
 
 #include "common.h"
 #include "options.h"
 #include "hdb.h"
 #include "grp.h"
 #include "hui.h"
 #include "ra.h"
 #include "jsHelper.h"
 #include "mdb.h"
 #include "cv.h"
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "makeTrackIndex - make a ixIxx input file for the tracks in given assembly.\n"
   "usage:\n"
   "   makeTrackIndex database metaDbTableName cv.ra\n\n");
 }
 
 static void printTrack(struct sqlConnection *conn, struct trackDb *tdb, char *html,
                        struct hash *grpHash, struct hash *tdbHash, struct hash *mdbObjHash)
 {
 // Don't duplicate superTracks
 if (hashLookup(tdbHash,tdb->track))
     return;
 hashAdd(tdbHash,tdb->track,tdb);
 
 char *metadataList[] = {"longLabel", NULL}; // include a fixed set of metadata (i.e. not stuff like subGroup).
 int i;
 char *grpLabel, *tmp;
 
 printf("%s ", tdb->track);
 printf("%s ", tdb->shortLabel);
 struct mdbObj *mdbObj = mdbObjLookUp(mdbObjHash,tdb->track);
 struct mdbVar *var = NULL;
 if (mdbObj != NULL)
     {
     // vals for all mdb vars or just searchable vars?
     var = mdbObj->vars;
     for ( ; var != NULL; var = var->next)
         {
         if (cvSearchMethod(var->var) != cvNotSearchable)
             printf("%s ", var->val);
         }
     }
 
 // We include the long descriptions for these terms, b/c we assume people will search for the long labels.
 // Jim want's cv data after short/long label
 
 // cv descriptions should be after mdb values.
 if (mdbObj != NULL)
     {
     // vals for all mdb vars or just searchable vars?
     var = mdbObj->vars;
     for ( ; var != NULL; var = var->next)
         {
         if (cvTermIsCvDefined(var->var) // If it isn't cvDefined then the fields aren't there
         &&  cvSearchMethod(var->var) != cvNotSearchable)
             {
             struct hash *hash = (struct hash *)cvOneTermHash(var->var,var->val);
             if(hash != NULL)
                 {
                 // hand-curated list of which cv.ra fields to include in fulltext index.
                 char *fields[] = {"description", "targetDescription", NULL};
                 int ix;
                 for(ix = 0; fields[ix] != NULL; ix++)
                     {
                     char *str = hashFindVal(hash, fields[ix]);
                     if (str)
                         printf("%s ", str);
                     }
                 }
             }
         }
     }
 
 for(i = 0; metadataList[i] != NULL; i++)
     {
     char *str = trackDbLocalSetting(tdb, metadataList[i]);
     if(str != NULL)
         printf("%s ", str);
     }
 
 grpLabel = tdb->grp;
 tmp = hashFindVal(grpHash, grpLabel);
 if(tmp != NULL)
     grpLabel = tmp;
 printf("%s ", grpLabel);
 
 
 if(html == NULL)
     {
     html = tdb->html;
     if(html != NULL)
         // strip out html markup
         html = stripRegEx(html, "<[^>]*>", REG_ICASE);
     }
 if(html != NULL)
     {
     char *tmp = cloneString(html);
     char *val = nextWord(&tmp);
     while(val != NULL)
         {
         printf("%s ", val);
         val = nextWord(&tmp);
         }
     }
 printf("\n");
 
 if (tdbIsSuper(tdb->parent))
     printTrack(conn, tdb->parent, NULL, grpHash, tdbHash, mdbObjHash);
 if(tdb->subtracks != NULL)
     {
     struct trackDb *subtrack;
     for (subtrack = tdb->subtracks; subtrack != NULL; subtrack = subtrack->next)
         // We have decided NOT to populate html down to children.
         printTrack(conn, subtrack, NULL, grpHash, tdbHash, mdbObjHash);
     }
 }
 
 int main(int argc, char *argv[])
 {
 struct trackDb *tdb, *tdbList = NULL;
 struct hash *grpHash = newHash(0);
 struct hash *tdbHash = newHash(0);
 struct grp *grp, *grps;
 char filePath[PATH_LEN];
 
 if (argc != 4)
     usage();
 char *database = argv[1];
 char *metaDbName = argv[2];
 char *cvRaPath = argv[3];
 tdbList = hTrackDb(database);
 struct sqlConnection *conn = hAllocConn(database);
 
 grps = hLoadGrps(database);
 for (grp = grps; grp != NULL; grp = grp->next)
     hashAdd(grpHash, grp->name, grp->label);
 
 safecpy(filePath, sizeof(filePath), cvRaPath );
 if(!fileExists(filePath))
     errAbort("Error: can't locate cv.ra; %s doesn't exist\n", filePath);
 cvFileDeclare(filePath);
 
 struct hash *mdbObjHash = NULL;
 struct mdbObj *mdbObjs = mdbObjsQueryAll(conn,metaDbName);
 if (mdbObjs != NULL)
     mdbObjHash = mdbObjsHash(mdbObjs);
 
 for (tdb = tdbList; tdb != NULL; tdb = tdb->next)
     printTrack(conn, tdb, NULL, grpHash, tdbHash, mdbObjHash);
 
 // Overkill:
 //mdbObjsHashFree(&mdbObjHash);
 //mdbObjsFree(&mdbObjs);
 
 return 0;
 }