From 5f5b2e8ce67ce18519aea946a5e86b64384d491f Mon Sep 17 00:00:00 2001 From: bpc2003 Date: Wed, 12 Mar 2025 13:44:08 -0400 Subject: Added handling for params --- src/cmd.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/cmd.c') diff --git a/src/cmd.c b/src/cmd.c index 266f17b..d121be1 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -4,6 +4,7 @@ #include "cmd.h" char *getselector(char *str); +char **getparams(char *str); struct cmd eval(char *str) { @@ -22,6 +23,7 @@ struct cmd eval(char *str) } ret.selector = getselector(str); + ret.params = getparams(str); return ret; } @@ -39,3 +41,17 @@ char *getselector(char *str) selector[i] = '\0'; return selector; } + +char **getparams(char *str) +{ + char **params = calloc(1, sizeof(char *)); + char *tok = strtok(str, "/"); + int i = 0; + while ((tok = strtok(NULL, "/"))) { + if (i >= 1) + params = realloc(params, (i + 1) * sizeof(char *)); + params[i] = calloc(strlen(tok) + 1, sizeof(char)); + strcpy(params[i++], tok); + } + return params; +} -- cgit v1.2.3