aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2022-10-22 13:24:33 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2022-10-22 13:24:33 -0400
commit6cbbe6430e110cc8896f0fdc338c72d0c0fd6490 (patch)
treebb1e9d46bfb7570c69ae9cb6a86fb95982b09c2e /main.c
parent69c056ff6083aabf46a12779f43c3f5fa573e9b5 (diff)
downloadsayeth-6cbbe6430e110cc8896f0fdc338c72d0c0fd6490.tar.gz
Move drivers_alloc_default to define DRIVERS_ALLOC_DEFAULT
* gcc 4.8.5 complained about assigning an initializer to a constant * Change driver parser so it seeks back to the beginning of the data section
Diffstat (limited to 'main.c')
-rw-r--r--main.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/main.c b/main.c
index adbc4bd..70c1bb5 100644
--- a/main.c
+++ b/main.c
@@ -10,6 +10,7 @@
#define INPUT_BUFSIZ 4096
#define DATA_BUFSIZ 8192
+#define DRIVERS_ALLOC_DEFAULT 128
size_t START_Y = 0;
const char *A_TAB = " ";
@@ -87,7 +88,7 @@ int boxprintf(const char *fmt, ...) {
size_t len = 0;
char data[INPUT_BUFSIZ] = {0};
char output[INPUT_BUFSIZ] = {0};
- vsnprintf(data, sizeof(data) - 1, fmt, list);
+ count = vsnprintf(data, sizeof(data) - 1, fmt, list);
// convert tabs to spaces
for (size_t i = 0, n = 0; i < strlen(data) && n < sizeof(output); i++, n++) {
@@ -238,8 +239,7 @@ struct Driver *driver_load(char *filename) {
fclose(fp);
return NULL;
}
- strncpy(driver->data, buf, sizeof(buf));
- strcat(driver->data, "\n");
+ fseek(fp, (long)-strlen(buf), SEEK_CUR);
fread(driver->data + strlen(driver->data), 1, DATA_BUFSIZ - 1, fp);
break;
default:
@@ -251,8 +251,7 @@ struct Driver *driver_load(char *filename) {
}
struct Driver **drivers = NULL;
-const size_t drivers_alloc_default = 128;
-size_t drivers_alloc = drivers_alloc_default;
+size_t drivers_alloc = DRIVERS_ALLOC_DEFAULT;
size_t drivers_used = 0;
int driver_register(struct Driver *driver) {
@@ -262,7 +261,7 @@ int driver_register(struct Driver *driver) {
if (drivers_used > drivers_alloc) {
struct Driver **tmp;
- drivers_alloc += drivers_alloc_default;
+ drivers_alloc += DRIVERS_ALLOC_DEFAULT;
tmp = realloc(drivers, (sizeof(**drivers) * drivers_alloc));
if (!tmp) {
return -1;
@@ -277,9 +276,10 @@ int driver_register(struct Driver *driver) {
drivers[drivers_used] = calloc(1, sizeof(*driver));
memcpy(drivers[drivers_used], driver, sizeof(*driver));
drivers_used++;
+ return 0;
}
-int driver_run(struct Driver *driver, char *input) {
+void driver_run(struct Driver *driver, char *input) {
char *elem = driver->box_elements;
box_top_left = elem[0];
box_top = elem[1];
@@ -325,7 +325,6 @@ int main(int argc, char *argv[]) {
#endif
}
-
// set default driver
strcpy(driver_name, "fierrhea");