summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorbpc2003 <wpesfriendnva@gmail.com>2025-04-30 12:20:13 -0400
committerbpc2003 <wpesfriendnva@gmail.com>2025-04-30 12:20:13 -0400
commit4ea8fe896cc333f5e7addd56e23db5668f4599b3 (patch)
tree56dd3eac6e94f26976188cd08db4ad0466fec826 /src/main.c
parent1eddf23c5da0faa055a5feb1bf22cf52b17011a4 (diff)
Made readdb and writedb smaller
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c49
1 files changed, 9 insertions, 40 deletions
diff --git a/src/main.c b/src/main.c
index 22cb239..42370ab 100644
--- a/src/main.c
+++ b/src/main.c
@@ -7,13 +7,8 @@
#include "cmd.h"
int getid(char *selector);
-int printkeys(tablist_t **list, int id, char **keys, int klen);
+int printkeys(tablist_t *list, int id, char **keys, int klen);
void printkey(tabidx_t idx);
-// TODO: rename these functions
-int setkeys_main(tablist_t **list, int id, char **pairs, int plen);
-int delkeys_main(tablist_t **list, int id, char **keys, int klen);
-int exec(int (*tabop)(tablist_t **, int, char **, int),
- tablist_t **list, int id, char **keys, int klen);
int main(int argc, char **argv)
{
@@ -37,12 +32,15 @@ int main(int argc, char **argv)
int id = getid(evaled.selector);
switch (evaled.type) {
case GET:
- exec(printkeys, &list, id, evaled.params, evaled.plen);
+ printkeys(list, id, evaled.params, evaled.plen);
break;
case SET:
+ id = setkeys(&list, id, evaled.params, evaled.plen);
+ if (!id && filename)
+ writedb(filename, list);
+ break;
case DEL:
- id = exec(evaled.type == SET ? setkeys_main : delkeys_main,
- &list, id, evaled.params, evaled.plen);
+ id = delkeys(list, id, evaled.params, evaled.plen);
if (!id && filename)
writedb(filename, list);
break;
@@ -77,9 +75,9 @@ int getid(char *selector) {
return -2;
}
-int printkeys(tablist_t **list, int id, char **keys, int klen)
+int printkeys(tablist_t *list, int id, char **keys, int klen)
{
- tablist_t *indexes = getkeys(*list, id, keys, klen);
+ tablist_t *indexes = getkeys(list, id, keys, klen);
if (indexes == NULL)
return 1;
for (int i = 0; i < indexes[0].len; ++i) {
@@ -107,32 +105,3 @@ void printkey(tabidx_t idx)
break;
}
}
-
-int setkeys_main(tablist_t **list, int id, char **pairs, int plen)
-{
- if (pairs == NULL || id < -1)
- return 1;
- if (setkeys(list, id, pairs, plen))
- return 2;
- return 0;
-}
-
-int delkeys_main(tablist_t **list, int id, char **keys, int klen)
-{
- if (keys == NULL || id < -1)
- return 1;
- if (delkeys(*list, id, keys, klen))
- return 2;
- return 0;
-}
-
-int exec(int (*tabop)(tablist_t **, int, char **, int),
- tablist_t **list, int id, char **keys, int klen)
-{
- if (id >= -1)
- return tabop(list, id, keys, klen);
- else {
- fprintf(stderr, "Invalid id\n");
- return 1;
- }
-}