diff --git a/src/source.cc b/src/source.cc index 94c791c..35da2c2 100644 --- a/src/source.cc +++ b/src/source.cc @@ -1347,9 +1347,9 @@ bool Source::View::on_key_press_event(GdkEventKey* key) { break; if(iter.starts_line()) empty_line=true; - if(empty_line && !iter.ends_line() && *iter!=' ' && *iter!='\t') + if(empty_line && !iter.ends_line() && *iter!='\n' && *iter!=' ' && *iter!='\t') empty_line=false; - if(!text_found && !iter.ends_line() && *iter!=' ' && *iter!='\t') + if(!text_found && !iter.ends_line() && *iter!='\n' && *iter!=' ' && *iter!='\t') text_found=true; if(empty_line && text_found && iter.ends_line()) break; @@ -1375,9 +1375,9 @@ bool Source::View::on_key_press_event(GdkEventKey* key) { break; if(iter.ends_line()) empty_line=true; - if(empty_line && !iter.ends_line() && *iter!=' ' && *iter!='\t') + if(empty_line && !iter.ends_line() && *iter!='\n' && *iter!=' ' && *iter!='\t') empty_line=false; - if(!text_found && !iter.ends_line() && *iter!=' ' && *iter!='\t') + if(!text_found && !iter.ends_line() && *iter!='\n' && *iter!=' ' && *iter!='\t') text_found=true; if(empty_line && text_found && iter.starts_line()) break; @@ -1386,6 +1386,8 @@ bool Source::View::on_key_press_event(GdkEventKey* key) { if(empty_line) { iter=get_iter_at_line_end(iter.get_line()); iter.forward_char(); + if(!iter.starts_line()) // For CR+LF + iter.forward_char(); } if((key->state&GDK_SHIFT_MASK)>0) get_buffer()->select_range(iter, selection_start_iter); diff --git a/src/source_diff.cc b/src/source_diff.cc index ee5a765..848ae98 100644 --- a/src/source_diff.cc +++ b/src/source_diff.cc @@ -289,10 +289,8 @@ Gtk::TextIter Source::DiffView::get_iter_at_line_end(int line_nr) { else if(line_nr+1get_line_count()) { auto iter=get_buffer()->get_iter_at_line(line_nr+1); iter.backward_char(); - auto previous_iter=iter; - previous_iter.backward_char(); - if(*previous_iter=='\r') - return previous_iter; + if(!iter.ends_line()) // for CR+LF + iter.backward_char(); return iter; } else {