8ba8a055a41e48f2e0f06803754544dd0089f4ec
chmalee
  Thu Oct 13 12:48:20 2022 -0700
explicitly return NULL if categories were asked for in hubApi but no search results for that category

diff --git src/hg/hubApi/search.c src/hg/hubApi/search.c
index 77cdae5..3258ac2 100644
--- src/hg/hubApi/search.c
+++ src/hg/hubApi/search.c
@@ -116,30 +116,31 @@
 /* Output search results for db, potentially limited by categories */
 {
 initGenbankTableNames(db);
 struct cart *bogusCart = cartOfNothing();
 cartAddString(bogusCart, "db", db);
 hashTracksAndGroups(bogusCart, db);
 struct jsonWrite *jw = apiStartOutput();
 struct searchCategory *searchCategoryList = NULL;
 if (isNotEmpty(categories))
     searchCategoryList = makeCategsFromString(categories, db, bogusCart);
 else
     searchCategoryList = getAllCategories(bogusCart, db, hgFindGroupHash);
 struct hgPositions *hgp = NULL;
 jsonWriteString(jw, "genome", db);
 hgp = hgPositionsFind(db, searchTerm, "", "searchExample", bogusCart, FALSE, measureTiming, searchCategoryList);
+if (hgp)
     hgPositionsJson(jw, db, hgp, NULL);
 apiFinishOutput(0, NULL, jw);
 }
 
 void apiSearch(char *words[MAX_PATH_INFO])
 /* 'search' function */
 {
 char *hubUrl = cgiOptionalString("hubUrl");
 char *extraArgs = verifyLegalArgs(argSearch);
 if (extraArgs)
     apiErrAbort(err400, err400Msg, "extraneous arguments found for function /search'%s'", extraArgs);
 
 // verify required genome and searchTerm parameters exist
 char *db = cgiOptionalString("genome");
 if (isEmpty(db))