aboutsummaryrefslogtreecommitdiffstats
path: root/src/bootstrap/readline.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bootstrap/readline.c')
-rw-r--r--src/bootstrap/readline.c28
1 files changed, 0 insertions, 28 deletions
diff --git a/src/bootstrap/readline.c b/src/bootstrap/readline.c
deleted file mode 100644
index ae03e4a..0000000
--- a/src/bootstrap/readline.c
+++ /dev/null
@@ -1,28 +0,0 @@
1#define READLINE_VALID_CHAR(C) (((u8)(C) >= 0x20 && (u8)(C) < 0x7F) || (C) == '\n')
2
3StringView
4read_line(FILE *fd, char delimiter) {
5 #define RL_BUF_SIZE KB(64)
6 static char readline_buf[RL_BUF_SIZE];
7
8 // Clear buffer.
9 for (size_t i = 0; i < RL_BUF_SIZE; i++) {
10 readline_buf[i] = 0;
11 }
12
13 // Barebones readline implementation.
14 size_t n = 0;
15 char c;
16 while ((c = getc(fd)) != delimiter) {
17 if (c == '\b') {
18 readline_buf[n] = '\0';
19 n--;
20 } else if (READLINE_VALID_CHAR(c) && n < RL_BUF_SIZE) {
21 readline_buf[n] = c;
22 n++;
23 }
24 }
25
26 return (StringView){.start = (char *)&readline_buf, .n = n};
27}
28