summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDana Conrad <dconrad@fastmail.com>2022-12-07 20:33:02 -0600
committerWilliam Wilgus <me.theuser@yahoo.com>2022-12-08 15:38:12 -0500
commit3555e84a7a0ce769305cbd19fc145619c5f7615b (patch)
tree1bbd614b7b8f2f328d8c43e276af770dac4a52bf
parentf6f12db062697035a31309794ed1980040e09a53 (diff)
downloadrockbox-3555e84a7a.tar.gz
rockbox-3555e84a7a.zip
Bugfix: some settings can have spaces in them
90bc769 strips spaces from the settings value, but it goes to the first space rather than just stripping off the last one. Break out of the loop when we find the first non-space character. Also change 0 to '\0' for readability. Change-Id: I915b82a6d1603740998a67c575d08005456ffbd8
-rw-r--r--apps/misc.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/apps/misc.c b/apps/misc.c
index 63a3a2a6eb..950662d19a 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -268,17 +268,18 @@ bool settings_parseline(char* line, char** name, char** value)
return false;
*name = line;
- *ptr = 0;
+ *ptr = '\0'; /* terminate previous */
ptr++;
ptr = skip_whitespace(ptr);
*value = ptr;
/* strip whitespace from the right side of value */
ptr += strlen(ptr);
- for (ptr--; ptr >= *value; ptr--)
+ ptr--;
+ while ((ptr > (*value) - 1) && isspace(*ptr))
{
- if (isspace(*ptr))
- *ptr = '\0';
+ *ptr = '\0';
+ ptr--;
}
return true;