Skip to content
Snippets Groups Projects
Commit 81457b26 authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

Add iniGetSString() that takes the size of the buffer

parent 904d202a
No related branches found
No related tags found
No related merge requests found
......@@ -1038,6 +1038,29 @@ char* iniGetString(str_list_t list, const char* section, const char* key, const
return(vp);
}
char* iniGetSString(str_list_t list, const char* section, const char* key, const char* deflt, char* value, size_t sz)
{
char fval[INI_MAX_VALUE_LEN];
char *ret;
size_t pos;
ret = iniGetString(list, section, key, deflt, value);
if (ret == NULL)
return ret;
if (sz < 1 || value == NULL)
return ret;
for (pos = 0; fval[pos]; pos++) {
if (pos == sz - 1) {
value[pos] = 0;
break;
}
value[pos] = fval[pos];
}
if (ret == fval)
return value;
return ret;
}
/* Does NOT support string literals: */
char* iniGetValue(str_list_t list, const char* section, const char* key, const char* deflt, char* value)
{
......
......@@ -149,6 +149,11 @@ DLLEXPORT char* iniGetExistingValue(str_list_t, const char* section, const cha
/* Return the string value (potentially string literals separated by colon rather than equal): */
DLLEXPORT char* iniGetString(str_list_t, const char* section, const char* key
,const char* deflt, char* value /* may be NULL */);
/* As above but specify the size of value */
DLLEXPORT char* iniGetSString(str_list_t listr, const char* section, const char* key
,const char* deflt, char* value /* may be NULL */, size_t sz);
/* If the key doesn't exist, iniGetExistingString just returns NULL */
DLLEXPORT char* iniGetExistingString(str_list_t, const char* section, const char* key
,const char* deflt, char* value /* may be NULL */);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment