2eb4c6d91873ad7c8f68f8e2e419e3382d46a16f
tdreszer
  Thu Oct 20 17:37:48 2011 -0700
Added file list caching to hgFileUi and extended the filterBox logic to include non-multiSelect options.  Redmine 5527 for the fileBoxes.
diff --git src/hg/lib/trashDir.c src/hg/lib/trashDir.c
index dc76e18..58b0096 100644
--- src/hg/lib/trashDir.c
+++ src/hg/lib/trashDir.c
@@ -40,32 +40,33 @@
 
 boolean trashDirReusableFile(struct tempName *tn, char *dirName, char *base, char *suffix)
 /*      obtain a resusable trash file name as trash/dirName/base.suffix
  *      returns TRUE if already exists. */
 {
 trashDirFile(tn,dirName,base,suffix);
 // Don't really want the randomized name.
 char *cgiName  = rStringIn("/",tn->forCgi );
 char *htmlName = rStringIn("/",tn->forHtml);
 if (cgiName == NULL)
     cgiName = rStringIn("\\",tn->forCgi);
 assert(cgiName != NULL && htmlName != NULL);
 
 cgiName += 1;
 htmlName += 1;
-safef(cgiName, strlen(cgiName), "%s%s", base, suffix);  // There is room, since tempName is base_*.suffix
-safef(htmlName,strlen(htmlName),"%s%s", base, suffix);
+boolean addDot = (*suffix != '.');
+safef(cgiName, strlen(cgiName), "%s%s%s", base, (addDot?".":""),suffix);  // There is room, since tempName is base_*.suffix
+safef(htmlName,strlen(htmlName),"%s%s%s", base, (addDot?".":""),suffix);
 
 // exists?
 return fileExists(tn->forCgi);
 }
 
 void copyFileToTrash(char **pFileName, char *dirName, char *base, char *suffix)
 /* If *pFileName is not NULL and exists, then create a new file in the
  * given dirName of trash/ with the given base and suffix, copy *pFileName's
  * contents to it, and set *pFileName to the new filename. */
 {
 if (pFileName != NULL && *pFileName != NULL)
     {
     if (fileExists(*pFileName))
 	{
 	FILE *fIn = mustOpen(*pFileName, "r");