diff options
Diffstat (limited to 'src/bootstrap/readline.c')
-rw-r--r-- | src/bootstrap/readline.c | 28 |
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 | |||
3 | StringView | ||
4 | read_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 | |||