X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/64e5fa9a495e388c922157b9a616204c299f5e05..a2e1b06:/lunaix-os/kernel/kcmd.c diff --git a/lunaix-os/kernel/kcmd.c b/lunaix-os/kernel/kcmd.c index dc06c18..6860065 100644 --- a/lunaix-os/kernel/kcmd.c +++ b/lunaix-os/kernel/kcmd.c @@ -34,6 +34,10 @@ extract_next_option(struct extractor* ctx) s->len = 0; s->pos = i; + if (!ctx->cmdline[i]) { + return false; + } + while((c = ctx->cmdline[i++])) { if (c == ' ') { while ((c = ctx->cmdline[i++]) && c == ' '); @@ -50,21 +54,17 @@ extract_next_option(struct extractor* ctx) state = PARSE_VAL; s = &ctx->val; s->len = 0; - s->pos = i + 1; + s->pos = i; continue; } } - while ((c = ctx->cmdline[i++]) && c != ' ') { - s->len++; - } - - i--; + s->len++; } - ctx->pos = i; + ctx->pos = i - 1; - return !!c; + return true; } #define MAX_KEYSIZE 16