diff --git a/src/source.cc b/src/source.cc index 4b2a816..41995f6 100644 --- a/src/source.cc +++ b/src/source.cc @@ -1021,18 +1021,23 @@ long Source::View::open_close_bracket_count(Gtk::TextIter iter, unsigned int lef long bracket_count=0; long curly_count=0; + Gtk::TextIter previous_iter; do { - if(*iter==left_bracket && is_code_iter(iter)) - bracket_count++; - else if(*iter==right_bracket && is_code_iter(iter)) - bracket_count--; - else if(*iter=='{' && is_code_iter(iter)) - curly_count++; - else if(*iter=='}' && is_code_iter(iter)) - curly_count--; - - if(curly_count>0) - break; + previous_iter=iter; + previous_iter.backward_char(); + if(!(*previous_iter=='\'' && is_code_iter(previous_iter))) { + if(*iter==left_bracket && is_code_iter(iter)) + bracket_count++; + else if(*iter==right_bracket && is_code_iter(iter)) + bracket_count--; + else if(*iter=='{' && is_code_iter(iter)) + curly_count++; + else if(*iter=='}' && is_code_iter(iter)) + curly_count--; + + if(curly_count>0) + break; + } } while(iter.backward_char()); iter=iter_stored;