Diff for /np2/generic/hostdrvs.c between versions 1.9 and 1.11

version 1.9, 2004/06/20 02:57:47 version 1.11, 2004/07/15 13:48:39
Line 84  static BOOL realname2fcb(char *fcbname,  Line 84  static BOOL realname2fcb(char *fcbname, 
         char    *ext;          char    *ext;
   
 #if defined(OSLANG_EUC)  #if defined(OSLANG_EUC)
         codecnv_euc2sjis(sjis, sizeof(sjis), fli->path, sizeof(fli->path));          codecnv_euc2sjis(sjis, sizeof(sjis), fli->path, NELEMENTS(fli->path));
         realname = sjis;          realname = sjis;
 #elif defined(OSLANG_UTF8)  #elif defined(OSLANG_UTF8)
         oemtext_oem2sjis(sjis, sizeof(sjis), fli->path, sizeof(fli->path));          oemtext_oem2sjis(sjis, sizeof(sjis), fli->path, NELEMENTS(fli->path));
         realname = sjis;          realname = sjis;
 #else  #else
         realname = fli->path;          realname = fli->path;
Line 117  static BOOL hddseadir(void *vpItem, void Line 117  static BOOL hddseadir(void *vpItem, void
         return(FALSE);          return(FALSE);
 }  }
   
 LISTARRAY hostdrvs_getpathlist(const char *realpath) {  LISTARRAY hostdrvs_getpathlist(const OEMCHAR *realpath) {
   
         FLISTH          flh;          FLISTH          flh;
         FLINFO          fli;          FLINFO          fli;
Line 148  LISTARRAY hostdrvs_getpathlist(const cha Line 148  LISTARRAY hostdrvs_getpathlist(const cha
                         hdd->di.attr = fli.attr;                          hdd->di.attr = fli.attr;
                         hdd->di.date = fli.date;                          hdd->di.date = fli.date;
                         hdd->di.time = fli.time;                          hdd->di.time = fli.time;
                         milstr_ncpy(hdd->realname, fli.path, sizeof(hdd->realname));                          file_cpyname(hdd->realname, fli.path, NELEMENTS(hdd->realname));
 //                      TRACEOUT(("%s -> %11s", fli.path, fcbname));  //                      TRACEOUT(("%s -> %11s", fli.path, fcbname));
                 }                  }
         } while(file_listnext(flh, &fli) == SUCCESS);          } while(file_listnext(flh, &fli) == SUCCESS);
Line 214  static char *dospath2fcb(char *fcbname,  Line 214  static char *dospath2fcb(char *fcbname, 
   
 BOOL hostdrvs_getrealpath(HDRVPATH *hdp, char *dospath) {  BOOL hostdrvs_getrealpath(HDRVPATH *hdp, char *dospath) {
   
         char            path[MAX_PATH];          OEMCHAR         path[MAX_PATH];
         LISTARRAY       lst;          LISTARRAY       lst;
 const HDRVDIR   *di;  const HDRVDIR   *di;
         HDRVLST         hdl;          HDRVLST         hdl;
         char            fcbname[11];          char            fcbname[11];
   
         file_cpyname(path, np2cfg.hdrvroot, sizeof(path));          file_cpyname(path, np2cfg.hdrvroot, NELEMENTS(path));
         lst = NULL;          lst = NULL;
         di = &hddroot;          di = &hddroot;
         while(dospath[0] != '\0') {          while(dospath[0] != '\0') {
                 if ((dospath[0] != '\\') || (!(di->attr & 0x10))) {                  if ((dospath[0] != '\\') || (!(di->attr & 0x10))) {
                         goto hdsgrp_err;                          goto hdsgrp_err;
                 }                  }
                 file_setseparator(path, sizeof(path));                  file_setseparator(path, NELEMENTS(path));
                 dospath++;                  dospath++;
                 if (dospath[0] == '\0') {                  if (dospath[0] == '\0') {
                         di = &hddroot;                          di = &hddroot;
Line 240  const HDRVDIR  *di; Line 240  const HDRVDIR  *di;
                 if (hdl == NULL) {                  if (hdl == NULL) {
                         goto hdsgrp_err;                          goto hdsgrp_err;
                 }                  }
                 file_catname(path, hdl->realname, sizeof(path));                  file_catname(path, hdl->realname, NELEMENTS(path));
                 di = &hdl->di;                  di = &hdl->di;
         }          }
         if (hdp) {          if (hdp) {
                 CopyMemory(&hdp->di, di, sizeof(HDRVDIR));                  CopyMemory(&hdp->di, di, sizeof(HDRVDIR));
                 file_cpyname(hdp->path, path, sizeof(hdp->path));                  file_cpyname(hdp->path, path, NELEMENTS(hdp->path));
         }          }
         listarray_destroy(lst);          listarray_destroy(lst);
         return(SUCCESS);          return(SUCCESS);
Line 255  hdsgrp_err: Line 255  hdsgrp_err:
         return(FAILURE);          return(FAILURE);
 }  }
   
 BOOL hostdrvs_getrealdir(char *path, int size, char *fcb, char *dospath) {  BOOL hostdrvs_getrealdir(OEMCHAR *path, int size, char *fcb, char *dospath) {
   
         LISTARRAY       lst;          LISTARRAY       lst;
         HDRVLST         hdl;          HDRVLST         hdl;
Line 296  hdsgrd_err: Line 296  hdsgrd_err:
   
 BOOL hostdrvs_newrealpath(HDRVPATH *hdp, char *dospath) {  BOOL hostdrvs_newrealpath(HDRVPATH *hdp, char *dospath) {
   
         char            path[MAX_PATH];          OEMCHAR         path[MAX_PATH];
         char            fcb[11];          char            fcb[11];
         LISTARRAY       lst;          LISTARRAY       lst;
         HDRVLST         hdl;          HDRVLST         hdl;
         char            dosname[16];          char            dosname[16];
         UINT            i;          UINT            i;
         char            *p;          char            *p;
   #if defined(OSLANG_EUC) || defined(OSLANG_UTF8)
           OEMCHAR         oemname[64];
   #endif
   
         if ((hostdrvs_getrealdir(path, sizeof(path), fcb, dospath) != SUCCESS) ||          if ((hostdrvs_getrealdir(path, NELEMENTS(path), fcb, dospath)
                                                                                                                           != SUCCESS) ||
                 (fcb[0] == ' ')) {                  (fcb[0] == ' ')) {
                 return(FAILURE);                  return(FAILURE);
         }          }
         lst = hostdrvs_getpathlist(path);          lst = hostdrvs_getpathlist(path);
         hdl = (HDRVLST)listarray_enum(lst, hddsea, fcb);          hdl = (HDRVLST)listarray_enum(lst, hddsea, fcb);
         if (hdl != NULL) {          if (hdl != NULL) {
                 file_catname(path, hdl->realname, sizeof(path));                  file_catname(path, hdl->realname, NELEMENTS(path));
                 if (hdp) {                  if (hdp) {
                         CopyMemory(&hdp->di, &hdl->di, sizeof(HDRVDIR));                          CopyMemory(&hdp->di, &hdl->di, sizeof(HDRVDIR));
                         file_cpyname(hdp->path, path, sizeof(hdp->path));                          file_cpyname(hdp->path, path, NELEMENTS(hdp->path));
                 }                  }
         }          }
         else {          else {
Line 329  BOOL hostdrvs_newrealpath(HDRVPATH *hdp, Line 333  BOOL hostdrvs_newrealpath(HDRVPATH *hdp,
                         }                          }
                 }                  }
                 *p = '\0';                  *p = '\0';
                 file_catname(path, dosname, sizeof(path));                  // ここで SJIS->OEMコードに未変換!
   #if defined(OSLANG_EUC)
                   codecnv_sjis2euc(oemname, NELEMENTS(oemname), dosname, (UINT)-1);
                   file_catname(path, oemname, NELEMENTS(path));
   #elif defined(OSLANG_UTF8)
                   oemtext_sjis2oem(oemname, NELEMENTS(oemname), dosname, (UINT)-1);
                   file_catname(path, oemname, NELEMENTS(path));
   #else
                   file_catname(path, dosname, NELEMENTS(path));
   #endif
                 if (hdp) {                  if (hdp) {
                         ZeroMemory(&hdp->di, sizeof(hdp->di));                          ZeroMemory(&hdp->di, sizeof(hdp->di));
                         CopyMemory(hdp->di.fcbname, fcb, 11);                          CopyMemory(hdp->di.fcbname, fcb, 11);
                         file_cpyname(hdp->path, path, sizeof(hdp->path));                          file_cpyname(hdp->path, path, NELEMENTS(hdp->path));
                 }                  }
         }          }
         listarray_destroy(lst);          listarray_destroy(lst);

Removed from v.1.9  
changed lines
  Added in v.1.11


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