summaryrefslogtreecommitdiff
path: root/apps/misc.c
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 /apps/misc.c
parentf6f12db062697035a31309794ed1980040e09a53 (diff)
downloadrockbox-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.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)
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;