Diff for /np2/embed/menu/filesel.c between versions 1.1 and 1.11

version 1.1, 2003/11/28 08:01:32 version 1.11, 2004/06/21 03:18:04
Line 20  enum { Line 20  enum {
         DID_FILTER          DID_FILTER
 };  };
   
 static const BYTE str_dirname[] = {             // ファイルの場所  #if !defined(RESOURCE_US) && (!defined(CHARSET_OEM) || defined(OSLANG_SJIS))
                 0xcc,0xa7,0xb2,0xd9,0x82,0xcc,0x8f,0xea,0x8f,0x8a,0};  static const char str_dirname[] =                               // ファイルの場所
 static const BYTE str_filename[] = {    // ファイル名                          "\203\164\203\100\203\103\203\213\202\314\217\352\217\212";
                 0xcc,0xa7,0xb2,0xd9,0x96,0xbc,0};  static const char str_filename[] =                              // ファイル名
 static const BYTE str_filetype[] = {    // ファイルの種類                          "\203\164\203\100\203\103\203\213\226\274";
                 0xcc,0xa7,0xb2,0xd9,0x82,0xcc,0x8e,0xed,0x97,0xde,0};  static const char str_filetype[] =                              // ファイルの種類
 static const BYTE str_open[] = {                // 開く                          "\203\164\203\100\203\103\203\213\202\314\216\355\227\336";
                 0x8a,0x4a,0x82,0xad,0};  static const char str_open[] =                                  // 開く
                           "\212\112\202\255";
   #elif defined(OSLANG_EUC)
   static const char str_dirname[] =                               // ファイルの場所
                           "\245\325\245\241\245\244\245\353\244\316\276\354\275\352";
   static const char str_filename[] =                              // ファイル名
                           "\245\325\245\241\245\244\245\353\314\276";
   static const char str_filetype[] =                              // ファイルの種類
                           "\245\325\245\241\245\244\245\353\244\316\274\357\316\340";
   static const char str_open[] =                                  // 開く
                           "\263\253\244\257";
   #elif defined(OSLANG_UTF8) && !defined(RESOURCE_US)
   static const char str_dirname[] =                               // ファイルの場所
                           "\343\203\225\343\202\241\343\202\244\343\203\253\343\201\256" \
                           "\345\240\264\346\211\200";
   static const char str_filename[] =                              // ファイル名
                           "\343\203\225\343\202\241\343\202\244\343\203\253\345\220\215";
   static const char str_filetype[] =                              // ファイルの種類
                           "\343\203\225\343\202\241\343\202\244\343\203\253\343\201\256" \
                           "\347\250\256\351\241\236";
   static const char str_open[] =                                  // 開く
                           "\351\226\213\343\201\217";
   #else
   static const char str_dirname[] = "Look in";
   static const char str_filename[] = "File name";
   static const char str_filetype[] = "Files of type";
   static const char str_open[] = "Open";
   #endif
   
 #if defined(SIZE_QVGA)  #if defined(SIZE_QVGA)
 enum {  enum {
Line 129  static FLIST getflist(int pos) { Line 155  static FLIST getflist(int pos) {
         return(ret);          return(ret);
 }  }
   
 static BOOL fappend(LISTARRAY flist, FILEFINDT *fft) {  static BOOL fappend(LISTARRAY flist, FLINFO *fli) {
   
         FLIST   fl;          FLIST   fl;
         FLIST   *st;          FLIST   *st;
Line 139  static BOOL fappend(LISTARRAY flist, FIL Line 165  static BOOL fappend(LISTARRAY flist, FIL
         if (fl == NULL) {          if (fl == NULL) {
                 return(FAILURE);                  return(FAILURE);
         }          }
         fl->isdir = (fft->attr & 0x10)?1:0;          fl->isdir = (fli->attr & 0x10)?1:0;
         file_cpyname(fl->name, fft->path, sizeof(fl->name));          file_cpyname(fl->name, fli->path, sizeof(fl->name));
         st = &filesel.fbase;          st = &filesel.fbase;
         while(1) {          while(1) {
                 cur = *st;                  cur = *st;
Line 181  const char *p; Line 207  const char *p;
 static void dlgsetlist(void) {  static void dlgsetlist(void) {
   
         LISTARRAY       flist;          LISTARRAY       flist;
         FILEFINDH       ffh;          FLISTH          flh;
         FILEFINDT       fft;          FLINFO          fli;
         BOOL            append;          BOOL            append;
         FLIST           fl;          FLIST           fl;
         ITEMEXPRM       prm;          ITEMEXPRM       prm;
 #if defined(OSLANG_EUC)  #if defined(OSLANG_EUC) || defined(OSLANG_UTF8)
         char            sjis[MAX_PATH];          char            sjis[MAX_PATH];
 #endif  #endif
   
Line 196  static void dlgsetlist(void) { Line 222  static void dlgsetlist(void) {
         codecnv_euc2sjis(sjis, sizeof(sjis),          codecnv_euc2sjis(sjis, sizeof(sjis),
                                                                         file_getname(filesel.path), (UINT)-1);                                                                          file_getname(filesel.path), (UINT)-1);
         menudlg_settext(DID_FOLDER, sjis);          menudlg_settext(DID_FOLDER, sjis);
   #elif defined(OSLANG_UTF8)
           oemtext_oem2sjis(sjis, sizeof(sjis),
                                                                           file_getname(filesel.path), (UINT)-1);
           menudlg_settext(DID_FOLDER, sjis);
 #else  #else
         menudlg_settext(DID_FOLDER, file_getname(filesel.path));          menudlg_settext(DID_FOLDER, file_getname(filesel.path));
 #endif  #endif
Line 203  static void dlgsetlist(void) { Line 233  static void dlgsetlist(void) {
         flist = listarray_new(sizeof(_FLIST), 64);          flist = listarray_new(sizeof(_FLIST), 64);
         filesel.flist = flist;          filesel.flist = flist;
         filesel.fbase = NULL;          filesel.fbase = NULL;
         ffh = file_find1st(filesel.path, &fft);          flh = file_list1st(filesel.path, &fli);
         if (ffh != FILEFINDH_INVALID) {          if (flh != FLISTH_INVALID) {
                 do {                  do {
                         append = FALSE;                          append = FALSE;
                         if (fft.attr & 0x10) {                          if (fli.attr & 0x10) {
 #if defined(WIN32) && !defined(_WIN32_WCE)  
                                 if ((file_cmpname(fft.path, ".")) &&  
                                         (file_cmpname(fft.path, ".."))) {  
                                         append = TRUE;  
                                 }  
 #else  
                                 append = TRUE;                                  append = TRUE;
 #endif  
                         }                          }
                         else if (!(fft.attr & 0x08)) {                          else if (!(fli.attr & 0x08)) {
                                 append = checkext(fft.path, filesel.ext);                                  append = checkext(fli.path, filesel.ext);
                         }                          }
                         if (append) {                          if (append) {
                                 if (fappend(flist, &fft) != SUCCESS) {                                  if (fappend(flist, &fli) != SUCCESS) {
                                         break;                                          break;
                                 }                                  }
                         }                          }
                 } while(file_findnext(ffh, &fft) == SUCCESS);                  } while(file_listnext(flh, &fli) == SUCCESS);
                 file_findclose(ffh);                  file_listclose(flh);
         }          }
         prm.pos = 0;          prm.pos = 0;
         fl = filesel.fbase;          fl = filesel.fbase;
Line 236  static void dlgsetlist(void) { Line 259  static void dlgsetlist(void) {
 #if defined(OSLANG_EUC)  #if defined(OSLANG_EUC)
                 codecnv_euc2sjis(sjis, sizeof(sjis), fl->name, (UINT)-1);                  codecnv_euc2sjis(sjis, sizeof(sjis), fl->name, (UINT)-1);
                 prm.str = sjis;                  prm.str = sjis;
   #elif defined(OSLANG_UTF8)
                   oemtext_oem2sjis(sjis, sizeof(sjis), fl->name, (UINT)-1);
                   prm.str = sjis;
 #else  #else
                 prm.str = fl->name;                  prm.str = fl->name;
 #endif  #endif
Line 247  static void dlgsetlist(void) { Line 273  static void dlgsetlist(void) {
   
 static void dlginit(void) {  static void dlginit(void) {
   
 #if defined(OSLANG_EUC)  #if defined(OSLANG_EUC) || defined(OSLANG_UTF8)
         char    sjis[MAX_PATH];          char    sjis[MAX_PATH];
 #endif  #endif
   
Line 257  static void dlginit(void) { Line 283  static void dlginit(void) {
         codecnv_euc2sjis(sjis, sizeof(sjis),          codecnv_euc2sjis(sjis, sizeof(sjis),
                                                                         file_getname(filesel.path), (UINT)-1);                                                                          file_getname(filesel.path), (UINT)-1);
         menudlg_settext(DID_FILE, sjis);          menudlg_settext(DID_FILE, sjis);
   #elif defined(OSLANG_UTF8)
           oemtext_oem2sjis(sjis, sizeof(sjis),
                                                                           file_getname(filesel.path), (UINT)-1);
           menudlg_settext(DID_FILE, sjis);
 #else  #else
         menudlg_settext(DID_FILE, file_getname(filesel.path));          menudlg_settext(DID_FILE, file_getname(filesel.path));
 #endif  #endif
Line 290  static BOOL dlgupdate(void) { Line 320  static BOOL dlgupdate(void) {
 static void dlgflist(void) {  static void dlgflist(void) {
   
         FLIST   fl;          FLIST   fl;
 #if defined(OSLANG_EUC)  #if defined(OSLANG_EUC) || defined(OSLANG_UTF8)
         char    sjis[MAX_PATH];          char    sjis[MAX_PATH];
 #endif  #endif
   
Line 299  static void dlgflist(void) { Line 329  static void dlgflist(void) {
 #if defined(OSLANG_EUC)  #if defined(OSLANG_EUC)
                 codecnv_euc2sjis(sjis, sizeof(sjis), fl->name, (UINT)-1);                  codecnv_euc2sjis(sjis, sizeof(sjis), fl->name, (UINT)-1);
                 menudlg_settext(DID_FILE, sjis);                  menudlg_settext(DID_FILE, sjis);
   #elif defined(OSLANG_UTF8)
                   oemtext_oem2sjis(sjis, sizeof(sjis), fl->name, (UINT)-1);
                   menudlg_settext(DID_FILE, sjis);
 #else  #else
                 menudlg_settext(DID_FILE, fl->name);                  menudlg_settext(DID_FILE, fl->name);
 #endif  #endif
Line 386  const char *title; Line 419  const char *title;
   
 // ----  // ----
   
 static const char diskfilter[] = "All supported Files";  static const char diskfilter[] = "All supported files";
 static const char fddtitle[] = "Select floppy image";  static const char fddtitle[] = "Select floppy image";
 static const char fddext[] = "d88\088d\0d98\098d\0xdf\0hdm\0dup\02hd\0tfd\0";  static const char fddext[] = "d88\088d\0d98\098d\0fdi\0" \
                                                                   "xdf\0hdm\0dup\02hd\0tfd\0";
 static const char hddtitle[] = "Select HDD image";  static const char hddtitle[] = "Select HDD image";
 static const char hddext[] = "thd\0hdi\0";  static const char sasiext[] = "thd\0nhd\0hdi\0";
   
 static const FSELPRM fddprm = {fddtitle, diskfilter, fddext};  static const FSELPRM fddprm = {fddtitle, diskfilter, fddext};
 static const FSELPRM hddprm = {hddtitle, diskfilter, hddext};  static const FSELPRM sasiprm = {hddtitle, diskfilter, sasiext};
   
   #if defined(SUPPORT_SCSI)
   static const char scsiext[] = "hdd\0";
   static const FSELPRM scsiprm = {hddtitle, diskfilter, scsiext};
   #endif
   
   
 void filesel_fdd(BYTE drv) {  void filesel_fdd(REG8 drv) {
   
         char    path[MAX_PATH];          char    path[MAX_PATH];
   
Line 406  void filesel_fdd(BYTE drv) { Line 446  void filesel_fdd(BYTE drv) {
         }          }
 }  }
   
 void filesel_sasi(BYTE drv) {  void filesel_hdd(REG8 drv) {
   
         char    path[MAX_PATH];          UINT            num;
           char            *p;
   const FSELPRM   *prm;
           char            path[MAX_PATH];
   
         if (drv < 2) {          num = drv & 0x0f;
                 if (selectfile(&hddprm, path, sizeof(path), np2cfg.hddfile[drv])) {          p = NULL;
                         diskdrv_sethdd(drv, path);          prm = NULL;
           if (!(drv & 0x20)) {            // SASI/IDE
                   if (num < 2) {
                           p = np2cfg.sasihdd[num];
                           prm = &sasiprm;
                   }
           }
   #if defined(SUPPORT_SCSI)
           else {                                          // SCSI
                   if (num < 4) {
                           p = np2cfg.scsihdd[num];
                           prm = &scsiprm;
                 }                  }
         }          }
   #endif
           if ((prm) && (selectfile(prm, path, sizeof(path), p))) {
                   diskdrv_sethdd(drv, path);
           }
 }  }
   

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


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