From 26440c9fd64d8c147f02ec4efb376ccb6dbb2783 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Mon, 5 Jul 2004 11:15:50 +0000 Subject: Moved settings_parseline() to misc.c git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4824 a1c6a512-1295-4272-9138-f99709370657 --- apps/misc.c | 34 ++++++++++++++++++++++++++++++++++ apps/misc.h | 6 ++++++ apps/settings.c | 33 --------------------------------- 3 files changed, 40 insertions(+), 33 deletions(-) diff --git a/apps/misc.c b/apps/misc.c index 701f766a8d..b92d8aefb8 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -16,6 +16,7 @@ * KIND, either express or implied. * ****************************************************************************/ +#include #include "string.h" #include "config.h" #include "file.h" @@ -170,3 +171,36 @@ void screen_dump(void) } } #endif + +/* parse a line from a configuration file. the line format is: + + name: value + + Any whitespace before setting name or value (after ':') is ignored. + A # as first non-whitespace character discards the whole line. + Function sets pointers to null-terminated setting name and value. + Returns false if no valid config entry was found. +*/ + +bool settings_parseline(char* line, char** name, char** value) +{ + char* ptr; + + while ( isspace(*line) ) + line++; + + if ( *line == '#' ) + return false; + + ptr = strchr(line, ':'); + if ( !ptr ) + return false; + + *name = line; + *ptr = 0; + ptr++; + while (isspace(*ptr)) + ptr++; + *value = ptr; + return true; +} diff --git a/apps/misc.h b/apps/misc.h index 329c62750c..df9eba8e55 100644 --- a/apps/misc.h +++ b/apps/misc.h @@ -16,6 +16,8 @@ * KIND, either express or implied. * ****************************************************************************/ +#ifndef MISC_H +#define MISC_H /* The point of this function would be to return a string of the input data, but never longer than 5 columns. Add suffix k and M when suitable... @@ -35,3 +37,7 @@ int read_line(int fd, char* buffer, int buffer_size); /* Save a .BMP file containing the current screen contents. */ void screen_dump(void); #endif + +bool settings_parseline(char* line, char** name, char** value); + +#endif diff --git a/apps/settings.c b/apps/settings.c index 17122ecd84..bc1e6c7506 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -836,39 +836,6 @@ void settings_load(int which) } } -/* parse a line from a configuration file. the line format is: - - setting name: setting value - - Any whitespace before setting name or value (after ':') is ignored. - A # as first non-whitespace character discards the whole line. - Function sets pointers to null-terminated setting name and value. - Returns false if no valid config entry was found. -*/ - -static bool settings_parseline(char* line, char** name, char** value) -{ - char* ptr; - - while ( isspace(*line) ) - line++; - - if ( *line == '#' ) - return false; - - ptr = strchr(line, ':'); - if ( !ptr ) - return false; - - *name = line; - *ptr = 0; - ptr++; - while (isspace(*ptr)) - ptr++; - *value = ptr; - return true; -} - void set_file(char* filename, char* setting, int maxlen) { char* fptr = strrchr(filename,'/'); -- cgit v1.2.3