/* Remove one line from buffer. */ void textbuffer_view_remove_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line) { GSList *tmp; unsigned char update_counter; int linecount; g_return_if_fail(view != NULL); g_return_if_fail(line != NULL); signal_emit("gui textbuffer line removed", 3, view, line, line->prev); linecount = view_get_linecount(view, line); update_counter = view->cache->update_counter+1; view_remove_line(view, line, linecount); view_remove_cache(view, line, update_counter); for (tmp = view->siblings; tmp != NULL; tmp = tmp->next) { TEXT_BUFFER_VIEW_REC *rec = tmp->data; view_remove_line(rec, line, linecount); view_remove_cache(rec, line, update_counter); } textbuffer_remove(view->buffer, line); }
static void view_update_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line, unsigned char update_counter) { view_remove_cache(view, line, update_counter); if (view->buffer->cur_line == line) view->cache->last_linecount = view_get_linecount(view, line); }