|
|
| 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); |
| } | } |