7946c5e263cf909af673ecf7a7daa032d30fa11f braney Thu Nov 9 12:00:54 2017 -0800 fix problem in #19914 diff --git src/hg/hgSession/hgSession.c src/hg/hgSession/hgSession.c index a427070..1d7948b 100644 --- src/hg/hgSession/hgSession.c +++ src/hg/hgSession/hgSession.c @@ -1192,32 +1192,42 @@ cartCopyCustomTracks(cart); cartCheckForCustomTracks(cart, dyMessage); hDisconnectCentral(&conn); return dyStringCannibalize(&dyMessage); } void doSaveLocal() /* Output current settings to be saved as a file on the user's machine. * Return a message confirming what we did. */ { char *fileName = textOutSanitizeHttpFileName(cartString(cart, hgsSaveLocalFileName)); char *compressType = cartString(cart, hgsSaveLocalFileCompress); struct pipeline *compressPipe = textOutInit(fileName, compressType, NULL); cleanHgSessionFromCart(cart); + +// if we're normally outputing the cart in table form, we want to turn that off +// and turn it back on after we're through. +char *tableSetting = cartOptionalString(cart,CART_DUMP_AS_TABLE); +if (tableSetting != NULL) + cartRemove(cart,CART_DUMP_AS_TABLE); + cartDump(cart); +if (tableSetting != NULL) + cartSetString(cart, CART_DUMP_AS_TABLE, tableSetting); + // Now add all the default visibilities to output. outDefaultTracks(cart, NULL); textOutClose(&compressPipe, NULL); } char *doLoad(boolean fromUrl, char *actionVar) /* Load settings from a file or URL sent by the user. * Return a message confirming what we did. */ { struct dyString *dyMessage = dyStringNew(1024); struct lineFile *lf = NULL; webPushErrHandlersCartDb(cart, cartUsualString(cart, "db", NULL)); if (fromUrl) {