fix a crash when trying to append to a NULL line

reported by @vague666
This commit is contained in:
ailin-nemui 2018-03-17 13:36:38 +01:00
parent 65a139aa9e
commit c7ca8102c0
2 changed files with 11 additions and 1 deletions

View File

@ -120,12 +120,19 @@ void gui_printtext_internal(int xpos, int ypos, const char *str)
next_xpos = next_ypos = -1;
}
static void view_add_eol(TEXT_BUFFER_VIEW_REC *view, LINE_REC **line);
void gui_printtext_after_time(TEXT_DEST_REC *dest, LINE_REC *prev, const char *str, time_t time)
{
GUI_WINDOW_REC *gui;
gui = WINDOW_GUI(dest->window);
if (prev == NULL && !gui->view->buffer->last_eol) {
/* we have an unfinished line in the buffer still */
view_add_eol(gui->view, &gui->insert_after);
}
gui->use_insert_after = TRUE;
gui->insert_after = prev;
gui->insert_after_time = time;

View File

@ -913,11 +913,14 @@ void textbuffer_view_resize(TEXT_BUFFER_VIEW_REC *view, int width, int height)
} else if (view->startline == view->bottom_startline &&
view->subline > view->bottom_subline) {
view->subline = view->bottom_subline;
} else {
} else if (view->startline != NULL) {
/* make sure the subline is still in allowed range */
linecount = view_get_linecount(view, view->startline);
if (view->subline > linecount)
view->subline = linecount;
} else {
/* we don't have a startline. still under construction? */
view->subline = 0;
}
textbuffer_view_init_ypos(view);