diff options
author | Dana Conrad <dconrad@fastmail.com> | 2022-12-07 20:33:02 -0600 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2022-12-08 15:38:12 -0500 |
commit | 3555e84a7a0ce769305cbd19fc145619c5f7615b (patch) | |
tree | 1bbd614b7b8f2f328d8c43e276af770dac4a52bf /apps/misc.c | |
parent | f6f12db062697035a31309794ed1980040e09a53 (diff) | |
download | rockbox-3555e84a7a0ce769305cbd19fc145619c5f7615b.tar.gz rockbox-3555e84a7a0ce769305cbd19fc145619c5f7615b.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
Diffstat (limited to 'apps/misc.c')
-rw-r--r-- | apps/misc.c | 9 |
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) | |||
268 | return false; | 268 | return false; |
269 | 269 | ||
270 | *name = line; | 270 | *name = line; |
271 | *ptr = 0; | 271 | *ptr = '\0'; /* terminate previous */ |
272 | ptr++; | 272 | ptr++; |
273 | ptr = skip_whitespace(ptr); | 273 | ptr = skip_whitespace(ptr); |
274 | *value = ptr; | 274 | *value = ptr; |
275 | 275 | ||
276 | /* strip whitespace from the right side of value */ | 276 | /* strip whitespace from the right side of value */ |
277 | ptr += strlen(ptr); | 277 | ptr += strlen(ptr); |
278 | for (ptr--; ptr >= *value; ptr--) | 278 | ptr--; |
279 | while ((ptr > (*value) - 1) && isspace(*ptr)) | ||
279 | { | 280 | { |
280 | if (isspace(*ptr)) | 281 | *ptr = '\0'; |
281 | *ptr = '\0'; | 282 | ptr--; |
282 | } | 283 | } |
283 | 284 | ||
284 | return true; | 285 | return true; |