summaryrefslogtreecommitdiff
path: root/src/cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd.c')
-rw-r--r--src/cmd.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/cmd.c b/src/cmd.c
index 7608d73..266f17b 100644
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -1,7 +1,9 @@
#include <string.h>
+#include <stdlib.h>
#include "cmd.h"
+char *getselector(char *str);
struct cmd eval(char *str)
{
@@ -16,7 +18,24 @@ struct cmd eval(char *str)
ret.type = DEL;
} else {
ret.type = ERR;
+ return ret;
}
+ ret.selector = getselector(str);
return ret;
}
+
+char *getselector(char *str)
+{
+ char *selector = calloc(1, sizeof(char));
+ int pos = 4, i;
+ for (i = 0; str[pos] != '/' && pos < strlen(str); ++pos) {
+ if (i >= 1) {
+ selector = realloc(selector, (i + 1) * sizeof(char));
+ }
+ selector[i++] = str[pos];
+ }
+ selector = realloc(selector, (i + 1) * sizeof(char));
+ selector[i] = '\0';
+ return selector;
+}