15d0836b4dba65919e83ce5ef0aaafe5a0edc72f
angie
  Wed Apr 17 12:49:53 2013 -0700
Making annoGratorGpVar able to handle VCF input too.  In order for a grator tosee what type of input is coming from the primary source, the streamer should
be passed in along with the primary row, as it is for formatters now.
refs #6152

diff --git src/lib/annoStreamer.c src/lib/annoStreamer.c
index 837e417..04eda7a 100644
--- src/lib/annoStreamer.c
+++ src/lib/annoStreamer.c
@@ -123,15 +123,30 @@
 if (findColumn(columns, "chrom", retChromIx, retChromField))
     {
     if (findColumn(columns, "chromStart", retStartIx, retStartField))
 	return findColumn(columns, "chromEnd", retEndIx, retEndField);
     else return (findColumn(columns, "txStart", retStartIx, retStartField) &&
 		 findColumn(columns, "txEnd", retEndIx, retEndField));
     }
 else if (findColumn(columns, "tName", retChromIx, retChromField))
     return (findColumn(columns, "tStart", retStartIx, retStartField) &&
 	    findColumn(columns, "tEnd", retEndIx, retEndField));
 else if (findColumn(columns, "genoName", retChromIx, retChromField))
     return (findColumn(columns, "genoStart", retStartIx, retStartField) &&
 	    findColumn(columns, "genoEnd", retEndIx, retEndField));
 return FALSE;
 }
+
+struct annoStreamRows *annoStreamRowsNew(struct annoStreamer *streamerList)
+/* Returns an array of aSR, one for each streamer in streamerList.
+ * Typically array is reused by overwriting elements' rowList pointers.
+ * Free array when done. */
+{
+int streamerCount = slCount(streamerList);
+struct annoStreamRows *data = NULL;
+AllocArray(data, streamerCount);
+struct annoStreamer *streamer = streamerList;
+int i = 0;
+for (;  i < streamerCount;  i++, streamer = streamer->next)
+    data[i].streamer = streamer;
+return data;
+}