From 5340cd4ef24b298bd0cf98f12bdbf9178e60f9c0 Mon Sep 17 00:00:00 2001 From: bx Date: Sat, 2 Apr 2022 11:40:10 +0000 Subject: [PATCH] it compiles --- .gitignore | 1 + c_quit.c | 4 ++++ commands.c | 3 +++ compile.sh | 2 ++ consts.h | 1 + efn.c | 15 +++++++++++++++ efn.h | 4 ++++ main.c | 11 +++++++++++ types.h | 2 ++ 9 files changed, 43 insertions(+) create mode 100644 .gitignore create mode 100644 c_quit.c create mode 100644 commands.c create mode 100755 compile.sh create mode 100644 consts.h create mode 100644 efn.c create mode 100644 efn.h create mode 100644 main.c create mode 100644 types.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..06de785 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +efn diff --git a/c_quit.c b/c_quit.c new file mode 100644 index 0000000..9bba0bc --- /dev/null +++ b/c_quit.c @@ -0,0 +1,4 @@ +void +c_quit() { + exit(0); +} diff --git a/commands.c b/commands.c new file mode 100644 index 0000000..0de604c --- /dev/null +++ b/commands.c @@ -0,0 +1,3 @@ +void (*commands[256])() = { +NULL, +['q'] = c_quit, diff --git a/compile.sh b/compile.sh new file mode 100755 index 0000000..a589ca4 --- /dev/null +++ b/compile.sh @@ -0,0 +1,2 @@ +#!/bin/bash +gcc efn.c -o efn diff --git a/consts.h b/consts.h new file mode 100644 index 0000000..bab8f69 --- /dev/null +++ b/consts.h @@ -0,0 +1 @@ +#define ROW_SIZE 100 diff --git a/efn.c b/efn.c new file mode 100644 index 0000000..16362b4 --- /dev/null +++ b/efn.c @@ -0,0 +1,15 @@ +#include + +#include "consts.h" + +#include "types.h" + +#include "efn.h" + +#include "main.c" + +#include "commands.c" +}; + +#include "c_quit.c" + diff --git a/efn.h b/efn.h new file mode 100644 index 0000000..fb9bd37 --- /dev/null +++ b/efn.h @@ -0,0 +1,4 @@ +extern void (*commands[256])(); + +void c_quit(); + diff --git a/main.c b/main.c new file mode 100644 index 0000000..e36e221 --- /dev/null +++ b/main.c @@ -0,0 +1,11 @@ +int +main(int argc, char **argv) { + static char buf[256]; + while (1) { + char *com = fgets(buf, sizeof(buf), stdin); + if (com != NULL) { + commands[com[0]](); + } + } + return 0; +} diff --git a/types.h b/types.h new file mode 100644 index 0000000..9fe1ab6 --- /dev/null +++ b/types.h @@ -0,0 +1,2 @@ +typedef struct Row Row; +struct Row {Row *p; Row *n; char text[ROW_SIZE]; int line;};