terminal linebuffers on edit

This commit is contained in:
MichaelDvP
2021-04-26 14:50:23 +02:00
parent e6e507a470
commit b01264f701

View File

@@ -159,6 +159,7 @@ void Shell::loop_normal() {
line_buffer_.clear();
println();
cursor_ = 0;
line_no_ = 0;
break;
case '\x04':
@@ -174,6 +175,7 @@ void Shell::loop_normal() {
// Del/Backspace (^?)
if (line_buffer_.length() > cursor_) {
line_buffer_.erase(line_buffer_.length() - cursor_ - 1, 1);
line_no_ = 0;
}
break;
@@ -181,6 +183,7 @@ void Shell::loop_normal() {
// Tab (^I)
process_completion();
cursor_ = 0;
line_no_ = 0;
break;
case '\x0A':
@@ -201,11 +204,13 @@ void Shell::loop_normal() {
// Delete line (^U)
line_buffer_.clear();
cursor_ = 0;
line_no_ = 0;
break;
case '\x17':
// Delete word (^W)
delete_buffer_word(true);
line_no_ = 0;
break;
case '\033':
@@ -251,6 +256,7 @@ void Shell::loop_normal() {
if ((esc_ == 3) && cursor_) { // del
cursor_--;
line_buffer_.erase(line_buffer_.length() - cursor_ - 1, 1);
line_no_ = 0;
} else if (esc_ == 4) { // end
cursor_ = 0;
} else if (esc_ == 1) { // pos1