Diff for /np2/win9x/dosio.cpp between versions 1.3 and 1.5

version 1.3, 2004/01/09 04:36:03 version 1.5, 2004/01/10 20:15:43
Line 162  UINT file_getsize(FILEH handle) { Line 162  UINT file_getsize(FILEH handle) {
         return(GetFileSize(handle, NULL));          return(GetFileSize(handle, NULL));
 }  }
   
 short file_getdatetime(FILEH handle, DOSDATE *dosdate, DOSTIME *dostime) {  static BOOL cnvdatetime(FILETIME *file, DOSDATE *dosdate, DOSTIME *dostime) {
   
         FILETIME        lastwrite;          FILETIME        localtime;
         FILETIME        localwrite;          SYSTEMTIME      systime;
         SYSTEMTIME      syswrite;  
   
         if ((GetFileTime(handle, NULL, NULL, &lastwrite) == 0) ||          if ((FileTimeToLocalFileTime(file, &localtime) == 0) ||
                 (FileTimeToLocalFileTime(&lastwrite, &localwrite) == 0) ||                  (FileTimeToSystemTime(&localtime, &systime) == 0)) {
                 (FileTimeToSystemTime(&localwrite, &syswrite) == 0)) {                  return(FAILURE);
                 return(-1);  
         }          }
         if (dosdate) {          if (dosdate) {
                 dosdate->year = (WORD)syswrite.wYear;                  dosdate->year = (UINT16)systime.wYear;
                 dosdate->month = (BYTE)syswrite.wMonth;                  dosdate->month = (UINT8)systime.wMonth;
                 dosdate->day = (BYTE)syswrite.wDay;                  dosdate->day = (UINT8)systime.wDay;
         }          }
         if (dostime) {          if (dostime) {
                 dostime->hour = (BYTE)syswrite.wHour;                  dostime->hour = (UINT8)systime.wHour;
                 dostime->minute = (BYTE)syswrite.wMinute;                  dostime->minute = (UINT8)systime.wMinute;
                 dostime->second = (BYTE)syswrite.wSecond;                  dostime->second = (UINT8)systime.wSecond;
           }
           return(SUCCESS);
   }
   
   short file_getdatetime(FILEH handle, DOSDATE *dosdate, DOSTIME *dostime) {
   
           FILETIME        lastwrite;
   
           if ((GetFileTime(handle, NULL, NULL, &lastwrite) == 0) ||
                   (cnvdatetime(&lastwrite, dosdate, dostime) != SUCCESS)) {
                   return(-1);
         }          }
         return(0);          return(0);
 }  }
Line 253  short file_attr_c(const char *path) { Line 262  short file_attr_c(const char *path) {
 }  }
   
   
   static BOOL setflist(WIN32_FIND_DATA *w32fd, FLINFO *fli) {
   
   #if !defined(_WIN32_WCE)
           if ((w32fd->dwFileAttributes & FILEATTR_DIRECTORY) &&
                   ((file_cmpname(w32fd->cFileName, ".")) ||
                   (file_cmpname(w32fd->cFileName, "..")))) {
                   return(FAILURE);
           }
   #endif
           fli->caps = FLICAPS_SIZE | FLICAPS_ATTR | FLICAPS_DATE | FLICAPS_TIME;
           fli->size = w32fd->nFileSizeLow;
           fli->attr = w32fd->dwFileAttributes;
           cnvdatetime(&w32fd->ftLastWriteTime, &fli->date, &fli->time);
   #if defined(UNICODE)
           WideCharToMultiByte(CP_ACP, 0, w32fd->cFileName, -1,
                                                                   fli->path, sizeof(fli->path), NULL, NULL);
   #else
           milstr_ncpy(fli->path, w32fd->cFileName, sizeof(fli->path));
   #endif
           return(SUCCESS);
   }
   
 FLISTH file_list1st(const char *dir, FLINFO *fli) {  FLISTH file_list1st(const char *dir, FLINFO *fli) {
   
         char                    path[MAX_PATH];          char                    path[MAX_PATH];
Line 262  FLISTH file_list1st(const char *dir, FLI Line 293  FLISTH file_list1st(const char *dir, FLI
         milsjis_ncpy(path, dir, sizeof(path));          milsjis_ncpy(path, dir, sizeof(path));
         file_setseparator(path, sizeof(path));          file_setseparator(path, sizeof(path));
         milsjis_ncat(path, "*.*", sizeof(path));          milsjis_ncat(path, "*.*", sizeof(path));
           TRACEOUT(("file_list1st %s", path));
         hdl = FindFirstFile_A(path, &w32fd);          hdl = FindFirstFile_A(path, &w32fd);
         if ((hdl != INVALID_HANDLE_VALUE) && (fli)) {          if (hdl != INVALID_HANDLE_VALUE) {
 #if defined(UNICODE)                  do {
                 WideCharToMultiByte(CP_ACP, 0, w32fd.cFileName, -1,                          if (setflist(&w32fd, fli) == SUCCESS) {
                                                                 fli->path, sizeof(fli->path), NULL, NULL);                                  return(hdl);
 #else                          }
                 milstr_ncpy(fli->path, w32fd.cFileName, sizeof(fli->path));                  } while(FindNextFile(hdl, &w32fd));
 #endif                  FindClose(hdl);
                 fli->size = w32fd.nFileSizeLow;  
                 fli->attr = w32fd.dwFileAttributes;  
         }          }
         return(hdl);          return(FLISTH_INVALID);
 }  }
   
 BOOL file_listnext(FLISTH hdl, FLINFO *fli) {  BOOL file_listnext(FLISTH hdl, FLINFO *fli) {
   
         WIN32_FIND_DATA w32fd;          WIN32_FIND_DATA w32fd;
   
         if (!FindNextFile(hdl, &w32fd)) {          while(FindNextFile(hdl, &w32fd)) {
                 return(FAILURE);                  if (setflist(&w32fd, fli) == SUCCESS) {
         }                          return(SUCCESS);
         if (fli) {                  }
 #if defined(UNICODE)  
                 WideCharToMultiByte(CP_ACP, 0, w32fd.cFileName, -1,  
                                                                 fli->path, sizeof(fli->path), NULL, NULL);  
 #else  
                 milstr_ncpy(fli->path, w32fd.cFileName, sizeof(fli->path));  
 #endif  
                 fli->size = w32fd.nFileSizeLow;  
                 fli->attr = w32fd.dwFileAttributes;  
         }          }
         return(SUCCESS);          return(FAILURE);
 }  }
   
 void file_listclose(FLISTH hdl) {  void file_listclose(FLISTH hdl) {

Removed from v.1.3  
changed lines
  Added in v.1.5


RetroPC.NET-CVS <cvs@retropc.net>