e5268a564b983a211baf36b7df298e54e2d189f3
markd
  Mon Jan 29 16:14:25 2018 -0800
allow skip more types of gff3ToGenePred conversions errors with -warnAndContinue to support other NCBI GFF3 files

diff --git src/lib/gff3.c src/lib/gff3.c
index bbba639..8d2f9e4 100644
--- src/lib/gff3.c
+++ src/lib/gff3.c
@@ -566,39 +566,41 @@
 for (attr = g3a->attrs; attr != NULL; attr = attr->next)
     {
     if (isupper(attr->tag[0]))
         parseStdAttr(g3a, attr);
     }
 }
 
 static void parseAnn(struct gff3File *g3f, char *line)
 /* parse an annotation line */
 {
 // extra column to check for too many
 char *words[gffNumCols+1];
 int numWords = chopString(line, "\t", words, gffNumCols+1);
 if (numWords != gffNumCols)
     gff3FileErr(g3f, "expected %d tab-separated columns: %s", gffNumCols, line);
-
+else
+    {
     struct gff3Ann *g3a = gff3FileAlloc(g3f, sizeof(struct gff3Ann));
     g3a->file = g3f;
     g3a->lineNum = g3f->lf->lineIx;
     parseFields(g3a, words);
     parseAttrs(g3a, words[8]);
     parseStdAttrs(g3a);
     slAddHead(&g3f->anns, gff3AnnRefNew(g3a));
     }
+}
 
 static void writeAttr(struct gff3Attr *attr, FILE *fh)
 /* write one attribute and it's values */
 {
 writeEscaped(attr->tag, fh);
 fputc('=', fh);
 struct slName *val;
 for (val = attr->vals; val != NULL; val = val->next)
     {
     if (val != attr->vals)
         fputc(',', fh);
     writeEscaped(val->name, fh);
     }
 }