diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-18 15:04:33 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-18 15:04:33 +0000 |
| commit | 83588b7ee9349a941b91294fa83fe6e207883ab6 (patch) | |
| tree | 7d28007f38dcc4efec72f0875d54e5b44df09db6 | |
| parent | f7319b36f4f48cdf065b9a1472c9a848ca6f95bc (diff) | |
fix uninitialized fd[]
| -rw-r--r-- | include/line/cursor.h | 48 | ||||
| -rw-r--r-- | include/line/getter.h | 19 | ||||
| -rw-r--r-- | include/line/input.h | 14 | ||||
| -rw-r--r-- | include/line/mode.h | 18 | ||||
| -rw-r--r-- | src/init.cc | 2 | ||||
| -rw-r--r-- | src/line/cursor.cc | 5 | ||||
| -rw-r--r-- | src/line/input.cc | 2 | ||||
| -rw-r--r-- | src/signal/sigwinch_handler.cc | 2 |
8 files changed, 5 insertions, 105 deletions
diff --git a/include/line/cursor.h b/include/line/cursor.h deleted file mode 100644 index 63d275c..0000000 --- a/include/line/cursor.h +++ /dev/null @@ -1,48 +0,0 @@ -#pragma once - -#include <string> - -#include "line/type.h" - -namespace ov4 -{ - -// 1-based -inline int cursor_row; -inline int cursor_col; -//inline int line_end_pos; - -inline int prompt_pos; - -inline int window_size_row; -inline int window_size_col; - -// 0-based index -inline int buffer_index_cursor; -// index [begin, end] is displayed -// NB: CLOSE interval -inline int _buffer_index_display_begin; -//inline int buffer_index_display_end; - -inline std::string line_buffer; - -void print_override(const std::string &s); - -void move_cursor(char c); - -void cursor_input_char(char c); - -void update_window_size(); - -void move_cursor(T_cursor_movement_direction d); - -void switch_history(T_cursor_movement_direction d); - -void reset_editor(); - -void cursor_skip_prompt(); - -void check_window_update(); - -} - diff --git a/include/line/getter.h b/include/line/getter.h deleted file mode 100644 index ac8683f..0000000 --- a/include/line/getter.h +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once - -#include "line/type.h" - -namespace ov4 -{ - -inline bool windows_size_changed; - -int get_terminal_pos_cursor(); -int get_buffer_index_display_begin(); -int get_buffer_index_display_end(); -int get_terminal_pos_line_end(); - -//void update_line_end_pos(); - -T_position get_cursor_position(); - -}
\ No newline at end of file diff --git a/include/line/input.h b/include/line/input.h deleted file mode 100644 index 5330742..0000000 --- a/include/line/input.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -#include <string> - -namespace ov4 -{ - -void clear_below(); - -std::string readline(); - -void editor_exit(int code); - -}
\ No newline at end of file diff --git a/include/line/mode.h b/include/line/mode.h deleted file mode 100644 index 3d40cef..0000000 --- a/include/line/mode.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once - -#include <termios.h> -#include <string> - -#include "line/type.h" - -namespace ov4 -{ - -inline termios attr; -inline bool raw_enabled = false; - -void disable_raw(); -void enable_raw(); - - -} diff --git a/src/init.cc b/src/init.cc index a38aec4..a28b5bb 100644 --- a/src/init.cc +++ b/src/init.cc @@ -1,6 +1,7 @@ #include "init.h" #include <fcntl.h> +#include "pipe.h" using namespace std; @@ -15,6 +16,7 @@ This is free software; see the source for copying conditions. \ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \n\ Published under GNU AFFERO GENERAL PUBLIC LICENSE (AGPL) Version 3." << endl; + self_pipe_init(); signal_init(); tty_fd = open("/dev/tty", O_RDWR); diff --git a/src/line/cursor.cc b/src/line/cursor.cc index 1baa33c..16665a5 100644 --- a/src/line/cursor.cc +++ b/src/line/cursor.cc @@ -18,7 +18,6 @@ namespace ov4 void T_line_editor::print_override(const std::string &s) { - check_window_update(); // save current cursor position // print("\x1b[s"); fflush(stdout); @@ -42,7 +41,6 @@ void T_line_editor::print_override(const std::string &s) void T_line_editor::move_cursor(char c) { - check_window_update(); switch (c) { @@ -65,7 +63,6 @@ void T_line_editor::move_cursor(char c) void T_line_editor::cursor_input_char(char c) { - check_window_update(); // if receives any input // it should move to the latest history @@ -106,7 +103,6 @@ void T_line_editor::update_window_size() void T_line_editor::move_cursor(T_cursor_movement_direction d) { - check_window_update(); switch (d) { @@ -170,7 +166,6 @@ void T_line_editor::move_cursor(T_cursor_movement_direction d) void T_line_editor::switch_history(T_cursor_movement_direction d) { - check_window_update(); switch (d) { diff --git a/src/line/input.cc b/src/line/input.cc index 1e7ca38..0a01760 100644 --- a/src/line/input.cc +++ b/src/line/input.cc @@ -34,7 +34,7 @@ string T_line_editor::readline() if (src == self_pipe_fd[0]) { check_window_update(); - break; + continue; } if (iscntrl(c)) { diff --git a/src/signal/sigwinch_handler.cc b/src/signal/sigwinch_handler.cc index 20d4550..a686328 100644 --- a/src/signal/sigwinch_handler.cc +++ b/src/signal/sigwinch_handler.cc @@ -1,6 +1,7 @@ #include "signal_handler.h" #include "line/line_editor.h" +#include "pipe.h" namespace ov4 { @@ -8,6 +9,7 @@ namespace ov4 void sigwinch_handler([[maybe_unused]] int sig) { windows_size_changed = true; + self_pipe_write(); } }
\ No newline at end of file |
