summaryrefslogtreecommitdiffstats
path: root/apps/settings.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/settings.c')
-rw-r--r--apps/settings.c35
1 files changed, 19 insertions, 16 deletions
diff --git a/apps/settings.c b/apps/settings.c
index edf4d2b13f..7c4dc4d124 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -35,8 +35,7 @@
#include "backlight.h"
#include "audio.h"
#include "talk.h"
-#include "strlcpy.h"
-#include "strcasestr.h"
+#include "string-extra.h"
#include "rtc.h"
#include "power.h"
#include "ata_idle_notify.h"
@@ -251,7 +250,7 @@ bool cfg_string_to_int(int setting_id, int* out, const char* str)
}
else return false;
}
- strlcpy(temp, start, end-start+1);
+ strmemccpy(temp, start, end-start+1);
if (!strcmp(str, temp))
{
*out = count;
@@ -343,18 +342,22 @@ bool settings_load_config(const char* file, bool apply)
size_t len = strlen(dir);
if (!strncasecmp(value, dir, len))
{
- strlcpy(storage, &value[len], MAX_PATH);
+ strmemccpy(storage, &value[len], MAX_PATH);
}
- else strlcpy(storage, value, MAX_PATH);
+ else
+ strmemccpy(storage, value, MAX_PATH);
+
}
- else strlcpy(storage, value, MAX_PATH);
+ else
+ strmemccpy(storage, value, MAX_PATH);
+
if (settings[i].filename_setting->suffix)
{
char *s = strcasestr(storage,settings[i].filename_setting->suffix);
if (s) *s = '\0';
}
- strlcpy((char*)settings[i].setting, storage,
- settings[i].filename_setting->max_len);
+ strmemccpy((char*)settings[i].setting, storage,
+ settings[i].filename_setting->max_len);
break;
}
}
@@ -393,11 +396,11 @@ bool cfg_int_to_string(int setting_id, int val, char* buf, int buf_len)
if (value[count] == val)
{
if (end == NULL)
- strlcpy(buf, start, buf_len);
+ strmemccpy(buf, start, buf_len);
else
{
int len = MIN(buf_len, (end-start) + 1);
- strlcpy(buf, start, len);
+ strmemccpy(buf, start, len);
}
return true;
}
@@ -421,11 +424,11 @@ bool cfg_int_to_string(int setting_id, int val, char* buf, int buf_len)
}
end = strchr(start,',');
if (end == NULL)
- strlcpy(buf, start, buf_len);
+ strmemccpy(buf, start, buf_len);
else
{
int len = MIN(buf_len, (end-start) + 1);
- strlcpy(buf, start, len);
+ strmemccpy(buf, start, len);
}
return true;
}
@@ -491,7 +494,7 @@ bool cfg_to_string(int i/*setting_id*/, char* buf, int buf_len)
else
{
int len = MIN(buf_len, settings[i].filename_setting->max_len);
- strlcpy(buf,(char*)settings[i].setting,len);
+ strmemccpy(buf,(char*)settings[i].setting,len);
}
break;
} /* switch () */
@@ -1071,8 +1074,8 @@ void reset_setting(const struct settings_list *setting, void *var)
break;
case F_T_CHARPTR:
case F_T_UCHARPTR:
- strlcpy((char*)var, setting->default_val.charptr,
- setting->filename_setting->max_len);
+ strmemccpy((char*)var, setting->default_val.charptr,
+ setting->filename_setting->max_len);
break;
}
}
@@ -1265,6 +1268,6 @@ void set_file(const char* filename, char* setting, const int maxlen)
if (len > maxlen)
return;
- strlcpy(setting, fptr, len);
+ strmemccpy(setting, fptr, len);
settings_save();
}