From 71989f8323da84187bb4b06ef9d4435d037d7a27 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 19 Feb 2007 20:41:40 +0000 Subject: Progress with C5471 boot git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@8 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/tools/mkconfig.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'nuttx/tools') diff --git a/nuttx/tools/mkconfig.c b/nuttx/tools/mkconfig.c index 6de8ddd93..e7394702f 100644 --- a/nuttx/tools/mkconfig.c +++ b/nuttx/tools/mkconfig.c @@ -52,16 +52,26 @@ static char *skip_space(char *ptr) return ptr; } -static char *find_end(char *ptr) +static char *find_name_end(char *ptr) { while (*ptr && (isalnum(*ptr) || *ptr == '_')) ptr++; return ptr; } -static char *find_comment(char *ptr) +static char *find_value_end(char *ptr) { - while (*ptr && *ptr != '"' && *ptr != '\n') ptr++; - if (*ptr == '"') ptr++; + while (*ptr && !isspace(*ptr)) + { + if (*ptr == '"') + { + do ptr++; while (*ptr && *ptr != '"'); + if (*ptr) ptr++; + } + else + { + do ptr++; while (*ptr && !isspace(*ptr) && *ptr != '"'); + } + } return ptr; } @@ -92,7 +102,7 @@ static void parse_line(char *ptr, char **varname, char **varval) *varname = ptr; *varval = NULL; - ptr = find_end(ptr); + ptr = find_name_end(ptr); if (*ptr && *ptr != '=') { *ptr = '\0'; @@ -106,14 +116,7 @@ static void parse_line(char *ptr, char **varname, char **varval) if (*ptr) { *varval = ptr; - if (*ptr == '"') - { - ptr = find_comment(ptr); - } - else - { - ptr = find_end(ptr); - } + ptr = find_value_end(ptr); *ptr = '\0'; } } -- cgit v1.2.3