eb728a6583bf2f2151e4ebe2e418cb103011814c braney Mon Jun 21 12:24:36 2021 -0700 tweak to cartRewrite at Jonathans suggestion. Now it does as many rewrites as it has rather than not doing any if it can't do them all. diff --git src/hg/lib/cartRewrite.c src/hg/lib/cartRewrite.c index 31a76f8..16f0940 100644 --- src/hg/lib/cartRewrite.c +++ src/hg/lib/cartRewrite.c @@ -148,29 +148,31 @@ { void (*func)(struct cart *cart); }; static struct cartRewrite cartRewrites[] = { { cartEdit0}, }; void cartRewrite(struct cart *cart, unsigned trackDbCartVersion, unsigned cartVersion) /* Rewrite the cart to update it to expectations of trackDb. */ { if (sameString(cfgOptionDefault("cartVersion", "off"), "off")) return; -if (trackDbCartVersion > ArraySize(cartRewrites)) +// call the rewrite functions to bring us up to the trackDb cart version +for(; cartVersion < trackDbCartVersion; cartVersion++) { - fprintf(stderr,"CartRewriteError: do not have cart rewrite rules to bring it up to version %d requested by trackDb\n", trackDbCartVersion); - return; + // if we don't have a rewrite for this increment, bail out + // with a warning in the error_log + if (cartVersion >= ArraySize(cartRewrites)) + { + fprintf(stderr,"CartRewriteError: do not have cart rewrite rules to bring it up to version %d requested by trackDb. Reached level %d\n", trackDbCartVersion, cartVersion); + break; + } + (cartRewrites[cartVersion].func)(cart); } -// call the rewrite functions to bring us up to the trackDb cart version -int ii; -for(ii = cartVersion; ii < trackDbCartVersion; ii++) - (cartRewrites[ii].func)(cart); - -cartSetVersion(cart, trackDbCartVersion); +cartSetVersion(cart, cartVersion); }