diff options
Diffstat (limited to 'src/cmd.c')
-rw-r--r-- | src/cmd.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -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; +} |