ba63ca047c08a7a20146f2c3216aa3330ece39b2
max
  Thu Dec 18 06:26:04 2014 -0800
changes after code review,  refs #14545
diff --git src/hg/hgTracks/bedTrack.c src/hg/hgTracks/bedTrack.c
index fcdd4ae..5b6c92d 100644
--- src/hg/hgTracks/bedTrack.c
+++ src/hg/hgTracks/bedTrack.c
@@ -580,51 +580,38 @@
 }
 
 char *bedName(struct track *tg, void *item)
 /* Return name of bed track item. */
 {
 struct bed *bed = item;
 if (bed->name == NULL)
     return "";
 return bed->name;
 }
 
 char *bedNameField1(struct track *tg, void *item)
 /* return part before first space in item name */
 {
 struct bed *bed = item;
-if (bed->name==NULL)
-    return "";
-char *nonSpc = stringIn(" ", bed->name);
-if (nonSpc==NULL)
-    return bed->name;
-int part1Len = nonSpc - bed->name;
-char *newName = cloneStringZ(bed->name, part1Len);
-return newName;
+return cloneFirstWord(bed->name);
 }
 
-char *bedNameField2(struct track *tg, void *item)
+char *bedNameNotField1(struct track *tg, void *item)
 /* return part after first space in item name */
 {
 struct bed *bed = item;
-if (bed->name==NULL)
-    return "";
-
-char* spcPos = stringIn(" ", bed->name);
-if (spcPos==NULL)
-    return bed->name;
-return cloneString(spcPos+1);
+return cloneNotFirstWord(bed->name);
 }
 
 int bedItemStart(struct track *tg, void *item)
 /* Return start position of item. */
 {
 struct bed *bed = item;
 return bed->chromStart;
 }
 
 int bedItemEnd(struct track *tg, void *item)
 /* Return end position of item. */
 {
 struct bed *bed = item;
 return bed->chromEnd;
 }
@@ -675,31 +662,31 @@
 tg->mapItemName = bedName;
 tg->totalHeight = tgFixedTotalHeightNoOverflow;
 tg->itemHeight = tgFixedItemHeight;
 tg->itemStart = bedItemStart;
 tg->itemEnd = bedItemEnd;
 // Adding "tg->nextPrevExon = simpleBedNextPrevEdge;" opened a can of worms: too many
 // bed-based tracks have their own drawItems methods that don't hook into nextItem stuff,
 // or drawItemAt methods that draw mapboxes but tg->mapsSelf is not set...
 // So, set tg->nextPrevExon = simpleBedNextPrevEdge case-by-case.
 tg->nextPrevItem = linkedFeaturesLabelNextPrevItem;
 tg->freeItems = freeSimpleBed;
 
 if (trackDbSettingClosestToHomeOn(tg->tdb, "linkIdInName"))
     {
     tg->mapItemName = bedNameField1;
-    tg->itemName = bedNameField2;
+    tg->itemName = bedNameNotField1;
     }
 
 }
 
 void bed9Methods(struct track *tg)
 /* Fill in methods for bed9 tracks. */
 {
 linkedFeaturesMethods(tg);
 tg->loadItems = loadBed9;
 }
 
 void addSimpleFeatures(struct simpleFeature **pSfList, int start, int end, int qStart, boolean  everyBase)
 /* Add simple features from start to end to the list.
  * qStart is the offset in the query.
  * If everyBase is TRUE then add a simpleFeature for every base in the start,end region */