diff mcabber/src/screen.c @ 1486:f83a51eaa5ed

Fix multiline output in /buffer save
author Mikael Berthe <mikael@lilotux.net>
date Sun, 20 Apr 2008 16:56:43 +0200
parents 0121b6f3047c
children f61ed2466f7c
line wrap: on
line diff
--- a/mcabber/src/screen.c	Sun Apr 20 16:06:37 2008 +0200
+++ b/mcabber/src/screen.c	Sun Apr 20 16:56:43 2008 +0200
@@ -831,19 +831,19 @@
   6
 };
 
-static const char *gettprefix()
+static const char *gettprefix(void)
 {
   guint n = settings_opt_get_int("time_prefix");
   return timeprefixes[(n < 3 ? n : 0)];
 }
 
-static const char *getspectprefix()
+static const char *getspectprefix(void)
 {
   guint n = settings_opt_get_int("time_prefix");
   return spectimeprefixes[(n < 3 ? n : 0)];
 }
 
-static unsigned getprefixwidth()
+guint getprefixwidth(void)
 {
   guint n = settings_opt_get_int("time_prefix");
   return timepreflengths[(n < 3 ? n : 0)];
@@ -1052,7 +1052,8 @@
 static void scr_UpdateWindow(winbuf *win_entry)
 {
   int n;
-  int width, prefixwidth;
+  int width;
+  guint prefixwidth;
   char pref[96];
   hbb_line **lines, *line;
   GList *hbuf_head;
@@ -1060,6 +1061,7 @@
 
   width = getmaxx(win_entry->win);
   prefixwidth = getprefixwidth();
+  prefixwidth = MIN(prefixwidth, sizeof pref);
 
   // Should the window be empty?
   if (win_entry->bd->cleared) {
@@ -1112,7 +1114,7 @@
         wattrset(win_entry->win, get_color(color));
 
       // Generate the prefix area and display it
-      scr_line_prefix(line, pref, sizeof pref);
+      scr_line_prefix(line, pref, prefixwidth);
       wprintw(win_entry->win, pref);
 
       // Make sure we are at the right position