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/makeDb/hgLoadItemAttr/hgLoadItemAttr.c src/hg/makeDb/hgLoadItemAttr/hgLoadItemAttr.c
index 2371f29..516ac6c 100644
--- src/hg/makeDb/hgLoadItemAttr/hgLoadItemAttr.c
+++ src/hg/makeDb/hgLoadItemAttr/hgLoadItemAttr.c
@@ -1,123 +1,123 @@
 /* hgLoadItemAttr - load an itemAttr table. */
 
 /* 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 "linefile.h"
 #include "hdb.h"
 #include "jksql.h"
 #include "options.h"
 #include "itemAttr.h"
 #include "binRange.h"
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "hgLoadItemAttr - load an itemAttr table\n"
   "usage:\n"
   "   hgLoadItemAttr db table itemAttrFile\n"
   "options:\n"
   "   -append - append to an existing table\n"
   );
 }
 
 static struct optionSpec options[] = {
    {"append", OPTION_BOOLEAN},
    {NULL, 0},
 };
 boolean gAppend = FALSE;  /* append to an existing table */
 
 static char* createSql =
     "CREATE TABLE %s (\n"
     "    bin smallint unsigned not null,\n"
     "    name varchar(255) not null,         # name of item\n"
     "    chrom varchar(255) not null,        # chromosome\n"
     "    chromStart int unsigned not null,   # Start position in chromosome\n"
     "    chromEnd int unsigned not null,     # End position in chromosome\n"
     "    colorR tinyint unsigned not null,   # Color red component 0-255\n"
     "    colorG tinyint unsigned not null,   # Color green component 0-255\n"
     "    colorB tinyint unsigned not null,   # Color blue component 0-255\n"
     "              #Indices\n"
     "    index(bin,chrom(8),chromStart)\n"
     ");\n";
 
 int itemAttrCmp(const void *va, const void *vb)
 /* sort comparison function by location */
 {
 const struct itemAttr *a = *((struct itemAttr **)va);
 const struct itemAttr *b = *((struct itemAttr **)vb);
 int dif;
 dif = strcmp(a->chrom, b->chrom);
 if (dif == 0)
     dif = a->chromStart - b->chromStart;
 if (dif == 0)
     dif = a->chromEnd - b->chromEnd;
 return dif;
 }
 
 struct itemAttr* loadAttrFile(char* itemAttrFile)
 /* load itemAttr records into memory and sort */
 {
 struct itemAttr *itemAttrs = NULL;
 struct lineFile *lf = lineFileOpen(itemAttrFile, TRUE);
 char *row[ITEMATTR_NUM_COLS];
 
 while (lineFileNextRowTab(lf, row, ITEMATTR_NUM_COLS))
     slSafeAddHead(&itemAttrs, itemAttrLoad(row));
 lineFileClose(&lf);
 slSort(&itemAttrs, itemAttrCmp);
 return itemAttrs;
 }
 
 void writeTabFile(struct itemAttr *itemAttrs, char *tabFile)
 /* write rows to tab file, with bin column */
 {
 FILE *tabFh = mustOpen(tabFile, "w");
 struct itemAttr *ia;
 
 for (ia = itemAttrs; ia != NULL; ia = ia->next)
     {
     fprintf(tabFh, "%u\t", binFromRange(ia->chromStart, ia->chromEnd));
     itemAttrTabOut(ia, tabFh);
     }
 carefulClose(&tabFh);
 }
 
 void makeTable(struct sqlConnection *conn, char *table)
 /* setup the database table */
 {
 char query[1024];
 sqlSafef(query, sizeof(query), createSql, table);
 if (gAppend)
     sqlMaybeMakeTable(conn, table, query);
 else
     sqlRemakeTable(conn, table, query);
 }
 
 void hgLoadItemAttr(char *db, char* table, char* itemAttrFile)
 /* hgLoadItemAttr - load an itemAttr table. */
 {
 struct sqlConnection *conn = sqlConnect(db);
 struct itemAttr* itemAttrs;
 char tabFile[PATH_LEN];
 safef(tabFile, sizeof(tabFile), "%s.%s", table, "tab");
 
 itemAttrs = loadAttrFile(itemAttrFile);
 writeTabFile(itemAttrs, tabFile);
 makeTable(conn, table);
 sqlLoadTabFile(conn, tabFile, table, SQL_TAB_FILE_ON_SERVER);
 sqlDisconnect(&conn);
 unlink(tabFile);
 }
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 optionInit(&argc, argv, options);
 if (argc != 4)
     usage();
 gAppend = optionExists("append");
 hgLoadItemAttr(argv[1], argv[2], argv[3]);
 return 0;
 }