ec2f9cd20b7c6d615c233ab4f16be579b9c85ae0 braney Tue Nov 15 15:48:41 2022 -0800 put track duplication under hg.conf control diff --git src/hg/lib/dupTrack.c src/hg/lib/dupTrack.c index a5004e5..e858793 100644 --- src/hg/lib/dupTrack.c +++ src/hg/lib/dupTrack.c @@ -1,25 +1,26 @@ /* Stuff to help handle a track that is a duplicate of a another - sharing data * and type, but having it's own cart settings. */ #include "common.h" #include "hash.h" #include "cart.h" #include "dupTrack.h" #include "ra.h" #include "portable.h" #include "trashDir.h" +#include "hgConfig.h" boolean isDupTrack(char *track) /* determine if track name refers to a custom track */ { return (startsWith(DUP_TRACK_PREFIX, track)); } char *dupTrackSkipToSourceName(char *dupeTrackName) /* If it looks like it's a dupe track then skip over duppy part * in particular skip over dup_N_ form prefix for numerical N. */ { char *name = dupeTrackName; if (startsWith(DUP_TRACK_PREFIX, name)) { char *s = name + strlen(DUP_TRACK_PREFIX); @@ -237,15 +238,21 @@ break; return dup; } struct trackDb *dupTdbFrom(struct trackDb *sourceTdb, struct dupTrack *dup) /* Generate a duplicate trackDb */ { /* Start with a basic shallow clone */ struct trackDb *tdb = CloneVar(sourceTdb); tdb->next = NULL; tdb->track = cloneString(dup->name); dupTrackAddInfoToTdb(dup, tdb); return tdb; } +boolean dupTrackEnabled() +/* Return true if we allow tracks to be duped. */ +{ +return cfgOptionBooleanDefault("canDupTracks", FALSE); +} +