boot: Convert goto into loop
This commit is contained in:
+50
-49
@@ -1022,61 +1022,62 @@ static CHAR8 *line_get_key_value(
|
||||
assert(key_ret);
|
||||
assert(value_ret);
|
||||
|
||||
skip:
|
||||
line = content + *pos;
|
||||
if (*line == '\0')
|
||||
return NULL;
|
||||
for (;;) {
|
||||
line = content + *pos;
|
||||
if (*line == '\0')
|
||||
return NULL;
|
||||
|
||||
linelen = 0;
|
||||
while (line[linelen] && !strchra((CHAR8 *)"\n\r", line[linelen]))
|
||||
linelen++;
|
||||
linelen = 0;
|
||||
while (line[linelen] && !strchra((CHAR8 *) "\n\r", line[linelen]))
|
||||
linelen++;
|
||||
|
||||
/* move pos to next line */
|
||||
*pos += linelen;
|
||||
if (content[*pos])
|
||||
(*pos)++;
|
||||
/* move pos to next line */
|
||||
*pos += linelen;
|
||||
if (content[*pos])
|
||||
(*pos)++;
|
||||
|
||||
/* empty line */
|
||||
if (linelen == 0)
|
||||
goto skip;
|
||||
/* empty line */
|
||||
if (linelen == 0)
|
||||
continue;
|
||||
|
||||
/* terminate line */
|
||||
line[linelen] = '\0';
|
||||
/* terminate line */
|
||||
line[linelen] = '\0';
|
||||
|
||||
/* remove leading whitespace */
|
||||
while (strchra((CHAR8 *)" \t", *line)) {
|
||||
line++;
|
||||
linelen--;
|
||||
/* remove leading whitespace */
|
||||
while (strchra((CHAR8 *) " \t", *line)) {
|
||||
line++;
|
||||
linelen--;
|
||||
}
|
||||
|
||||
/* remove trailing whitespace */
|
||||
while (linelen > 0 && strchra((CHAR8 *) " \t", line[linelen - 1]))
|
||||
linelen--;
|
||||
line[linelen] = '\0';
|
||||
|
||||
if (*line == '#')
|
||||
continue;
|
||||
|
||||
/* split key/value */
|
||||
value = line;
|
||||
while (*value && !strchra(sep, *value))
|
||||
value++;
|
||||
if (*value == '\0')
|
||||
continue;
|
||||
*value = '\0';
|
||||
value++;
|
||||
while (*value && strchra(sep, *value))
|
||||
value++;
|
||||
|
||||
/* unquote */
|
||||
if (value[0] == '"' && line[linelen - 1] == '"') {
|
||||
value++;
|
||||
line[linelen - 1] = '\0';
|
||||
}
|
||||
|
||||
*key_ret = line;
|
||||
*value_ret = value;
|
||||
return line;
|
||||
}
|
||||
|
||||
/* remove trailing whitespace */
|
||||
while (linelen > 0 && strchra((CHAR8 *)" \t", line[linelen-1]))
|
||||
linelen--;
|
||||
line[linelen] = '\0';
|
||||
|
||||
if (*line == '#')
|
||||
goto skip;
|
||||
|
||||
/* split key/value */
|
||||
value = line;
|
||||
while (*value && !strchra(sep, *value))
|
||||
value++;
|
||||
if (*value == '\0')
|
||||
goto skip;
|
||||
*value = '\0';
|
||||
value++;
|
||||
while (*value && strchra(sep, *value))
|
||||
value++;
|
||||
|
||||
/* unquote */
|
||||
if (value[0] == '"' && line[linelen-1] == '"') {
|
||||
value++;
|
||||
line[linelen-1] = '\0';
|
||||
}
|
||||
|
||||
*key_ret = line;
|
||||
*value_ret = value;
|
||||
return line;
|
||||
}
|
||||
|
||||
static void config_defaults_load_from_file(Config *config, CHAR8 *content) {
|
||||
|
||||
Reference in New Issue
Block a user