From cd55aa462b112896240ab736bf60035fdb30ca2d Mon Sep 17 00:00:00 2001 From: _ov4 Date: Sun, 18 Oct 2026 14:47:46 +0000 Subject: adapt line editor --- src/line/cursor.cc | 23 ++++++++++------------- src/line/getter.cc | 14 ++++++-------- src/line/input.cc | 8 +++----- src/line/mode.cc | 4 +--- 4 files changed, 20 insertions(+), 29 deletions(-) (limited to 'src/line') diff --git a/src/line/cursor.cc b/src/line/cursor.cc index a273843..81454ae 100644 --- a/src/line/cursor.cc +++ b/src/line/cursor.cc @@ -1,4 +1,4 @@ -#include "line/cursor.h" +#include "line/line_editor.h" #include #include @@ -9,17 +9,14 @@ #include #include -#include "line/getter.h" #include "history.h" -#include "line/mode.h" -#include "line/input.h" using namespace std; namespace ov4 { -void print_override(const std::string &s) +void T_line_editor::print_override(const std::string &s) { check_window_update(); @@ -43,7 +40,7 @@ void print_override(const std::string &s) print("\x1b" "8"); fflush(stdout); } -void move_cursor(char c) +void T_line_editor::move_cursor(char c) { check_window_update(); @@ -66,7 +63,7 @@ void move_cursor(char c) } } -void cursor_input_char(char c) +void T_line_editor::cursor_input_char(char c) { check_window_update(); @@ -97,7 +94,7 @@ void cursor_input_char(char c) -void update_window_size() +void T_line_editor::update_window_size() { winsize ws; if (ioctl(1, TIOCGWINSZ, &ws) == -1) @@ -107,7 +104,7 @@ void update_window_size() window_size_col = ws.ws_col; } -void move_cursor(T_cursor_movement_direction d) +void T_line_editor::move_cursor(T_cursor_movement_direction d) { check_window_update(); @@ -171,7 +168,7 @@ void move_cursor(T_cursor_movement_direction d) } } -void switch_history(T_cursor_movement_direction d) +void T_line_editor::switch_history(T_cursor_movement_direction d) { check_window_update(); @@ -210,7 +207,7 @@ void switch_history(T_cursor_movement_direction d) } } -void reset_editor() +void T_line_editor::reset_editor() { line_buffer = ""; buffer_index_cursor = 0; @@ -218,14 +215,14 @@ void reset_editor() cursor_skip_prompt(); } -void cursor_skip_prompt() +void T_line_editor::cursor_skip_prompt() { // move to the "start" of the zone // should skip prompt zone print("\r\x1b[{}C", prompt_pos-1); fflush(stdout); } -void check_window_update() +void T_line_editor::check_window_update() { if (windows_size_changed) { diff --git a/src/line/getter.cc b/src/line/getter.cc index f396ce1..432ddca 100644 --- a/src/line/getter.cc +++ b/src/line/getter.cc @@ -1,4 +1,4 @@ -#include "line/getter.h" +#include "line/line_editor.h" #include #include @@ -8,39 +8,37 @@ #include #include -#include "line/cursor.h" - using namespace std; namespace ov4 { -int get_terminal_pos_cursor() +int T_line_editor::get_terminal_pos_cursor() { return prompt_pos + (buffer_index_cursor - get_buffer_index_display_begin()) + 1; } -int get_buffer_index_display_begin() +int T_line_editor::get_buffer_index_display_begin() { return _buffer_index_display_begin; } -int get_buffer_index_display_end() +int T_line_editor::get_buffer_index_display_end() { int max_possible_end = get_buffer_index_display_begin() + line_buffer.size() - 1; int window_possible_end = get_buffer_index_display_begin() + (window_size_col - prompt_pos) -1; return min(max_possible_end, window_possible_end); } -int get_terminal_pos_line_end() +int T_line_editor::get_terminal_pos_line_end() { int possible = prompt_pos + line_buffer.size(); return min(possible, window_size_col); } -T_position get_cursor_position() +T_position T_line_editor::get_cursor_position() { char c; string buffer; diff --git a/src/line/input.cc b/src/line/input.cc index cc5a62b..b7dbc23 100644 --- a/src/line/input.cc +++ b/src/line/input.cc @@ -1,24 +1,22 @@ -#include "line/input.h" +#include "line/line_editor.h" #include #include #include -#include "line/cursor.h" #include "history.h" -#include "line/getter.h" using namespace std; namespace ov4 { -void clear_below() +void T_line_editor::clear_below() { print("\x1b[0J"); } -string readline() +string T_line_editor::readline() { update_window_size(); history_vec.push_back(""); diff --git a/src/line/mode.cc b/src/line/mode.cc index 208465b..626557c 100644 --- a/src/line/mode.cc +++ b/src/line/mode.cc @@ -1,12 +1,10 @@ -#include "line/mode.h" +#include "line/line_editor.h" #include #include #include #include -#include "line/cursor.h" -#include "line/getter.h" #include "history.h" #include "signal_handler.h" -- cgit v1.3.1-4-g156e