From 53a8f41171179663cebdb9afbee5de88f8b6bbd4 Mon Sep 17 00:00:00 2001 From: Aakarsh Kashyap Date: Mon, 29 Jun 2026 12:57:24 +0530 Subject: Refactored the codebase so it becomes mine --- include/reader.h | 80 ++++++++++++++++++++------------------------------------ 1 file changed, 28 insertions(+), 52 deletions(-) (limited to 'include/reader.h') diff --git a/include/reader.h b/include/reader.h index 365500c..cad8bf3 100644 --- a/include/reader.h +++ b/include/reader.h @@ -1,73 +1,49 @@ -/* reader.h */ +/* reader.h - terminal word reader declarations */ -#define CTRL_KEY(k) ((k) & 0x1f) +#define _POSIX_C_SOURCE 200809L #include -#include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include + +#include #include -#include +#define CTRL_KEY(k) ((k) & 0x1f) -using editor_cfg = struct editor_cfg { +typedef struct EditorCfg { int screenrows; int screencols; - termios termios_inst {}; -}; - -class append_buffer { - private: - char *m_b{nullptr}; - uint32_t m_len{0}; - public: - append_buffer() {} - ~append_buffer() = default; + struct termios termios_inst; +} EditorCfg; - void append(const char *s, int len) { - char *n = (char *)realloc(m_b, m_len + len); +typedef struct AppendBuf { + char *b; + uint32_t len; +} AppendBuf; - if (n == nullptr) - return; - memcpy(&n[m_len], s, len); - m_b = n; - m_len += len; - } +void ab_append(AppendBuf *ab, const char *s, int len); +void ab_write(AppendBuf *ab); +void ab_free(AppendBuf *ab); - static append_buffer &instance() { - static append_buffer obj; - return obj; - } - - void remove() { - free(m_b); - m_b = nullptr; - m_len = 0; - } - - void write_output() { - write(STDOUT_FILENO, m_b, m_len); - } -}; - -void init_editor(editor_cfg *cfg); void die(const char *s); -void disable_raw(editor_cfg *cfg); -void enable_raw(editor_cfg *cfg); -void window_size_callback(editor_cfg *cfg); -void editor_refresh_scrn(editor_cfg *cfg); +void disable_raw(EditorCfg *cfg); +void enable_raw(EditorCfg *cfg); +void init_editor(EditorCfg *cfg); +void window_size_callback(EditorCfg *cfg); +void editor_refresh_scrn(EditorCfg *cfg); -char editor_readkey(); +char editor_readkey(void); int get_cursor_pos(int *rows, int *cols); int get_window_size(int *rows, int *cols); int is_number(char *strnum); -size_t split(const std::string &txt, std::vector &strings, const std::string &delims); - - +size_t split(const std::string &txt, + std::vector &strings, + const std::string &delims); -- cgit v1.2.3