e6a46ac87f958486b1d1bcef8e80dcd872ad81fe
hiram
  Sat Jun 10 19:01:23 2023 -0700
adding silent google reCAPTCHA v3 function to hgUserSuggestion refs #31325

diff --git src/hg/inc/cart.h src/hg/inc/cart.h
index d784bf5..1f54169 100644
--- src/hg/inc/cart.h
+++ src/hg/inc/cart.h
@@ -405,30 +405,35 @@
 #endif
 ;
 
 void cartVaWebStart(struct cart *cart, char *db, char *format, va_list args);
 /* Print out pretty wrapper around things when working
  * from cart. */
 
 void cartWebStartHeader(struct cart *cart, char *db, char *format, ...);
 /* Print out Content-type header and then pretty wrapper around things when working
  * from cart. */
 
 void cartWebEnd();
 /* End out pretty wrapper around things when working
  * from cart. */
 
+void cartWebEndExtra(char *footer);
+/* Write out HTML footer and get rid or error handler, with extra text
+ * at the end of the page as desired.
+ */
+
 void cartHtmlShellWithHead(char *head, char *title, void (*doMiddle)(struct cart *cart),
         char *cookieName, char **exclude, struct hash *oldVars);
 /* Load cart from cookie and session cgi variable.  Write web-page
  * preamble including head and title, call doMiddle with cart, and write end of web-page.
  * Exclude may be NULL.  If it exists it's a comma-separated list of
  * variables that you don't want to save in the cart between
  * invocations of the cgi-script. */
 
 void cartHtmlShell(char *title, void (*doMiddle)(struct cart *cart),
 	char *cookieName, char **exclude, struct hash *oldVars);
 /* Load cart from cookie and session cgi variable.  Write web-page preamble, call doMiddle
  * with cart, and write end of web-page.   Exclude may be NULL.  If it exists it's a
  * comma-separated list of variables that you don't want to save in the cart between
  * invocations of the cgi-script. oldVars is an optional hash that will get values
  * of things in the cart that were overwritten by cgi-variables. */