bf2f400dcf7342c1f31ca8d946b80ac90bbde89a
max
  Fri Jan 27 14:52:07 2023 -0800
improving error message in table browser, no redmine, email with Lou, Brian, Anna

diff --git src/hg/hgTables/hgTables.c src/hg/hgTables/hgTables.c
index dbab894..cf08e35 100644
--- src/hg/hgTables/hgTables.c
+++ src/hg/hgTables/hgTables.c
@@ -192,33 +192,36 @@
 {
 popWarnHandler();
 cartWebEnd();
 }
 
 
 void explainWhyNoResults(FILE *f)
 /* Put up a little explanation to user of why they got nothing. */
 {
 if (f == NULL)
     f = stdout;
 fprintf(f, "# No results");
 if (identifierFileName() != NULL)
     fprintf(f, " matching identifier list");
 if (anyFilter())
-    fprintf(f, " passing filter");
-if (!fullGenomeRegion())
-    fprintf(f, " in given region");
+    fprintf(f, " passing filter. To show all results: return to the table browser, under 'subset','filter' click 'clear'");
+if (!fullGenomeRegion()) {
+    char *region = cartUsualString(cart, "position", "undefined");
+    fprintf(f, " in region '%s'. If you want to show results from the entire genome:\n", region);
+    fprintf(f, "# go back to the table browser and switch the region of interest from 'position:%s' to 'genome'", region);
+}
 if (anyIntersection())
     fprintf(f, " after intersection");
 fprintf(f, ".\n");
 }
 
 char *curTableLabel()
 /* Return label for current table - track short label if it's a track */
 {
 if (curTrack != NULL && sameString(curTrack->table, curTable))
     return curTrack->shortLabel;
 else
     return curTable;
 }
 
 char *getScriptName()