summaryrefslogtreecommitdiff
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-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
-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;