summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbpc2003 <wpesfriendnva@gmail.com>2025-03-11 16:10:18 -0400
committerbpc2003 <wpesfriendnva@gmail.com>2025-03-11 16:10:18 -0400
commit5a58593fa8d9aa98811a00035356a479b992df26 (patch)
tree0346c05f362fa2663451776edafbaf6bade67cde /src
parent73ff11749ff0f7b33bcda855ddbf5382282b6dc1 (diff)
got started on command parsing
Diffstat (limited to 'src')
-rw-r--r--src/cmd.c19
-rw-r--r--src/main.c9
2 files changed, 28 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;
+}
diff --git a/src/main.c b/src/main.c
index 0ff4291..90d7879 100644
--- a/src/main.c
+++ b/src/main.c
@@ -32,9 +32,18 @@ int main(int argc, char **argv)
printf("ERR\n");
break;
}
+ printf("%s\n", evaled.selector);
+ free(evaled.selector);
}
free(cmd);
+ writedb(filename, list);
+ for (int i = 0; i < list[0].len; ++i) {
+ int *indexes = getkeys(list, i);
+ for (int j = 0; indexes[j]; ++j)
+ delkey(list, i, list[i].tab[indexes[j]].key);
+ free(indexes);
+ }
free(list);
exit(0);
}