d0773d1845bd3c754d79d26d790b44893cbc8bf6
angie
  Fri Mar 6 13:54:11 2020 -0800
Added another check for cartDidContentType, thanks Jonathan.  refs #25064

diff --git src/hg/lib/cart.c src/hg/lib/cart.c
index 6a8dde8..92a0f0b 100644
--- src/hg/lib/cart.c
+++ src/hg/lib/cart.c
@@ -2255,31 +2255,31 @@
 }
 
 struct cart *cartAndCookieWithHtml(char *cookieName, char **exclude,
                                    struct hash *oldVars, boolean doContentType)
 /* Load cart from cookie and session cgi variable.  Write cookie
  * and optionally content-type part HTTP preamble to web page.  Don't
  * write any HTML though. */
 {
 // Note: early abort works fine but early warn does not
 htmlPushEarlyHandlers();
 struct cart *cart = cartForSession(cookieName, exclude, oldVars);
 popWarnHandler();
 popAbortHandler();
 
 cartWriteCookie(cart, cookieName);
-if (doContentType)
+if (doContentType && !cartDidContentType)
     {
     puts("Content-Type:text/html");
     puts("\n");
     cartDidContentType = TRUE;
     }
 return cart;
 }
 
 struct cart *cartAndCookie(char *cookieName, char **exclude,
                            struct hash *oldVars)
 /* Load cart from cookie and session cgi variable.  Write cookie and
  * content-type part HTTP preamble to web page.  Don't write any HTML though. */
 {
 return cartAndCookieWithHtml(cookieName, exclude, oldVars, TRUE);
 }