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/mouseStuff/chainSplit/chainSplit.c src/hg/mouseStuff/chainSplit/chainSplit.c
index cb9ebd1..b1c1410 100644
--- src/hg/mouseStuff/chainSplit/chainSplit.c
+++ src/hg/mouseStuff/chainSplit/chainSplit.c
@@ -1,112 +1,112 @@
 /* chainSplit - Split chains up by target or query sequence. */
 
 /* Copyright (C) 2011 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 "hash.h"
 #include "options.h"
 #include "portable.h"
 #include "chain.h"
 
 
 boolean splitOnQ = FALSE;
 int lump = 0;
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "chainSplit - Split chains up by target or query sequence\n"
   "usage:\n"
   "   chainSplit outDir inChain(s)\n"
   "options:\n"
   "   -q  - Split on query (default is on target)\n"
   "   -lump=N  Lump together so have only N split files.\n"
   );
 }
 
 static struct optionSpec options[] = {
    {"q", OPTION_BOOLEAN},
    {"lump", OPTION_INT},
    {NULL, 0},
 };
 
 char *lumpName(char *name)
 /* Look for integer part of name (or hash it),  then do mod operation 
  * on it to assign to lump. */
 {
 char *s = name, c;
 static char buf[32];
 for (;;)
     {
     c = *s;
     if (c == 0)
 	{
 	safef(buf, sizeof(buf), "%03d", hashString(name) % lump);
 	return buf;
 	}
     if (isdigit(c))
         {
 	int lumpIx = atoi(s) % lump;
 	lumpIx %= lump;
 	safef(buf, sizeof(buf), "%03d", lumpIx);
 	return buf;
 	}
     ++s;
     }
 }
 
 void chainSplit(char *outDir, int inCount, char *inFiles[])
 /* chainSplit - Split chains up by target or query sequence. */
 {
 struct hash *hash = newHash(0);
 int inIx;
 char tpath[512];
 FILE *meta ;
 bool metaOpen = TRUE;
 makeDir(outDir);
 safef(tpath, sizeof(tpath), "%s/meta.tmp", outDir);
 meta = mustOpen(tpath,"w");
 
 for (inIx = 0; inIx < inCount; ++inIx)
     {
     struct lineFile *lf = lineFileOpen(inFiles[inIx], TRUE);
     struct chain *chain;
     FILE *f;
     lineFileSetMetaDataOutput(lf, meta);
     while ((chain = chainRead(lf)) != NULL)
         {
 	char *name = (splitOnQ ? chain->qName : chain->tName);
 	if (lump > 0)
 	    name = lumpName(name);
 	if ((f = hashFindVal(hash, name)) == NULL)
 	    {
 	    char path[512], cmd[512];
 	    safef(path, sizeof(path),"%s/%s.chain", outDir, name);
             if (metaOpen)
                 fclose(meta);
             metaOpen = FALSE;
 	    safef(cmd,sizeof(cmd), "cat %s | sort -u > %s", tpath, path);
             mustSystem(cmd);
 	    f = mustOpen(path, "a");
 	    hashAdd(hash, name, f);
 	    }
 	chainWrite(chain, f);
 	chainFree(&chain);
 	}
     lineFileClose(&lf);
     }
 }
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 optionInit(&argc, argv, options);
 splitOnQ = optionExists("q");
 lump = optionInt("lump", 0);
 if (argc < 3)
     usage();
 chainSplit(argv[1], argc-2, argv+2);
 return 0;
 }