e310cad5467b2f306c8f90b23f749ad9f6a43296 hiram Sat May 25 09:47:39 2019 -0700 clean up argList processing code review refs #23521 #23427 diff --git src/hg/hubApi/hubApi.c src/hg/hubApi/hubApi.c index 797c296..618b1fa 100644 --- src/hg/hubApi/hubApi.c +++ src/hg/hubApi/hubApi.c @@ -25,30 +25,38 @@ long long itemsReturned = 0; /* for getData functions, number of items returned */ /* for debugging purpose, current bot delay value */ int botDelay = 0; boolean debug = FALSE; /* can be set in URL debug=1, to turn off: debug=0 */ #define delayFraction 0.03 /* default is to list all trackDb entries, composite containers too. * This option will limit to only the actual track entries with data */ boolean trackLeavesOnly = FALSE; /* set by CGI parameter 'trackLeavesOnly' */ /* this selects output type 'arrays', where the default type is: objects */ boolean jsonOutputArrays = FALSE; /* set by CGI parameter 'jsonOutputArrays' */ boolean measureTiming = FALSE; /* set by CGI parameters */ +/* valid argument listings to verify extraneous arguments */ +char *argListPublicHubs[] = { NULL }; +char *argListUcscGenomes[] = { NULL }; +char *argListHubGenomes[] = { argHubUrl, NULL }; +char *argListTracks[] = { argGenome, argHubUrl, argTrackLeavesOnly, NULL }; +char *argListChromosomes[] = { argGenome, argHubUrl, argTrack, NULL }; +char *argGetDataTrack[] = { argGenome, argHubUrl, argTrack, argChrom, argStart, argEnd, argMaxItemsOutput, argJsonOutputArrays, NULL }; +char *argGetDataSequence[] = { argGenome, argHubUrl, argTrack, argChrom, argStart, argEnd, NULL }; /* Global only to this one source file */ static struct cart *cart; /* CGI and other variables */ static struct hash *oldVars = NULL; static struct hash *trackCounter = NULL; static long totalTracks = 0; static boolean allTrackSettings = FALSE; /* checkbox setting */ static char **shortLabels = NULL; /* public hub short labels in array */ static int publicHubCount = 0; static char *defaultHub = "Plants"; static char *defaultDb = "ce11"; long enteredMainTime = 0; /* will become = clock1000() on entry */ /* to allow calculation of when to bail out, taking too long */ static long timeOutSeconds = 100; static boolean timedOut = FALSE;