Moved settings_parseline() to misc.c

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4824 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Linus Nielsen Feltzing 2004-07-05 11:15:50 +00:00
parent afd7421a4c
commit 26440c9fd6
3 changed files with 40 additions and 33 deletions

View file

@ -16,6 +16,7 @@
* KIND, either express or implied.
*
****************************************************************************/
#include <ctype.h>
#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;
}

View file

@ -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

View file

@ -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,'/');