Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 2030 → Rev 2031

/programs/fs/Eolite/trunk/include/ini.h--
1,5 → 1,5
//INI parser in C--, GPL licence.
//Leency - 2008
//Leency - 2011
 
#define COMMENT 0
#define SECTION 1
6,15 → 6,20
#define PARAM 2
#define OPTION 3
 
void GetIni(dword inipath)
void GetIni(byte onload)
{
byte section[32]='', parametr[32]='', option[256]='', InfType=0;
word bukva[1];
int errornum;
dword buff, fsize, tj;
//÷èòàåì ôàéë
buff = malloc(1048576);
ReadFile(0, 1048576, buff, inipath);
IF (EAX<>6) {WriteDebug("INI-file not found. Defaults will be used."); goto INI_END;}
ReadFile(0, 1048576, buff, INI_PATH);
IF (EAX<>6) //åñëè ôàéë ñ íàñòðîéêàìè íå íàéäåí
{
IF (onload==1) RunProgram(NOTIFY_PATH, "Eolite.ini not found. Defaults will be used.");
IF (onload==0) goto RUN_AS_PROGRAM;
}
fsize=EBX;
//ïàðñèì åãî
for (tj=0; tj<fsize; tj++;)
40,7 → 45,12
InfType=PARAM;
//IF (strcmp(#parametr,"select_color")==0) videlenie=StrToCol(#option);
IF (parametr) && (!strcmp(#file_name+find_symbol(#file_name,'.'),#parametr)) {
RunProgram(#option,#file_path);
errornum=RunProgram(#option,#file_path);
IF (errornum<0) //åñëè îøèáî÷êà âûøëà ïðè çàïóñêå
{
WriteDebug(#option);
Write_Debug_Error(errornum);
}
return;
}
parametr=option='';
51,6 → 61,49
IF (InfType==OPTION) copystr(#bukva,#option+strlen(#option));
}
}
INI_END:
IF (file_path) RunProgram(#file_path,'');
RUN_AS_PROGRAM:
IF (file_path) errornum=RunProgram(#file_path,'');
IF (errornum<0) //åñëè îøèáî÷êà âûøëà ïðè çàïóñêå
{
WriteDebug(#file_path);
Write_Debug_Error(errornum);
}
}
 
 
///////////////////////////////////////////
/// íóæíî ÷òîáû ïðîñòî âîçâðàùàëî òåêñò ///
///////////////////////////////////////////
 
void Write_Debug_Error(int error_number){
 
IF (error_number<0) error_number=-1*error_number;
switch (error_number) //èçâåñíàÿ îøèáêà - ïèøåì êàêàÿ è óõîäèì
{
CASE 2: RunProgram(NOTIFY_PATH, "Eolite: error 2 - Function is not supported for the given file system");
return;
CASE 3: RunProgram(NOTIFY_PATH, "Eolite: error 3 - Unknown file system");
return;
CASE 5: RunProgram(NOTIFY_PATH, "Eolite: error 5 - File or folder not found");
return;
CASE 6: RunProgram(NOTIFY_PATH, "Eolite: error 6 - End of file, EOF");
return;
CASE 7: RunProgram(NOTIFY_PATH, "Eolite: error 7 - Pointer lies outside of application memory");
return;
case 8: RunProgram(NOTIFY_PATH, "Eolite: error 8 - FAT table is destroyed");
return;
case 9: RunProgram(NOTIFY_PATH, "Eolite: error 9 - FAT table is destroyed");
RETURN;
case 10:RunProgram(NOTIFY_PATH, "Eolite: error 10 - Access denied");
RETURN;
case 11:RunProgram(NOTIFY_PATH, "Eolite: error 11 - Device error");
RETURN;
case 30:RunProgram(NOTIFY_PATH, "Eolite: error 30 - Not enough memory");
RETURN;
case 31:RunProgram(NOTIFY_PATH, "Eolite: error 31 - File is not executable");
RETURN;
case 32:RunProgram(NOTIFY_PATH, "Eolite: error 32 - Too many processes");
RETURN;
default:RunProgram(NOTIFY_PATH, "Unknown error number O_o");
}
}