63f915b4c381054700db900e0f999c499e1054ca
braney
  Thu Dec 18 15:02:49 2014 -0800
upgrade to new version of HAL.
diff --git src/hg/hgTables/hal.c src/hg/hgTables/hal.c
index c6eb310..62bca50 100644
--- src/hg/hgTables/hal.c
+++ src/hg/hgTables/hal.c
@@ -1,87 +1,95 @@
 /* Copyright (C) 2013 The Regents of the University of California 
  * See README in this or parent directory for licensing information. */
 
 #include "common.h"
 #include "cart.h"
 #include "jksql.h"
 #include "grp.h"
 #include "hubConnect.h"
 #include "hdb.h"
 #include "maf.h"
 #include "hgTables.h"
 #include "trackHub.h"
 #ifdef USE_HAL
 #include "halBlockViz.h"
 #endif // USE_HAL
 
 extern struct trackDb *curTrack;	/* Currently selected track. */
 extern char *database;
 extern struct hash *fullTableToTdbHash;        /* All tracks and subtracks keyed by tdb->table field. */
 
 boolean isHalTable(char *table)
 /* Return TRUE if table corresponds to a HAL file. */
 {
 if (isHubTrack(table))
     {
     struct trackDb *tdb = hashFindVal(fullTableToTdbHash, table);
     return startsWithWord("halSnake", tdb->type);
     }
 else
     return trackIsType(database, table, curTrack, "halSnake", ctLookupName);
 }
 
 struct trackDb *findTrackDb(struct trackDb *trackDb, char *table)
 // find a child of a composite that corresponds to this table
 {
 if (sameString(trackDb->table, table))
     return trackDb;
 
 struct trackDb *subTrack = trackDb->subtracks;
 struct trackDb *childTrackDb;
 for(; subTrack; subTrack = subTrack->next)
     {
     if ((childTrackDb = findTrackDb(subTrack, table)) != NULL)
 	return childTrackDb;
     }
 return NULL;
 }
 
 void doHalMaf(struct trackDb *parentTrack, char *table, struct sqlConnection *conn)
 /* Output regions as MAF.  maf tables look bed-like enough for
  * cookedBedsOnRegions to handle intersections. */
 {
 #ifdef USE_HAL
 struct region *region = NULL, *regionList = getRegions();
 struct trackDb *tdb;
 
 if ((tdb = findTrackDb(parentTrack, table)) == NULL)
     errAbort("cannot find track named %s under %s\n", table, parentTrack->table);
 char *fileName = trackDbSetting(tdb, "bigDataUrl");
 char *otherSpecies = trackDbSetting(tdb, "otherSpecies");
-int handle = halOpenLOD(fileName);
+char *errString;
+int handle = halOpenLOD(fileName, &errString);
+if (handle < 0)
+    errAbort("HAL open error: %s\n", errString);
 
-struct hal_species_t *speciesList = halGetSpecies(handle);
+struct hal_species_t *speciesList = halGetSpecies(handle, &errString);
+
+if (speciesList == NULL)
+    errAbort("HAL get species error: %s\n", errString);
 
 for(; speciesList; speciesList = speciesList->next)
     {
     if  (sameString(speciesList->name, otherSpecies))
 	break;
     }
 if (speciesList == NULL)
     errAbort("cannot find species %s in hal file %s\n",
 	otherSpecies, fileName);
 
 speciesList->next = NULL;
 
 textOpen();
 
 for (region = regionList; region != NULL; region = region->next)
     {
-    halGetMAF(stdout, handle, speciesList,
+    if (halGetMAF(stdout, handle, speciesList,
 		trackHubSkipHubName(database), region->chrom,
-		region->start, region->end, FALSE);
+		region->start, region->end, FALSE, &errString) < 0 )
+	errAbort("HAL get MAF error: %s\n", errString);
+
     }
 #else // USE_HAL
 errAbort("hgTables not compiled with HAL support.");
 #endif // USE_HAL
 }