Diff for /np2/win9x/dosio.cpp between versions 1.12 and 1.13

version 1.12, 2005/03/20 13:12:49 version 1.13, 2005/04/01 15:35:49
Line 12  static OEMCHAR *curfilep = curpath; Line 12  static OEMCHAR *curfilep = curpath;
 void dosio_init(void) { }  void dosio_init(void) { }
 void dosio_term(void) { }  void dosio_term(void) { }
   
   
                                                                                         // ファイル操作                                                                                          // ファイル操作
 FILEH DOSIOCALL file_open(const OEMCHAR *path) {  FILEH DOSIOCALL file_open(const OEMCHAR *path) {
   
   #if defined(OEMCHAR_SAME_TCHAR)
 #if defined(OSLANG_UTF8)          const TCHAR *tcharpath = path;
         TCHAR tchr[MAX_PATH];  
         oemtotchar(tchr, NELEMENTS(tchr), path, -1);  
 #else  #else
         const TCHAR *tchr = path;          TCHAR tcharpath[MAX_PATH];
           oemtotchar(tcharpath, NELEMENTS(tcharpath), path, (UINT)-1);
 #endif  #endif
         FILEH ret;          FILEH ret;
         ret = CreateFile(tchr, GENERIC_READ | GENERIC_WRITE,          ret = CreateFile(tcharpath, GENERIC_READ | GENERIC_WRITE,
                                                 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);                                                  0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
         if (ret == INVALID_HANDLE_VALUE) {          if (ret == INVALID_HANDLE_VALUE) {
                 ret = CreateFile(tchr, GENERIC_READ,                  ret = CreateFile(tcharpath, GENERIC_READ,
                                                 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);                                                  0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
                 if (ret == INVALID_HANDLE_VALUE) {                  if (ret == INVALID_HANDLE_VALUE) {
                         return(FILEH_INVALID);                          return(FILEH_INVALID);
Line 37  FILEH DOSIOCALL file_open(const OEMCHAR  Line 37  FILEH DOSIOCALL file_open(const OEMCHAR 
   
 FILEH DOSIOCALL file_open_rb(const OEMCHAR *path) {  FILEH DOSIOCALL file_open_rb(const OEMCHAR *path) {
   
 #if defined(OSLANG_UTF8)  #if defined(OEMCHAR_SAME_TCHAR)
         TCHAR tchr[MAX_PATH];          const TCHAR *tcharpath = path;
         oemtotchar(tchr, NELEMENTS(tchr), path, -1);  
 #else  #else
         const TCHAR *tchr = path;          TCHAR tcharpath[MAX_PATH];
           oemtotchar(tcharpath, NELEMENTS(tcharpath), path, (UINT)-1);
 #endif  #endif
         FILEH ret;          FILEH ret;
         ret = CreateFile(tchr, GENERIC_READ, FILE_SHARE_READ, 0,          ret = CreateFile(tcharpath, GENERIC_READ, FILE_SHARE_READ, 0,
                                                                 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);                                                                  OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
         if (ret == INVALID_HANDLE_VALUE) {          if (ret != INVALID_HANDLE_VALUE) {
                   return(ret);
           }
           else {
                 return(FILEH_INVALID);                  return(FILEH_INVALID);
         }          }
         return(ret);  
 }  }
   
 FILEH DOSIOCALL file_create(const OEMCHAR *path) {  FILEH DOSIOCALL file_create(const OEMCHAR *path) {
   
 #if defined(OSLANG_UTF8)  #if defined(OEMCHAR_SAME_TCHAR)
         TCHAR tchr[MAX_PATH];          const TCHAR *tcharpath = path;
         oemtotchar(tchr, NELEMENTS(tchr), path, -1);  
 #else  #else
         const TCHAR *tchr = path;          TCHAR tcharpath[MAX_PATH];
           oemtotchar(tcharpath, NELEMENTS(tcharpath), path, (UINT)-1);
 #endif  #endif
         FILEH ret;          FILEH ret;
         ret = CreateFile(tchr, GENERIC_READ | GENERIC_WRITE,          ret = CreateFile(tcharpath, GENERIC_READ | GENERIC_WRITE,
                                                  0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);                                                   0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
         if (ret == INVALID_HANDLE_VALUE) {          if (ret != INVALID_HANDLE_VALUE) {
                   return(ret);
           }
           else {
                 return(FILEH_INVALID);                  return(FILEH_INVALID);
         }          }
         return(ret);  
 }  }
   
 long DOSIOCALL file_seek(FILEH handle, long pointer, int method) {  long DOSIOCALL file_seek(FILEH handle, long pointer, int method) {
Line 110  UINT DOSIOCALL file_getsize(FILEH handle Line 114  UINT DOSIOCALL file_getsize(FILEH handle
         return(GetFileSize(handle, NULL));          return(GetFileSize(handle, NULL));
 }  }
   
 static BRESULT DOSIOCALL cnvdatetime(FILETIME *file, DOSDATE *dosdate, DOSTIME *dostime) {  static BRESULT DOSIOCALL cnvdatetime(const FILETIME *file,
                                                                                   DOSDATE *dosdate, DOSTIME *dostime) {
   
         FILETIME        localtime;          FILETIME        localtime;
         SYSTEMTIME      systime;          SYSTEMTIME      systime;
Line 132  static BRESULT DOSIOCALL cnvdatetime(FIL Line 137  static BRESULT DOSIOCALL cnvdatetime(FIL
         return(SUCCESS);          return(SUCCESS);
 }  }
   
 short DOSIOCALL file_getdatetime(FILEH handle, DOSDATE *dosdate, DOSTIME *dostime) {  short DOSIOCALL file_getdatetime(FILEH handle,
                                                                                   DOSDATE *dosdate, DOSTIME *dostime) {
   
         FILETIME        lastwrite;          FILETIME        lastwrite;
   
Line 145  short DOSIOCALL file_getdatetime(FILEH h Line 151  short DOSIOCALL file_getdatetime(FILEH h
   
 short DOSIOCALL file_delete(const OEMCHAR *path) {  short DOSIOCALL file_delete(const OEMCHAR *path) {
   
 #if defined(OSLANG_UTF8)  #if defined(OEMCHAR_SAME_TCHAR)
         TCHAR tchr[MAX_PATH];          const TCHAR *tcharpath = path;
         oemtotchar(tchr, NELEMENTS(tchr), path, -1);  
 #else  #else
         const TCHAR *tchr = path;          TCHAR tcharpath[MAX_PATH];
           oemtotchar(tcharpath, NELEMENTS(tcharpath), path, (UINT)-1);
 #endif  #endif
         return(DeleteFile(tchr)?0:-1);          return(DeleteFile(tcharpath)?0:-1);
 }  }
   
 short DOSIOCALL file_attr(const OEMCHAR *path) {  short DOSIOCALL file_attr(const OEMCHAR *path) {
   
 #if defined(OSLANG_UTF8)  #if defined(OEMCHAR_SAME_TCHAR)
         TCHAR tchr[MAX_PATH];  const TCHAR *tcharpath = path;
         oemtotchar(tchr, NELEMENTS(tchr), path, -1);  
 #else  #else
         const TCHAR *tchr = path;          TCHAR tcharpath[MAX_PATH];
           oemtotchar(tcharpath, NELEMENTS(tcharpath), path, (UINT)-1);
 #endif  #endif
         return((short)GetFileAttributes(tchr));          return((short)GetFileAttributes(tcharpath));
 }  }
   
 short DOSIOCALL file_dircreate(const OEMCHAR *path) {  short DOSIOCALL file_dircreate(const OEMCHAR *path) {
   
 #if defined(OSLANG_UTF8)  #if defined(OEMCHAR_SAME_TCHAR)
         TCHAR tchr[MAX_PATH];          const TCHAR *tcharpath = path;
         oemtotchar(tchr, NELEMENTS(tchr), path, -1);  
 #else  #else
         const TCHAR *tchr = path;          TCHAR tcharpath[MAX_PATH];
           oemtotchar(tcharpath, NELEMENTS(tcharpath), path, (UINT)-1);
 #endif  #endif
         return(CreateDirectory(tchr, NULL)?0:-1);          return(CreateDirectory(tcharpath, NULL)?0:-1);
 }  }
   
   
Line 222  short DOSIOCALL file_attr_c(const OEMCHA Line 228  short DOSIOCALL file_attr_c(const OEMCHA
 }  }
   
   
   // ----
   
   #if !defined(_WIN32_WCE)
   static const TCHAR str_selfdir[] = _T(".");
   static const TCHAR str_parentdir[] = _T("..");
   #endif
   static const OEMCHAR str_wildcard[] = OEMTEXT("*.*");
   
 static BRESULT DOSIOCALL setflist(WIN32_FIND_DATA *w32fd, FLINFO *fli) {  static BRESULT DOSIOCALL setflist(WIN32_FIND_DATA *w32fd, FLINFO *fli) {
   
 #if !defined(_WIN32_WCE)  #if !defined(_WIN32_WCE)
         if ((w32fd->dwFileAttributes & FILEATTR_DIRECTORY) &&          if ((w32fd->dwFileAttributes & FILEATTR_DIRECTORY) &&
                 ((!lstrcmp(w32fd->cFileName, _T("."))) ||                  ((!lstrcmp(w32fd->cFileName, str_selfdir)) ||
                 (!lstrcmp(w32fd->cFileName, _T(".."))))) {                  (!lstrcmp(w32fd->cFileName, str_parentdir)))) {
                 return(FAILURE);                  return(FAILURE);
         }          }
 #endif  #endif
Line 235  static BRESULT DOSIOCALL setflist(WIN32_ Line 249  static BRESULT DOSIOCALL setflist(WIN32_
         fli->size = w32fd->nFileSizeLow;          fli->size = w32fd->nFileSizeLow;
         fli->attr = w32fd->dwFileAttributes;          fli->attr = w32fd->dwFileAttributes;
         cnvdatetime(&w32fd->ftLastWriteTime, &fli->date, &fli->time);          cnvdatetime(&w32fd->ftLastWriteTime, &fli->date, &fli->time);
 #if defined(OSLANG_UTF8)  #if defined(OEMCHAR_SAME_TCHAR)
         tchartooem(fli->path, NELEMENTS(fli->path), w32fd->cFileName, -1);          file_cpyname(fli->path, w32fd->cFileName, NELEMENTS(fli->path));
 #else  #else
         milstr_ncpy(fli->path, w32fd->cFileName, NELEMENTS(fli->path));          tchartooem(fli->path, NELEMENTS(fli->path), w32fd->cFileName, (UINT)-1);
 #endif  #endif
         return(SUCCESS);          return(SUCCESS);
 }  }
   
 FLISTH DOSIOCALL file_list1st(const OEMCHAR *dir, FLINFO *fli) {  FLISTH DOSIOCALL file_list1st(const OEMCHAR *dir, FLINFO *fli) {
   
   
         OEMCHAR path[MAX_PATH];          OEMCHAR path[MAX_PATH];
         milstr_ncpy(path, dir, NELEMENTS(path));          file_cpyname(path, dir, NELEMENTS(path));
         file_setseparator(path, NELEMENTS(path));          file_setseparator(path, NELEMENTS(path));
         milstr_ncat(path, OEMTEXT("*.*"), NELEMENTS(path));          file_catname(path, str_wildcard, NELEMENTS(path));
         TRACEOUT(("file_list1st %s", path));          TRACEOUT(("file_list1st %s", path));
 #if defined(OSLANG_UTF8)  #if defined(OEMCHAR_SAME_TCHAR)
         TCHAR tchr[MAX_PATH];  const TCHAR *tcharpath = path;
         oemtotchar(tchr, NELEMENTS(tchr), path, -1);  
 #else  #else
         const TCHAR *tchr = path;          TCHAR tcharpath[MAX_PATH];
           oemtotchar(tcharpath, NELEMENTS(tcharpath), path, (UINT)-1);
 #endif  #endif
         HANDLE hdl;          HANDLE hdl;
         WIN32_FIND_DATA w32fd;          WIN32_FIND_DATA w32fd;
         hdl = FindFirstFile(tchr, &w32fd);          hdl = FindFirstFile(tcharpath, &w32fd);
         if (hdl != INVALID_HANDLE_VALUE) {          if (hdl != INVALID_HANDLE_VALUE) {
                 do {                  do {
                         if (setflist(&w32fd, fli) == SUCCESS) {                          if (setflist(&w32fd, fli) == SUCCESS) {
Line 296  const OEMCHAR *ret; Line 309  const OEMCHAR *ret;
   
         ret = path;          ret = path;
         while((csize = milstr_charsize(path)) != 0) {          while((csize = milstr_charsize(path)) != 0) {
                 if (csize == 1) {                  if ((csize == 1) &&
                         if ((*path == '\\') || (*path == '/') || (*path == ':')) {                          ((*path == '\\') || (*path == '/') || (*path == ':'))) {
                                 ret = path + 1;                          ret = path + 1;
                         }  
                 }                  }
                 path += csize;                  path += csize;
         }          }

Removed from v.1.12  
changed lines
  Added in v.1.13


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