7220331d99c960562d2dbd5b293bf0002827043a
max
  Sat May 16 08:06:42 2015 -0700
add a hg.conf option that makes sure that errAbort messages are always
shown to the user, even when they are before a Content-type, refs #15332

diff --git src/hg/lib/cart.c src/hg/lib/cart.c
index c6e55ee..befec83 100644
--- src/hg/lib/cart.c
+++ src/hg/lib/cart.c
@@ -647,30 +647,33 @@
     char buffer[1024];
     safef(buffer, sizeof buffer, "hgHubConnect.hub.%s", id);
     cartRemove(cart, buffer);
     }
 
 cartRemove(cart, "hubId");
 cartRemove(cart, hgHubDoDisconnect);
 }
 
 struct cart *cartNew(char *userId, char *sessionId,
                      char **exclude, struct hash *oldVars)
 /* Load up cart from user & session id's.  Exclude is a null-terminated list of
  * strings to not include */
 {
 cgiApoptosisSetup();
+if (cfgOptionBooleanDefault("showEarlyErrors", FALSE))
+    errAbortSetDoContentType(TRUE);
+
 struct cart *cart;
 struct sqlConnection *conn = cartDefaultConnector();
 char *ex;
 boolean userIdFound = FALSE, sessionIdFound = FALSE;
 
 AllocVar(cart);
 cart->hash = newHash(12);
 cart->exclude = newHash(7);
 cart->userId = userId;
 cart->sessionId = sessionId;
 cart->userInfo = loadDb(conn, userDbTable(), userId, &userIdFound);
 cart->sessionInfo = loadDb(conn, sessionDbTable(), sessionId, &sessionIdFound);
 if (sessionIdFound)
     cartParseOverHash(cart, cart->sessionInfo->contents);
 else if (userIdFound)