diff --git a/src/source.cc b/src/source.cc index 2992f0d..612ea3f 100644 --- a/src/source.cc +++ b/src/source.cc @@ -535,11 +535,10 @@ void Source::View::replace_all(const std::string &replacement) { void Source::View::paste() { std::string text=Gtk::Clipboard::get()->wait_for_text(); - //remove carriage returns (which leads to crash) + //replace carriage returns (which leads to crash) with newlines for(auto it=text.begin();it!=text.end();it++) { - if(*it=='\r') { - it=text.erase(it); - } + if(*it=='\r') + text.replace(it, it+1, "\n"); } auto line=get_line_before();