diff options
author | bpc2003 <wpesfriendnva@gmail.com> | 2025-03-13 10:54:45 -0400 |
---|---|---|
committer | bpc2003 <wpesfriendnva@gmail.com> | 2025-03-13 10:54:45 -0400 |
commit | 82c5e54243a971c94da6e57976ffe7d43147af2a (patch) | |
tree | ab6b60d3f8805ab3c7766814c6e64ba35d5065b0 | |
parent | c45c1506733c12b1d9cd2a6e63fc79a1b1ac630e (diff) |
Added SET command
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | src/lib/test/test.c | 37 | ||||
-rw-r--r-- | src/lib/test/test.db | 1 | ||||
-rw-r--r-- | src/main.c | 21 |
4 files changed, 24 insertions, 40 deletions
@@ -1,5 +1,6 @@ -# backup files -*~ +# db files +*.db +*.db~ # compiled files *.out diff --git a/src/lib/test/test.c b/src/lib/test/test.c deleted file mode 100644 index 19397be..0000000 --- a/src/lib/test/test.c +++ /dev/null @@ -1,37 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <stdint.h> - -#include "../mdb.h" - -int main(void) -{ - char *filename = "test.db"; - struct keytablist *list = readdb(filename); - if (list == NULL) - exit(1); - - writedb(filename, list); - for (int i = 0; i < list[0].len; ++i) { - int *indexes = getkeys(list, i); - for (int j = 0; indexes[j]; ++j) { - printf("%s: ", list[i].tab[indexes[j]].key); - switch (list[i].tab[indexes[j]].flag) { - case 1: - printf("%.2lf\n", list[i].tab[indexes[j]].v.num); - break; - case 2: - printf("%d\n", list[i].tab[indexes[j]].v.b); - break; - case 3: - printf("%s\n", list[i].tab[indexes[j]].v.str); - break; - } - delkey(list, i, list[i].tab[indexes[j]].key); - } - free(indexes); - } - - free(list); - exit(0); -} diff --git a/src/lib/test/test.db b/src/lib/test/test.db deleted file mode 100644 index 0b5ef69..0000000 --- a/src/lib/test/test.db +++ /dev/null @@ -1 +0,0 @@ -ûúRow_1:1234.00üúRow_2:testüúRow_3:trueüþûúRow_1:trueüþûúRow_1:testüþ
\ No newline at end of file @@ -7,6 +7,7 @@ int getrange(char *selector); void printkeys(struct keytablist *list, int id, char **keys, int klen); +void setkeys(struct keytablist **list, int id, char **pairs, int plen); int main(int argc, char **argv) { @@ -32,6 +33,12 @@ int main(int argc, char **argv) } break; case SET: + if (range >= 0) + setkeys(&list, range, evaled.params, evaled.plen); + else if (range == -1) { + for (int i = 0; i < list[0].len; ++i) + setkeys(&list, i, evaled.params, evaled.plen); + } break; case DEL: break; @@ -60,6 +67,8 @@ int main(int argc, char **argv) } int getrange(char *selector) { + if (selector == NULL) + return -3; int id; if (!strcmp(selector, "*")) return -1; @@ -112,3 +121,15 @@ void printkeys(struct keytablist *list, int id, char **keys, int klen) printf("}\n"); } } + +void setkeys(struct keytablist **list, int id, char **pairs, int plen) +{ + if (pairs == NULL) + return; + for (int i = 0; i < plen; ++i) { + char *tmp = calloc(strlen(pairs[i]) + 1, sizeof(char)); + strcpy(tmp, pairs[i]); + setkey(list, &(list[0]->len), id, tmp); + free(tmp); + } +} |