summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2000-11-27 17:18:58 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2000-11-27 17:18:58 +0000
commitcd3577ef66784ba43f32069efe9e80c907d4016e (patch)
treecb414496f0406a827ad4743fec39e0947cc0a5c3 /src
parent95bc994779a18434cc8a20f25c60c27b9650dffb (diff)
downloadirssi-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.c5
-rw-r--r--src/fe-text/gui-windows.c1
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);