summaryrefslogtreecommitdiff
path: root/src/cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd.c')
-rw-r--r--src/cmd.c16
1 files changed, 16 insertions, 0 deletions
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;
+}