diff options
| author | Soikk | 2022-05-05 18:45:45 +0200 |
|---|---|---|
| committer | Soikk | 2022-05-05 18:45:45 +0200 |
| commit | 39c0dfbc9c4279e519841afae5c7413b1bdf56d8 (patch) | |
| tree | 8fbe479baf22778911b75ec3d06f05de584b6bce /include | |
| parent | 6afe3cc8ec6c009a43950bdbe138cbc2d7a88a4d (diff) | |
| download | soikk-DB-39c0dfbc9c4279e519841afae5c7413b1bdf56d8.tar.xz soikk-DB-39c0dfbc9c4279e519841afae5c7413b1bdf56d8.tar.zst | |
More quality of life changes
Diffstat (limited to 'include')
| -rw-r--r-- | include/db.h | 20 | ||||
| -rw-r--r-- | include/parser.h | 17 | ||||
| -rw-r--r-- | include/repl.h | 20 | ||||
| -rw-r--r-- | include/storage.h | 26 | ||||
| -rw-r--r-- | include/str.h | 14 | ||||
| -rw-r--r-- | include/strnatcmp.h | 31 |
6 files changed, 128 insertions, 0 deletions
diff --git a/include/db.h b/include/db.h new file mode 100644 index 0000000..a5fca10 --- /dev/null +++ b/include/db.h @@ -0,0 +1,20 @@ +#ifndef DB_H +#define DB_H + +#include <stdio.h> +#include <ctype.h> +#include <stdlib.h> +#include <string.h> +#include <stdint.h> +#include <stdbool.h> + + +#include "strnatcmp.h" + +#include "repl.h" +#include "parser.h" +#include "storage.h" +#include "str.h" + + +#endif
\ No newline at end of file diff --git a/include/parser.h b/include/parser.h new file mode 100644 index 0000000..2e46967 --- /dev/null +++ b/include/parser.h @@ -0,0 +1,17 @@ +#ifndef PARSER_H +#define PARSER_H + +#include "db.h" + + +typedef enum { + META_COMMAND_SUCCESS, + META_COMMAND_FAIL, +} metaCommandStatus; + + +int handleMetaCommand(inputBuffer *in); + +int handleInput(inputBuffer *in); + +#endif
\ No newline at end of file diff --git a/include/repl.h b/include/repl.h new file mode 100644 index 0000000..9c9fb8e --- /dev/null +++ b/include/repl.h @@ -0,0 +1,20 @@ +#ifndef REPL_H +#define REPL_H + +#include "db.h" + +typedef struct { + char *buffer; + ssize_t inputSize; +} inputBuffer; + + +inputBuffer *newInputBuffer(void); + +void freeInputBuffer(inputBuffer *in); + +void getInput(inputBuffer *in); + +void prompt(void); + +#endif
\ No newline at end of file diff --git a/include/storage.h b/include/storage.h new file mode 100644 index 0000000..507c733 --- /dev/null +++ b/include/storage.h @@ -0,0 +1,26 @@ +#ifndef STORAGE_H +#define STORAGE_H + +#include "db.h" + +#define MAXPATH 4096 +#define MAXTAGS 4096 + + +// When intializing the struct, it is recommended +// to also initialize numTags and lenTags +typedef struct{ + char path[MAXPATH]; + char tags[MAXTAGS]; + uint16_t numTags; + uint16_t lenTags; +} row; + + +row *newRow(const char *path); + +void insertTag(row *r, char *tag); + +void removeTag(row *r, char *tag); + +#endif
\ No newline at end of file diff --git a/include/str.h b/include/str.h new file mode 100644 index 0000000..ffda145 --- /dev/null +++ b/include/str.h @@ -0,0 +1,14 @@ +#ifndef STRINGS_H +#define STRINGS_H + +#include "db.h" + + +uint16_t len(const char *s); + +bool sameStr(const char *s1, const char *s2); + +ssize_t strInTags(const char *tags, int n, const char *ndl, int m, char sep); + + +#endif
\ No newline at end of file diff --git a/include/strnatcmp.h b/include/strnatcmp.h new file mode 100644 index 0000000..9d98198 --- /dev/null +++ b/include/strnatcmp.h @@ -0,0 +1,31 @@ +/* -*- mode: c; c-file-style: "k&r" -*- + + strnatcmp.c -- Perform 'natural order' comparisons of strings in C. + Copyright (C) 2000, 2004 by Martin Pool <mbp sourcefrog net> + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + + +/* CUSTOMIZATION SECTION + * + * You can change this typedef, but must then also change the inline + * functions in strnatcmp.c */ +typedef char nat_char; + +int strnatcmp(nat_char const *a, nat_char const *b); +int strnatcasecmp(nat_char const *a, nat_char const *b);
\ No newline at end of file |
