Diff for /xmil/win9x/ini.cpp between versions 1.1 and 1.2

version 1.1, 2004/08/01 05:31:31 version 1.2, 2004/08/03 12:50:54
Line 3 Line 3
 #include        <io.h>  #include        <io.h>
 #include        "strres.h"  #include        "strres.h"
 #include        "xmil.h"  #include        "xmil.h"
   #include        "oemtext.h"
 #include        "dosio.h"  #include        "dosio.h"
 #include        "ini.h"  #include        "ini.h"
 #include        "pccore.h"  #include        "pccore.h"
Line 13  void ini_read(const OEMCHAR *path, const Line 14  void ini_read(const OEMCHAR *path, const
   
 const INITBL    *p;  const INITBL    *p;
 const INITBL    *pterm;  const INITBL    *pterm;
   #if defined(OSLANG_UCS2)
           OEMCHAR         item[10];
   #else
   const OEMCHAR   *item;
   #endif
         OEMCHAR         work[512];          OEMCHAR         work[512];
         UINT32          val;          UINT32          val;
   
         p = tbl;          p = tbl;
         pterm = tbl + count;          pterm = tbl + count;
         while(p < pterm) {          while(p < pterm) {
   #if defined(OSLANG_UCS2)
                   oemtext_sjis2oem(item, NELEMENTS(item), p->item, (UINT)-1);
   #else
                   item = p->item;
   #endif
                 switch(p->itemtype & INITYPE_MASK) {                  switch(p->itemtype & INITYPE_MASK) {
                         case INITYPE_STR:                          case INITYPE_STR:
                                 GetPrivateProfileString(title, p->item, (OEMCHAR *)p->value,                                  GetPrivateProfileString(title, item, (OEMCHAR *)p->value,
                                                                                         (OEMCHAR *)p->value, p->arg, path);                                                                                          (OEMCHAR *)p->value, p->arg, path);
                                 break;                                  break;
   
                         case INITYPE_BOOL:                          case INITYPE_BOOL:
                                 GetPrivateProfileString(title, p->item,                                  GetPrivateProfileString(title, item,
                                                                         (*((UINT8 *)p->value))?str_true:str_false,                                                                          (*((UINT8 *)p->value))?str_true:str_false,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 *((UINT8 *)p->value) = (!milstr_cmp(work, str_true))?1:0;                                  *((UINT8 *)p->value) = (!milstr_cmp(work, str_true))?1:0;
Line 34  const INITBL *pterm; Line 45  const INITBL *pterm;
   
                         case INITYPE_SINT8:                          case INITYPE_SINT8:
                         case INITYPE_UINT8:                          case INITYPE_UINT8:
                                 val = (UINT8)GetPrivateProfileInt(title, p->item,                                  val = (UINT8)GetPrivateProfileInt(title, item,
                                                                                                 *(UINT8 *)p->value, path);                                                                                                  *(UINT8 *)p->value, path);
                                 *(UINT8 *)p->value = (UINT8)val;                                  *(UINT8 *)p->value = (UINT8)val;
                                 break;                                  break;
   
                         case INITYPE_SINT16:                          case INITYPE_SINT16:
                         case INITYPE_UINT16:                          case INITYPE_UINT16:
                                 val = (UINT16)GetPrivateProfileInt(title, p->item,                                  val = (UINT16)GetPrivateProfileInt(title, item,
                                                                                                 *(UINT16 *)p->value, path);                                                                                                  *(UINT16 *)p->value, path);
                                 *(UINT16 *)p->value = (UINT16)val;                                  *(UINT16 *)p->value = (UINT16)val;
                                 break;                                  break;
   
                         case INITYPE_SINT32:                          case INITYPE_SINT32:
                         case INITYPE_UINT32:                          case INITYPE_UINT32:
                                 val = (UINT32)GetPrivateProfileInt(title, p->item,                                  val = (UINT32)GetPrivateProfileInt(title, item,
                                                                                                 *(UINT32 *)p->value, path);                                                                                                  *(UINT32 *)p->value, path);
                                 *(UINT32 *)p->value = (UINT32)val;                                  *(UINT32 *)p->value = (UINT32)val;
                                 break;                                  break;
   
                         case INITYPE_HEX8:                          case INITYPE_HEX8:
                                 SPRINTF(work, str_x, *(UINT8 *)p->value),                                  SPRINTF(work, str_x, *(UINT8 *)p->value),
                                 GetPrivateProfileString(title, p->item, work,                                  GetPrivateProfileString(title, item, work,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 val = (UINT8)milstr_solveHEX(work);                                  val = (UINT8)milstr_solveHEX(work);
                                 *(UINT8 *)p->value = (UINT8)val;                                  *(UINT8 *)p->value = (UINT8)val;
Line 63  const INITBL *pterm; Line 74  const INITBL *pterm;
   
                         case INITYPE_HEX16:                          case INITYPE_HEX16:
                                 SPRINTF(work, str_x, *(UINT16 *)p->value),                                  SPRINTF(work, str_x, *(UINT16 *)p->value),
                                 GetPrivateProfileString(title, p->item, work,                                  GetPrivateProfileString(title, item, work,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 val = (UINT16)milstr_solveHEX(work);                                  val = (UINT16)milstr_solveHEX(work);
                                 *(UINT16 *)p->value = (UINT16)val;                                  *(UINT16 *)p->value = (UINT16)val;
Line 71  const INITBL *pterm; Line 82  const INITBL *pterm;
   
                         case INITYPE_HEX32:                          case INITYPE_HEX32:
                                 SPRINTF(work, str_x, *(UINT32 *)p->value),                                  SPRINTF(work, str_x, *(UINT32 *)p->value),
                                 GetPrivateProfileString(title, p->item, work,                                  GetPrivateProfileString(title, item, work,
                                                                                                 work, NELEMENTS(work), path);                                                                                                  work, NELEMENTS(work), path);
                                 val = (UINT32)milstr_solveHEX(work);                                  val = (UINT32)milstr_solveHEX(work);
                                 *(UINT32 *)p->value = (UINT32)val;                                  *(UINT32 *)p->value = (UINT32)val;
Line 145  const OEMCHAR *set; Line 156  const OEMCHAR *set;
                                         break;                                          break;
                         }                          }
                         if (set) {                          if (set) {
   #if defined(OSLANG_UCS2)
                                   OEMCHAR item[10];
                                   oemtext_sjis2oem(item, NELEMENTS(item), p->item, (UINT)-1);
                                   WritePrivateProfileString(title, item, set, path);
   #else
                                 WritePrivateProfileString(title, p->item, set, path);                                  WritePrivateProfileString(title, p->item, set, path);
   #endif
                         }                          }
                 }                  }
                 p++;                  p++;
Line 211  static const INITBL iniitem[] = { Line 228  static const INITBL iniitem[] = {
   
 static void initgetfile(OEMCHAR *path, UINT size) {  static void initgetfile(OEMCHAR *path, UINT size) {
   
         file_cpyname(path, __argv[0], size);          file_cpyname(path, modulefile, size);
         file_cutext(path);          file_cutext(path);
         file_catname(path, OEMTEXT(".ini"), size);          file_catname(path, OEMTEXT(".ini"), size);
 }  }

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


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