From b7487707a70e9790b175a5072544c5a40da4bcf2 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sat, 3 Nov 2001 19:34:18 +0000
Subject: [PATCH] Changed wildcard use to be more Unix-like ("*" means all
 files).

---
 src/sbbs3/file.cpp     | 4 +++-
 src/sbbs3/filedat.c    | 9 ++++++---
 src/sbbs3/listfile.cpp | 4 ++--
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/sbbs3/file.cpp b/src/sbbs3/file.cpp
index acb9858fd9..f822a9fc0e 100644
--- a/src/sbbs3/file.cpp
+++ b/src/sbbs3/file.cpp
@@ -214,7 +214,7 @@ char * sbbs_t::getfilespec(char *str)
 	bputs(text[FileSpecStarDotStar]);
 	if(!getstr(str,12,K_UPPER))
 		strcpy(str,ALLFILES);
-#ifndef __unix__
+#if 0
 	else if(!strchr(str,'.') && strlen(str)<=8)
 		strcat(str,".*");
 #endif
@@ -234,6 +234,8 @@ BOOL filematch(char *filename, char *filespec)
 		if(filespec[c]=='*') break;
 		else if(filespec[c]=='?') continue;
 		else if(toupper(filename[c])!=toupper(filespec[c])) return(FALSE);
+	if(filespec[8]==' ')	/* no extension specified */
+		return(TRUE);
 	for(c=9;c<12;c++)
 		if(filespec[c]=='*') break;
 		else if(filespec[c]=='?') continue;
diff --git a/src/sbbs3/filedat.c b/src/sbbs3/filedat.c
index e0a7520459..98bb3ee557 100644
--- a/src/sbbs3/filedat.c
+++ b/src/sbbs3/filedat.c
@@ -532,13 +532,16 @@ char* DLLCALL padfname(char *filename, char *str)
 	d=c;
 	if(filename[c]=='.') c++;
 	while(d<8)
-		str[d++]=SP;
-	str[d++]='.';
+		str[d++]=' ';
+	if(filename[c]>' ')	/* Change "FILE" to "FILE        " */
+		str[d++]='.';	/* (don't add a dot if there's no extension) */
+	else
+		str[d++]=' ';
 	while(d<12)
 		if(!filename[c]) break;
 		else str[d++]=filename[c++];
 	while(d<12)
-		str[d++]=SP;
+		str[d++]=' ';
 	str[d]=0;
 	return(str);
 }
diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp
index f32bd05a13..fc5b168c1d 100644
--- a/src/sbbs3/listfile.cpp
+++ b/src/sbbs3/listfile.cpp
@@ -151,7 +151,7 @@ int sbbs_t::listfiles(uint dirnum, char *filespec, int tofile, long mode)
 			FREE((char *)datbuf);
 			return(-1); }
 		for(j=0;j<12 && m<l;j++)
-			if(j==8)
+			if(j==8 && ixbbuf[8]>' ')
 				str[j]='.';
 			else
 				str[j]=ixbbuf[m++];		/* Turns FILENAMEEXT into FILENAME.EXT */
@@ -888,7 +888,7 @@ int sbbs_t::listfileinfo(uint dirnum, char *filespec, long mode)
 			found=-1;
 			break; }
 		for(i=0;i<12 && m<l;i++)
-			if(i==8)
+			if(i==8 && ixbbuf[8]>' ')
 				str[i]='.';
 			else
 				str[i]=ixbbuf[m++];     /* Turns FILENAMEEXT into FILENAME.EXT */
-- 
GitLab