da449b4fe2039f200a2f93d5209c48fe98c0a534 braney Tue Sep 29 10:58:30 2026 -0700 cartPcrVarTester: which hgPcrResult_ cart variables survive a cart load, refs #38442 Feeds hgPcrResult_ variables through cartParseOverHash() and says which are kept. With the cart.c fix backed out it shows hgPcrResult_imgOrd dropped and nothing else changes. Registry row and catalog note added. diff --git src/hg/utils/cartFileVarCatalog/cartFileVarCatalog.py src/hg/utils/cartFileVarCatalog/cartFileVarCatalog.py index a318ccf2f00..940e23fd60e 100755 --- src/hg/utils/cartFileVarCatalog/cartFileVarCatalog.py +++ src/hg/utils/cartFileVarCatalog/cartFileVarCatalog.py @@ -194,31 +194,33 @@ # words rather than the whole value. e("hgPcrResult_<db>", "screened", "hg/cgilib/pcrResult.c", "fileExists, lineFileOpen", ident="{cartVar}", screen="pair:hgPcrResult_", note="In-silico PCR results. The value is two trash file names and an " "optional targetDb name, not one file name, which is why it needs an " "array of its own. Found by the daily code review of the commit that " "wrote this catalog, not by the scan: pcrResultParseCart() chopLine()s " "the value into different locals before opening them, so no flow is " "harvested, and a name built at run time reads as {cartVar}, which the " "--suspects name test cannot recognize either. hgPcr appends to both " "files when the user checks 'Append to existing PCR result', so an " "unscreened value was an arbitrary file write as well as a read. Both " "names are checked at the point of use too, in pcrResultParseCart() " "and in hgPcr's pcrResultCartFiles(). hgPcrResult_targetStyle shares " - "the prefix and is a display setting, so cart.c excludes it by name."), + "the prefix and is a display setting, so cart.c excludes it by name. So " + "is hgPcrResult_imgOrd, the track's place in the image after a drag, " + "because hgPcrResult is also the track name (#38442)."), # ---- either a URL or a file we made -------------------------------------- # Screened against urlOrFileNameCartVars[] with isServerUserFileOrUrl(), # because isServerUserFilePath() alone would reject every legitimate URL. e("multiRegionsBedUrl", "screened", "hg/hgTracks/config.c", "fileExists, lineFileMayOpen", screen="urlOrFile:multiRegionsBedUrl", note="Multi-region custom BED: either a URL the user gave, or the trash " "file hgTracks wrote the pasted BED to (hgTracks.c:4357). The code " "picks the branch by looking for '://', so a value with no protocol " "falls through to opening a local file. config.c prints what it " "reads back into the multi-region textarea, so an unscreened value " "was a file read the user could see. Both local-file branches now " "check the path as well."),