Refine tabs; Add utils functions; Update document

This commit is contained in:
2023-03-17 11:37:53 +08:00
parent 14d2e6e38c
commit c4b311e980
4 changed files with 161 additions and 21 deletions

View File

@@ -48,7 +48,7 @@ static void PineIni_Parser_Destory(PineIniParser* parser) {
static int PineIni_Parser_Gets(PineIniParser* parser, char* buf) {
char *pBuf = buf;
parser->lineNumber++;
parser->lineNumber++;
while (*parser->currentPointer != '\n' && *parser->currentPointer != '\0') {
*(pBuf++) = *(parser->currentPointer++);
@@ -60,8 +60,8 @@ static int PineIni_Parser_Gets(PineIniParser* parser, char* buf) {
return PARSER_ACTION_END;
}
else {
// Skip LF
parser->currentPointer++;
// Skip LF
parser->currentPointer++;
return PARSER_ACTION_CONTINUE;
}
}
@@ -114,7 +114,7 @@ static PINE_BOOL PineIni_Line_IsParameter(const char* line, const int length) {
PineIniFile* PineIni_Parse(const char* iniText, PineIniError* errorRet) {
char lineBuffer[PINE_INI_LINE_MAX_LEN];
int lineLength;
int getsRetCode;
int getsRetCode;
PineIniParser* parser;
PineIniFile* iniResult;
PineIniSection* currentSection;
@@ -136,8 +136,8 @@ PineIniFile* PineIni_Parse(const char* iniText, PineIniError* errorRet) {
strcpy(errorRet->lineContent, "");
do {
// Get line from parser
getsRetCode = PineIni_Parser_Gets(parser, lineBuffer);
// Get line from parser
getsRetCode = PineIni_Parser_Gets(parser, lineBuffer);
// Trim white spaces
PineIni_StringTrim(lineBuffer);
@@ -158,7 +158,7 @@ PineIniFile* PineIni_Parse(const char* iniText, PineIniError* errorRet) {
char sectionName[PINE_INI_LINE_MAX_LEN];
PineIniSection* section;
PineIni_Substring(sectionName, lineBuffer, 1, lineLength - 2);
PineIni_Substring(sectionName, lineBuffer, 1, lineLength - 2);
section = PineIni_Find(iniResult, sectionName);
@@ -224,10 +224,10 @@ PineIniFile* PineIni_Parse(const char* iniText, PineIniError* errorRet) {
PineIni_Parser_Destory(parser);
return iniResult;
return iniResult;
}
PineIniSection* PineIni_Find(PineIniFile* file, const char* sectionName) {
PineIniSection* PineIni_Find(const PineIniFile* file, const char* sectionName) {
if (file) {
int i;
for (i = 0; i < file->numSection; ++i) {
@@ -272,7 +272,7 @@ PineIniSection* PineIni_Section_New(const char* sectionName) {
return section;
}
PineIniParameter* PineIni_Section_Find(PineIniSection* section, const char* key) {
PineIniParameter* PineIni_Section_Find(const PineIniSection* section, const char* key) {
if (section) {
int i;
for (i = 0; i < section->numParam; ++i) {
@@ -345,6 +345,50 @@ void PineIni_Parameter_Destory(PineIniParameter* param) {
// Utils functions
const char* PineIni_Section_GetString(const PineIniSection* section, const char* key, const char* defaultValue) {
const PineIniParameter* param = PineIni_Section_Find(section, key);
// key not found or value is null
if (!param || !param->value) {
return defaultValue;
}
return param->value;
}
const char* PineIni_GetString(const PineIniFile* file, const char* sectionName, const char* key, const char* defaultValue) {
const PineIniSection* section = PineIni_Find(file, sectionName);
// sectionName not found
if (!section) {
return defaultValue;
}
return PineIni_Section_GetString(section, key, defaultValue);
}
int PineIni_Section_GetInt(const PineIniSection* section, const char* key, int defaultValue) {
const char* szIntVal = PineIni_Section_GetString(section, key, NULL);
if (szIntVal == NULL) {
return defaultValue;
} else {
return atol(szIntVal);
}
}
int PineIni_GetInt(const PineIniFile* file, const char* sectionName, const char* key, int defaultValue) {
const char* szIntVal = PineIni_GetString(file, sectionName, key, NULL);
if (szIntVal == NULL) {
return defaultValue;
} else {
return atol(szIntVal);
}
}
// String functions
int PineIni_FindChar(const char* src, const char find) {
int i;
for (i = 0; src[i]; ++i) {
@@ -370,9 +414,9 @@ char* PineIni_Substring(char* dest, const char* src, int left, int right) {
}
char* PineIni_ToSubstring (char* src, int left, int right) {
int length = strlen(src);
char* buf = (char *)malloc(length + 1);
int newLength = 0;
int length = strlen(src);
char* buf = (char *)malloc(length + 1);
int newLength = 0;
int i;
for (i = left; i <= right; ++i) {