e3589a4a737e30ac3b324d050dfeab10e015ae5e
max
  Tue Jan 12 13:54:56 2016 -0800
removing a check for 2002-era internet browsers after
confirmation from Angie. This will allow pasting of local file paths in GBiB or
mirrors into the custom track box. No redmine.

diff --git src/hg/lib/customTrack.c src/hg/lib/customTrack.c
index 6b9ab70..ba4ed5a 100644
--- src/hg/lib/customTrack.c
+++ src/hg/lib/customTrack.c
@@ -255,38 +255,30 @@
 struct sqlResult *sr = sqlGetResult(conn, "NOSQLINJ select * from ctgPos");
 char **row;
 while ((row = sqlNextRow(sr)) != NULL)
    {
    ctg = ctgPosLoad(row);
    slAddHead(&ctgList, ctg);
    hashAdd(ctgHash, ctg->contig, ctg);
    }
 customTrackLift(ctList, ctgHash);
 ctgPosFreeList(&ctgList);
 hashFree(&ctgHash);
 sqlFreeResult(&sr);
 hFreeConn(&conn);
 }
 
-boolean bogusMacEmptyChars(char *s)
-/* Return TRUE if it looks like this is just a buggy
- * Mac browser putting in bogus chars into empty text box. */
-{
-char c = *s;
-return (c != '_') && (c != '#') && !isalnum(c);
-}
-
 static int ct_nextDefaultTrackNum = 1;
 
 static boolean isDefaultTrack(struct customTrack *ct)
 /* determine if this ia an unnamed track */
 {
 return startsWith(CT_DEFAULT_TRACK_NAME, ct->tdb->shortLabel);
 }
 
 static void nextUniqueDefaultTrack(struct customTrack *ctList)
 /* find sequence number to assure uniqueness of default track,
  * by determining highest sequence number in existing track list */
 {
 struct customTrack *ct;
 int seqNum = 0, maxFound = 0;
 for (ct = ctList; ct != NULL; ct = ct->next)
@@ -744,31 +736,31 @@
 #define CT_CUSTOM_FILE_BIN_VAR  CT_CUSTOM_FILE_VAR "__binary"
 #define CT_CUSTOM_DOC_FILE_BIN_VAR  CT_CUSTOM_DOC_FILE_VAR "__binary"
 int numAdded = 0;
 char *err = NULL;
 
 /* the hgt.customText and hgt.customFile variables contain new custom
  * tracks that have not yet been parsed */
 
 char *customText = cartOptionalString(cart, CT_CUSTOM_TEXT_ALT_VAR);
 /* parallel CGI variable, used by hgCustom, to allow javascript */
 if (!customText)
     customText = cartOptionalString(cart, CT_CUSTOM_TEXT_VAR);
 char *fileName = NULL;
 struct slName *browserLines = NULL;
 customText = skipLeadingSpaces(customText);
-if (customText && bogusMacEmptyChars(customText))
+if (customText)
     customText = NULL;
 
 fileName = cartOptionalString(cart, CT_CUSTOM_FILE_NAME_VAR);
 char *fileContents = cartOptionalString(cart, CT_CUSTOM_FILE_VAR);
 if (isNotEmpty(fileName))
     {
     /* handle file input, optionally with compression */
     if (isNotEmpty(fileContents))
         customText = fileContents;
     else
         {
         /* file contents not available -- check for compressed */
         if (customTrackIsCompressed(fileName))
             {
             customText = prepCompressedFile(cart, fileName,