Changeset 1739 for trunk/gsdl/lib


Ignore:
Timestamp:
2000-12-05T13:08:17+13:00 (23 years ago)
Author:
sjboddie
Message:

A few changes to get multi-volume cd-roms working again

Location:
trunk/gsdl/lib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/lib/cfgread.cpp

    r1432 r1739  
    4949    filein.get(c);
    5050  }
    51   if (key.empty()) return -1;
     51  if (key.empty()) return 0; // blank line maybe?
    5252  return 0;
    5353}
  • trunk/gsdl/lib/fileutil.cpp

    r1648 r1739  
    170170}
    171171
     172bool read_dir (const text_t &dirname, text_tset &filelist) {
     173 
     174  WIN32_FIND_DATA FileData; 
     175  HANDLE hSearch;
     176  char *dirpath = dirname.getcstr();
     177  strcat (dirpath, "\\*");
     178 
     179  hSearch = FindFirstFile(dirpath, &FileData);
     180  // freeing this memory can cause a runtime error on some (particularly
     181  // debug) versions of VC++
     182  delete dirpath;
     183 
     184  if (hSearch == INVALID_HANDLE_VALUE) {
     185    return false;
     186  }
     187 
     188  text_t filename = FileData.cFileName;
     189  if (filename != "." && filename != ".." && filename != "CVS")
     190    filelist.insert (filename);
     191 
     192  while (FindNextFile(hSearch, &FileData)) {
     193    filename = FileData.cFileName;
     194    if (filename == "." || filename == ".." || filename == "CVS")
     195      continue;
     196    filelist.insert (filename);
     197  }
     198 
     199  FindClose(hSearch);
     200 
     201  return true;
     202}
     203
    172204bool read_dir (const text_t &dirname, text_tarray &filelist) {
    173205 
     
    217249}
    218250
     251bool read_dir (const text_t &dirname, text_tset &filelist) {
     252 
     253  char *tmp = dirname.getcstr();
     254  DIR *dirin = opendir (tmp);
     255  delete tmp;
     256 
     257  if (dirin == NULL) return false;
     258 
     259  dirent *dirp;
     260 
     261  text_t filename;
     262  while ((dirp = readdir (dirin)) != NULL) {
     263    filename = dirp->d_name;
     264    if (filename == "." || filename == ".." || filename == "CVS")
     265      continue;
     266    filelist.insert (filename);
     267  }
     268  closedir (dirin);
     269  return true;
     270}
     271
    219272bool read_dir (const text_t &dirname, text_tarray &filelist) {
    220  
    221   filelist.erase (filelist.begin(), filelist.end());
    222273 
    223274  char *tmp = dirname.getcstr();
  • trunk/gsdl/lib/fileutil.h

    r1485 r1739  
    4949bool directory_exists (const text_t &dirname);
    5050
     51// note that read_dir appends to filelist, it doesn't clear
     52// it first
    5153bool read_dir (const text_t &dirname, text_tarray &filelist);
     54bool read_dir (const text_t &dirname, text_tset &filelist);
    5255
    5356bool file_copy (const text_t &fromfile, const text_t &tofile);
Note: See TracChangeset for help on using the changeset viewer.