소스 검색

LibLine: Capture the current origin immediately after ^C

Otherwise a subsequent event (^C or resize) will make LibLine use the
previous origin instead of the real current one.
Ali Mohammad Pur 1 년 전
부모
커밋
869c7c9bab
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      Userland/Libraries/LibLine/Editor.cpp

+ 2 - 2
Userland/Libraries/LibLine/Editor.cpp

@@ -622,7 +622,6 @@ ErrorOr<void> Editor::interrupted()
         TRY(reposition_cursor(*stderr_stream, true));
         TRY(reposition_cursor(*stderr_stream, true));
         if (TRY(m_suggestion_display->cleanup()))
         if (TRY(m_suggestion_display->cleanup()))
             TRY(reposition_cursor(*stderr_stream, true));
             TRY(reposition_cursor(*stderr_stream, true));
-        TRY(stderr_stream->write_until_depleted("\n"sv.bytes()));
     }
     }
     m_buffer.clear();
     m_buffer.clear();
     m_chars_touched_in_the_middle = buffer().size();
     m_chars_touched_in_the_middle = buffer().size();
@@ -817,7 +816,7 @@ void Editor::handle_interrupt_event()
 
 
     m_previous_interrupt_was_handled_as_interrupt = true;
     m_previous_interrupt_was_handled_as_interrupt = true;
 
 
-    fprintf(stderr, "^C");
+    fprintf(stderr, "^C\r\n");
     fflush(stderr);
     fflush(stderr);
 
 
     if (on_interrupt_handled)
     if (on_interrupt_handled)
@@ -826,6 +825,7 @@ void Editor::handle_interrupt_event()
     m_buffer.clear();
     m_buffer.clear();
     m_chars_touched_in_the_middle = buffer().size();
     m_chars_touched_in_the_middle = buffer().size();
     m_cursor = 0;
     m_cursor = 0;
+    set_origin(false);
 
 
     finish();
     finish();
 }
 }