?? zhuzhu_config.c
字號:
#include "zhuzhu.h"
const int MAX_CONFIG_LINE_LENGTH = 256;
void zhuzhu_LoadConfig(zhuzhu* pApp)
{
// Variables
IFileMgr * pIFileMgr = NULL;
IFile * pIFile = NULL;
FileInfo fileInfo;
char * pszBuf;
ISourceUtil * pisu;
ISource * pISource;
IGetLine * piGetLine;
GetLine gl;
int rv;
pszBuf = MALLOC(STRLEN(AEEFS_SHARED_DIR) + STRLEN(CONFIG_DIRECTORY) + STRLEN(DIRECTORY_STR) + STRLEN(WORKING_DIRECTORY) + STRLEN(DIRECTORY_STR) + MAX_FILE_NAME);
if (!pszBuf)
return;
STRCPY(pszBuf, AEEFS_SHARED_DIR CONFIG_DIRECTORY DIRECTORY_STR WORKING_DIRECTORY DIRECTORY_STR CONFIG_FILE);
ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_FILEMGR, (void **)&pIFileMgr);
pIFile = IFILEMGR_OpenFile(pIFileMgr, pszBuf, _OFM_READ);
if (pIFile) {
if (ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_SOURCEUTIL, (void **)&pisu) == SUCCESS)
{
if (ISOURCEUTIL_SourceFromAStream(pisu, (IAStream*)pIFile, &pISource) == SUCCESS)
{
if (ISOURCEUTIL_GetLineFromSource(pisu, pISource, MAX_CONFIG_LINE_LENGTH, &piGetLine) == SUCCESS)
{
IFILE_GetInfo(pIFile, &fileInfo);
rv = IGETLINE_GetLine(piGetLine, &gl, IGETLINE_LF);
if (!IGETLINE_Exhausted(rv))
{
zhuzhu_ParseConfigLine(pApp, gl.psz);
while (!IGETLINE_Exhausted(rv))
{
rv = IGETLINE_GetLine(piGetLine, &gl, IGETLINE_LF);
if (STRLEN(gl.psz) != 0)
zhuzhu_ParseConfigLine(pApp, gl.psz);
}
}
IGETLINE_Release(piGetLine);
}
ISource_Release(pISource);
}
ISOURCEUTIL_Release(pisu);
}
}
FREE(pszBuf);
if (pIFile)
IFILE_Release(pIFile);
if (pIFileMgr)
IFILEMGR_Release(pIFileMgr);
}
void zhuzhu_ParseConfigLine(zhuzhu* pApp, char * psz)
{
char * str;
char * key;
int i = 1;
struct _Config * pConfig = pApp->pConfig;
str = STRCHR(psz, ';');
if (str)
psz[STRLEN(psz) - STRLEN(str) - 1] = '\0';
str = STRCHR(psz, '=');
if (!str)
return;
key = MALLOC(STRLEN(psz) - STRLEN(str) + 1);
STRNCPY(key, psz, STRLEN(psz) - STRLEN(str));
if (key)
{
if (STRIBEGINS(CONFIG_KEEP_ACTIVE_APPLETS_KEY, key))
{
str = STRCHR( str, '=' ) + 1;
pConfig->m_lKeepActiveApplets[i] = STRTOUL( str, NULL, 0);
while (STRCHR( str + 1, ',' ))
{
i++;
str = STRCHR( str + 1, ',' ) + 1;
pConfig->m_lKeepActiveApplets[i] = STRTOUL(str, NULL, 0);
}
}
}
FREEIF(key);
}
void zhuzhu_LoadDefaultConfigValues(zhuzhu* pApp)
{
struct _Config * pConfig;
int i;
pApp->pConfig = pConfig = MALLOC(sizeof(struct _Config));
for (i = 0; i < MAX_KEEP_APPLETS_COUNT; i++)
pConfig->m_lKeepActiveApplets[i] = 0;
pConfig->m_lKeepActiveApplets[0] = 0;
}
void zhuzhu_UnLoadConfigValues(zhuzhu* pApp)
{
FREEIF(pApp->pConfig);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -