diff options
author | Timo Sirainen <cras@irssi.org> | 2000-11-27 17:18:58 +0000 |
---|---|---|
committer | cras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2000-11-27 17:18:58 +0000 |
commit | cd3577ef66784ba43f32069efe9e80c907d4016e (patch) | |
tree | cb414496f0406a827ad4743fec39e0947cc0a5c3 /src | |
parent | 95bc994779a18434cc8a20f25c60c27b9650dffb (diff) | |
download | irssi-cd3577ef66784ba43f32069efe9e80c907d4016e.zip |
fixed text buffer crash when scrollback got full
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@893 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src')
-rw-r--r-- | src/fe-text/gui-printtext.c | 5 | ||||
-rw-r--r-- | src/fe-text/gui-windows.c | 1 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/fe-text/gui-printtext.c b/src/fe-text/gui-printtext.c index 3e1930d6..c5abf5b6 100644 --- a/src/fe-text/gui-printtext.c +++ b/src/fe-text/gui-printtext.c @@ -55,6 +55,7 @@ static LINE_REC *create_line(GUI_WINDOW_REC *gui, int level) rec->time = time(NULL); mark_temp_eol(gui->cur_text); + gui->cur_text->lines++; gui->last_color = -1; gui->last_flags = 0; @@ -154,6 +155,7 @@ void gui_window_line_text_free(GUI_WINDOW_REC *gui, LINE_REC *line) } if ((unsigned char) *text & 0x80) text++; + continue; } text++; @@ -209,7 +211,7 @@ static void remove_old_lines(WINDOW_REC *window) gui = WINDOW_GUI(window); - old_time = time(NULL)-(scrollback_hours*3600); + old_time = time(NULL)-(scrollback_hours*3600)+1; if (scrollback_lines > 0) { /* remove lines by line count */ while (window->lines > scrollback_lines) { @@ -358,7 +360,6 @@ static void gui_printtext(WINDOW_REC *window, void *fgcolor, void *bgcolor, line = create_line(gui, 0); gui_window_newline(gui, visible && gui->temp_line == NULL); - gui->cur_text->lines++; gui->last_subline = 0; } else { line = gui->temp_line != NULL ? gui->temp_line : diff --git a/src/fe-text/gui-windows.c b/src/fe-text/gui-windows.c index 386484d5..94333620 100644 --- a/src/fe-text/gui-windows.c +++ b/src/fe-text/gui-windows.c @@ -926,6 +926,7 @@ static char *line_read_format(unsigned const char **text) continue; } else if (**text & 0x80) (*text)++; + continue; } g_string_append_c(str, (char) **text); |