e70152e44cc66cc599ff6b699eb8adc07f3e656a
kent
  Sat May 24 21:09:34 2014 -0700
Adding Copyright NNNN Regents of the University of California to all files I believe with reasonable certainty were developed under UCSC employ or as part of Genome Browser copyright assignment.
diff --git src/lib/repMask.c src/lib/repMask.c
index 4e79ca9..8fab09b 100644
--- src/lib/repMask.c
+++ src/lib/repMask.c
@@ -1,170 +1,173 @@
 /* repMask.c was originally generated by the autoSql program, which also 
  * generated repMask.h and repMask.sql.  This module links the database and the RAM 
  * representation of objects. */
 
+/* Copyright (C) 2011 The Regents of the University of California 
+ * See README in this or parent directory for licensing information. */
+
 #include "common.h"
 #include "sqlList.h"
 #include "sqlNum.h"
 #include "repMask.h"
 
 
 void repeatMaskOutStaticLoad(char **row, struct repeatMaskOut *ret)
 /* Load a row from repeatMaskOut table into ret.  The contents of ret will
  * be replaced at the next call to this function. */
 {
 int i;
 
 ret->score = sqlUnsigned(row[0]);
 ret->percDiv = atof(row[1]);
 ret->percDel = atof(row[2]);
 ret->percInc = atof(row[3]);
 ret->qName = row[4];
 ret->qStart = sqlSigned(row[5]);
 ret->qEnd = sqlSigned(row[6]);
 ret->qLeft = row[7];
 strcpy(ret->strand, row[8]);
 ret->rName = row[9];
 ret->rFamily = row[10];
 ret->rStart = row[11];	/* sometimes this number is enclosed in (parens) */
 /* This row[12] is interpreted as an Unsigned - but I can find no good reason
  * for it to be an error exit when there is a negative number here.
  * The only programs that use this routine are blat, psLayout and
  * maskOutFa and none of them even use this number for anything.
  * For data base loading of the rmsk tracks, these .out files are parsed
  * by hgLoadOut and none of this business is referenced.
  */
 i = sqlSigned(row[12]);
 if( i < 0 ) {
     warn("WARNING: negative rEnd: %d %s:%d-%d %s", i, ret->qName, ret->qStart, ret->qEnd, ret->rName);
     ret->rEnd = 0;
 } else {
 ret->rEnd = sqlUnsigned(row[12]);
 }
 ret->rLeft = row[13];
 }
 
 struct repeatMaskOut *repeatMaskOutLoad(char **row)
 /* Load a repeatMaskOut from row fetched with select * from repeatMaskOut
  * from database.  Dispose of this with repeatMaskOutFree(). */
 {
 struct repeatMaskOut *ret;
 
 AllocVar(ret);
 ret->score = sqlUnsigned(row[0]);
 ret->percDiv = atof(row[1]);
 ret->percDel = atof(row[2]);
 ret->percInc = atof(row[3]);
 ret->qName = cloneString(row[4]);
 ret->qStart = sqlSigned(row[5]);
 ret->qEnd = sqlSigned(row[6]);
 ret->qLeft = cloneString(row[7]);
 strcpy(ret->strand, row[8]);
 ret->rName = cloneString(row[9]);
 ret->rFamily = cloneString(row[10]);
 ret->rStart = cloneString(row[11]);
 ret->rEnd = sqlUnsigned(row[12]);
 ret->rLeft = cloneString(row[13]);
 return ret;
 }
 
 struct repeatMaskOut *repeatMaskOutCommaIn(char **pS)
 /* Create a repeatMaskOut out of a comma separated string. */
 {
 struct repeatMaskOut *ret;
 char *s = *pS;
 
 AllocVar(ret);
 ret->score = sqlUnsignedComma(&s);
 ret->percDiv = sqlSignedComma(&s);
 ret->percDel = sqlSignedComma(&s);
 ret->percInc = sqlSignedComma(&s);
 ret->qName = sqlStringComma(&s);
 ret->qStart = sqlSignedComma(&s);
 ret->qEnd = sqlSignedComma(&s);
 ret->qLeft = sqlStringComma(&s);
 sqlFixedStringComma(&s, ret->strand, sizeof(ret->strand));
 ret->rName = sqlStringComma(&s);
 ret->rFamily = sqlStringComma(&s);
 ret->rStart = sqlStringComma(&s);
 ret->rEnd = sqlUnsignedComma(&s);
 ret->rLeft = sqlStringComma(&s);
 *pS = s;
 return ret;
 }
 
 void repeatMaskOutFree(struct repeatMaskOut **pEl)
 /* Free a single dynamically allocated repeatMaskOut such as created
  * with repeatMaskOutLoad(). */
 {
 struct repeatMaskOut *el;
 
 if ((el = *pEl) == NULL) return;
 freeMem(el->qName);
 freeMem(el->qLeft);
 freeMem(el->rName);
 freeMem(el->rFamily);
 freeMem(el->rStart);
 freeMem(el->rLeft);
 freez(pEl);
 }
 
 void repeatMaskOutFreeList(struct repeatMaskOut **pList)
 /* Free a list of dynamically allocated repeatMaskOut's */
 {
 struct repeatMaskOut *el, *next;
 
 for (el = *pList; el != NULL; el = next)
     {
     next = el->next;
     repeatMaskOutFree(&el);
     }
 *pList = NULL;
 }
 
 void repeatMaskOutOutput(struct repeatMaskOut *el, FILE *f, char sep, char lastSep) 
 /* Print out repeatMaskOut.  Separate fields with sep. Follow last field with lastSep. */
 {
 fprintf(f, "%u", el->score);
 fputc(sep,f);
 fprintf(f, "%f", el->percDiv);
 fputc(sep,f);
 fprintf(f, "%f", el->percDel);
 fputc(sep,f);
 fprintf(f, "%f", el->percInc);
 fputc(sep,f);
 if (sep == ',') fputc('"',f);
 fprintf(f, "%s", el->qName);
 if (sep == ',') fputc('"',f);
 fputc(sep,f);
 fprintf(f, "%d", el->qStart);
 fputc(sep,f);
 fprintf(f, "%d", el->qEnd);
 fputc(sep,f);
 if (sep == ',') fputc('"',f);
 fprintf(f, "%s", el->qLeft);
 if (sep == ',') fputc('"',f);
 fputc(sep,f);
 if (sep == ',') fputc('"',f);
 fprintf(f, "%s", el->strand);
 if (sep == ',') fputc('"',f);
 fputc(sep,f);
 if (sep == ',') fputc('"',f);
 fprintf(f, "%s", el->rName);
 if (sep == ',') fputc('"',f);
 fputc(sep,f);
 if (sep == ',') fputc('"',f);
 fprintf(f, "%s", el->rFamily);
 if (sep == ',') fputc('"',f);
 fputc(sep,f);
 if (sep == ',') fputc('"',f);
 fprintf(f, "%s", el->rStart);
 if (sep == ',') fputc('"',f);
 fputc(sep,f);
 fprintf(f, "%u", el->rEnd);
 fputc(sep,f);
 if (sep == ',') fputc('"',f);
 fprintf(f, "%s", el->rLeft);
 if (sep == ',') fputc('"',f);
 fputc(lastSep,f);
 }