Bladeren bron

LibVT: Fix out-of bounds line insert

Unless DECOM mode is enabled, the cursor positions are measured from the
top left corner of the screen. We counted from the top margin, causing
line inserts in `vim` to go out-of-bounds and crash the terminal.
Daniel Bertalan 4 jaren geleden
bovenliggende
commit
0c6f019285
1 gewijzigde bestanden met toevoegingen van 2 en 2 verwijderingen
  1. 2 2
      Userland/Libraries/LibVT/Terminal.cpp

+ 2 - 2
Userland/Libraries/LibVT/Terminal.cpp

@@ -608,7 +608,7 @@ void Terminal::IL(Parameters params)
         count = params[0];
     invalidate_cursor();
     for (; count > 0; --count) {
-        active_buffer().insert(cursor_row() + m_scroll_region_top, make<Line>(m_columns));
+        active_buffer().insert(cursor_row(), make<Line>(m_columns));
         if (m_scroll_region_bottom + 1 < active_buffer().size())
             active_buffer().remove(m_scroll_region_bottom + 1);
         else
@@ -640,7 +640,7 @@ void Terminal::DL(Parameters params)
     count = min(count, max_count);
 
     for (int c = count; c > 0; --c) {
-        active_buffer().remove(cursor_row() + m_scroll_region_top);
+        active_buffer().remove(cursor_row());
         if (m_scroll_region_bottom < active_buffer().size())
             active_buffer().insert(m_scroll_region_bottom, make<Line>(m_columns));
         else