diff --git a/code/cfile/cfilesystem.cpp b/code/cfile/cfilesystem.cpp index 3914986827..1a87f096be 100644 --- a/code/cfile/cfilesystem.cpp +++ b/code/cfile/cfilesystem.cpp @@ -1447,12 +1447,9 @@ int cf_get_file_list( SCP_vector &list, int pathtype, char *filter, find_handle = _findfirst( filespec, &find ); if (find_handle != -1) { do { - if (strcmp(strstr(filter, "."), strstr(find.name,".")) != 0) + if (strcmp(strrchr(filter, '.'), strrchr(find.name,'.')) != 0) continue; - if ( strlen(find.name) >= MAX_FILENAME_LEN ) - continue; - if (!(find.attrib & _A_SUBDIR)) { if ( !Get_file_list_filter || (*Get_file_list_filter)(find.name) ) { if ( check_duplicates && cf_file_already_in_list(list, find.name) ) { @@ -1488,9 +1485,6 @@ int cf_get_file_list( SCP_vector &list, int pathtype, char *filter, dirp = opendir (filespec); if ( dirp ) { while ((dir = readdir (dirp)) != NULL) { - if ( strlen(dir->d_name) >= MAX_FILENAME_LEN ) { - continue; - } if (fnmatch(filter, dir->d_name, 0) != 0) continue; @@ -1650,7 +1644,7 @@ int cf_get_file_list( int max, char **list, int pathtype, char *filter, int sort if (num_files >= max) break; - if (strcmp(strstr(filter, "."), strstr(find.name,".")) != 0) + if (strcmp(strrchr(filter, '.'), strrchr(find.name,'.')) != 0) continue; if ( strlen(find.name) >= MAX_FILENAME_LEN ) diff --git a/code/mission/missioncampaign.cpp b/code/mission/missioncampaign.cpp index d9d75b5dcd..e192d15cdb 100644 --- a/code/mission/missioncampaign.cpp +++ b/code/mission/missioncampaign.cpp @@ -814,9 +814,10 @@ void campaign_delete_save( char *cfn, char *pname) void mission_campaign_delete_all_savefiles( char *pilot_name ) { int dir_type, num_files, i; - char *names[MAX_CAMPAIGNS], file_spec[MAX_FILENAME_LEN + 2], *ext; + char file_spec[MAX_FILENAME_LEN + 2], *ext; char filename[1024]; int (*filter_save)(char *filename); + SCP_vector names; ext = NOX(".csg"); dir_type = CF_TYPE_PLAYERS; @@ -827,14 +828,13 @@ void mission_campaign_delete_all_savefiles( char *pilot_name ) // be. I have to save any file filters filter_save = Get_file_list_filter; Get_file_list_filter = NULL; - num_files = cf_get_file_list(MAX_CAMPAIGNS, names, dir_type, file_spec); + num_files = cf_get_file_list(names, dir_type, const_cast(file_spec)); Get_file_list_filter = filter_save; for (i=0; i