diff options
author | Andreas Kling <kling@serenityos.org> | 2021-02-26 20:28:22 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-02-27 09:23:06 +0100 |
commit | b7c66233f6650e69c705ea07830e9136b760727a (patch) | |
tree | 8bd55100b044203247899ae496dcda66fd4d5a08 /Userland/Libraries/LibVT/Terminal.cpp | |
parent | c58570ebafa7bb5b5e53152067297c8b12a317a7 (diff) | |
download | serenity-b7c66233f6650e69c705ea07830e9136b760727a.zip |
LibVT: Make VT::Line use a Vector for storage
This is preparation for non-destructive terminal resizing which will
require more dynamic storage for lines.
Diffstat (limited to 'Userland/Libraries/LibVT/Terminal.cpp')
-rw-r--r-- | Userland/Libraries/LibVT/Terminal.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/Userland/Libraries/LibVT/Terminal.cpp b/Userland/Libraries/LibVT/Terminal.cpp index 6d61c1853f..54d2eb8bd6 100644 --- a/Userland/Libraries/LibVT/Terminal.cpp +++ b/Userland/Libraries/LibVT/Terminal.cpp @@ -28,7 +28,6 @@ #include <AK/StringBuilder.h> #include <AK/StringView.h> #include <LibVT/Terminal.h> -#include <string.h> namespace VT { @@ -535,11 +534,11 @@ void Terminal::DCH(const ParamVector& params) auto& line = m_lines[m_cursor_row]; // Move n characters of line to the left - for (int i = m_cursor_column; i < line.length() - num; i++) + for (size_t i = m_cursor_column; i < line.length() - num; i++) line.set_code_point(i, line.code_point(i + num)); // Fill remainder of line with blanks - for (int i = line.length() - num; i < line.length(); i++) + for (size_t i = line.length() - num; i < line.length(); i++) line.set_code_point(i, ' '); line.set_dirty(true); @@ -759,8 +758,8 @@ void Terminal::put_character_at(unsigned row, unsigned column, u32 code_point) VERIFY(column < columns()); auto& line = m_lines[row]; line.set_code_point(column, code_point); - line.attributes()[column] = m_current_attribute; - line.attributes()[column].flags |= Attribute::Touched; + line.attribute_at(column) = m_current_attribute; + line.attribute_at(column).flags |= Attribute::Touched; line.set_dirty(true); m_last_code_point = code_point; @@ -1191,9 +1190,9 @@ Attribute Terminal::attribute_at(const Position& position) const if (position.row() >= static_cast<int>(line_count())) return {}; auto& line = this->line(position.row()); - if (position.column() >= line.length()) + if (static_cast<size_t>(position.column()) >= line.length()) return {}; - return line.attributes()[position.column()]; + return line.attribute_at(position.column()); } } |