diff --git a/src/source.cc b/src/source.cc index 7055ec6..960b5d9 100644 --- a/src/source.cc +++ b/src/source.cc @@ -886,10 +886,9 @@ void Source::View::paste() { get_buffer()->get_selection_bounds(start, end); get_buffer()->erase(start, end); } - auto line=get_line_before(); - std::string prefix_tabs; + auto iter=get_buffer()->get_insert()->get_iter(); auto tabs_end_iter=get_tabs_end_iter(); - prefix_tabs=get_line_before(tabs_end_iter); + auto prefix_tabs=get_line_before(iter0 && text.back()=='\n') + get_buffer()->insert_at_cursor('\n'+prefix_tabs); get_buffer()->place_cursor(get_buffer()->get_insert()->get_iter()); get_buffer()->end_user_action(); scroll_to_cursor_delayed(this, false, false);