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/hgLoadWiggle/hgDumpWiggle.c src/hg/makeDb/hgLoadWiggle/hgDumpWiggle.c
index 6dbb190..f8a64cf 100644
--- src/hg/makeDb/hgLoadWiggle/hgDumpWiggle.c
+++ src/hg/makeDb/hgLoadWiggle/hgDumpWiggle.c
@@ -1,166 +1,166 @@
 /* hgDumpWiggle - dump wiggle data from database or .wig file */
 
 /* 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 "linefile.h"
 #include "obscure.h"
 #include "hash.h"
 #include "cheapcgi.h"
 #include "jksql.h"
 #include "dystring.h"
 #include "wiggle.h"
 #include "hdb.h"
 
 
 /* Command line switches. */
 boolean noBin = FALSE;		/* do not expect a bin column in the table */
 char *db = NULL;		/* database to read from */
 char *file = NULL;		/* .wig file to read from */
 char *chr = NULL;		/* work on this chromosome only */
 
 /* command line option specifications */
 static struct optionSpec optionSpecs[] = {
     {"db", OPTION_STRING},
     {"file", OPTION_STRING},
     {"chr", OPTION_STRING},
     {"noBin", OPTION_BOOLEAN},
     {NULL, 0}
 };
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "hgDumpWiggle - dump wiggle data from data base or .wig file\n"
   "usage:\n"
   "   hgDumpWiggle [options] [-db=<database> <track names ...>] [-file=<file.wig>]\n"
   "options:\n"
   "   -chr=chrN\twork on only chrN\n"
   "   -noBin\ttable has no bin column\n"
   "   Specify either a database with a track or a .wig file, not both\n"
   "   The -file option has not been implemented yet."
   );
 }
 
 void hgDumpWiggle(int trackCount, char *tracks[])
 /* hgDumpWiggle - dump wiggle data from database or .wig file */
 {
 int i;
 struct wiggle *wiggle;
 
 for (i=0; i<trackCount; ++i)
     verbose(2, "#\ttrack: %s\n", tracks[i]);
 
 if (db)
     {
     struct sqlConnection *conn = hAllocConn();
     struct sqlResult *sr;
     char **row;
     char query[256];
     char *wibFile = NULL;
     FILE *f = (FILE *) NULL;
     unsigned char *ReadData;    /* the bytes read in from the file */
     int dataOffset = 0;         /*      within data block during reading */
     int rowCount = 0;
 
     conn = sqlConnect(db);
     for (i=0; i<trackCount; ++i)
 	{
 	if (chr)
 	    sqlSafef(query, 256, "select * from %s where chrom = \"%s\"\n", tracks[i], chr);
 	else
 	    sqlSafef(query, 256, "select * from %s\n", tracks[i]);
 	verbose(2, "#\t%s\n", query);
 	sr = sqlGetResult(conn,query);
 	while ((row = sqlNextRow(sr)) != NULL)
 	    {
 	    ++rowCount;
 	    wiggle = wiggleLoad(row + 1);  /* the +1 avoids the bin column*/
 	    verbose(2, "#\trow: %d, start: %u, data range: %g: [%g:%g]\n", rowCount, wiggle->chromStart, wiggle->dataRange, wiggle->lowerLimit, wiggle->lowerLimit+wiggle->dataRange);
 	    verbose(2, "#\tresolution: %g per bin\n",wiggle->dataRange/(double)MAX_WIG_VALUE);
 	    if (wibFile)
 		{
 		if (differentString(wibFile,wiggle->file))
 		    {
 		    if (f != (FILE *) NULL)
 			{
 			fclose(f);
 			freeMem(wibFile);
 			}
 		    wibFile = cloneString(wiggle->file);
 		    f = mustOpen(wibFile, "r");
 		    }
 		}
 	    else
 		{
 		wibFile = cloneString(wiggle->file);
 		f = mustOpen(wibFile, "r");
 		}
 	    fseek(f, wiggle->offset, SEEK_SET);
 	    ReadData = (unsigned char *) needMem((size_t) (wiggle->count + 1));
 	    fread(ReadData, (size_t) wiggle->count,
 		(size_t) sizeof(unsigned char), f);
 	    verbose(2, "#\trow: %d, reading: %u bytes\n", rowCount, wiggle->count);
 	    for (dataOffset = 0; dataOffset < wiggle->count; ++dataOffset)
                 {
                 unsigned char datum = ReadData[dataOffset];
                 if (datum != WIG_NO_DATA)
 		    {
 		    double dataValue =
   wiggle->lowerLimit+(((double)datum/(double)MAX_WIG_VALUE)*wiggle->dataRange);
 		    printf("%d\t%g\n",
 	1 + wiggle->chromStart + (dataOffset * wiggle->span), dataValue);
 		    }
 		}
 	    }
 	}
     if (f != (FILE *) NULL)
 	{
 	fclose(f);
 	}
     if (wibFile)
 	freeMem(wibFile);
 
     sqlFreeResult(&sr);
     hFreeConn(&conn);
     }
 else
     {
     warn("ERROR: file option has not been implemented yet ...");
     }
 }	/*	void hgDumpWiggle(int trackCount, char *tracks[])	*/
 
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 optionInit(&argc, argv, optionSpecs);
 
 
 db = optionVal("db", NULL);
 file = optionVal("file", NULL);
 chr = optionVal("chr", NULL);
 noBin = optionExists("noBin");
 if (db)
     verbose(2, "#\tdatabase: %s\n", db);
 if (file)
     verbose(2, "#\t.wig file: %s\n", file);
 if (chr)
     verbose(2, "#\tselect chrom: %s\n", chr);
 if (noBin)
     verbose(2, "#\texpect no bin column in table\n");
 if (db && file)
     {
     warn("ERROR: specify only one of db or file, not both");
     usage();
     }
 if (!(db || file))
     {
     warn("ERROR: must specify one of db or file");
     usage();
     }
 hgDumpWiggle(argc-1, argv+1);
 return 0;
 }