1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-31 10:46:16 +00:00

When irssi displays a overlong topic with wide (width > 1) character on the

display margin, it will truncate AFTER that character. That is, the whole wide
character is outputted and mess up the screen.
This patch fixes the problem by truncating BEFORE wide characters that fall
on the display margin.

PR:		ports/103597
Submitted by:	Yi-Hsuan Hsin <mhsin_at_mhsin_dot_org>
This commit is contained in:
Vanilla I. Shu 2006-09-25 08:29:18 +00:00
parent 42ae81dcca
commit 0488197b6a
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=173780
2 changed files with 42 additions and 1 deletions

View File

@ -7,7 +7,7 @@
PORTNAME= irssi
PORTVERSION= 0.8.10
PORTREVISION?= 2
PORTREVISION?= 3
CATEGORIES?= irc
MASTER_SITES= http://mirror.irssi.org/

View File

@ -0,0 +1,41 @@
--- src/fe-common/core/formats.c.orig Fri Dec 9 01:32:44 2005
+++ src/fe-common/core/formats.c Mon Sep 25 06:15:26 2006
@@ -376,6 +376,7 @@
GString *tmp;
const char *start;
#ifdef HAVE_GLIB2
+ const char *oldstr;
gboolean utf8;
#endif
g_return_val_if_fail(str != NULL, 0);
@@ -404,7 +405,10 @@
}
#ifdef HAVE_GLIB2
+ oldstr = str;
len -= advance(&str, utf8);
+ if(len < 0)
+ str = oldstr;
#else
len--;
str++;
--- src/fe-text/statusbar.c.orig Fri Dec 9 01:32:46 2005
+++ src/fe-text/statusbar.c Mon Sep 25 10:15:25 2006
@@ -732,7 +732,8 @@
/* they're forcing us smaller than minimum size.. */
len = format_real_length(tmpstr, item->size);
tmpstr[len] = '\0';
- } else {
+ }
+
/* make sure the str is big enough to fill the
requested size, so it won't corrupt screen */
len = format_get_length(tmpstr);
@@ -747,7 +748,6 @@
g_free(fill);
g_free(tmpstr);
tmpstr = tmpstr2;
- }
}
tmpstr2 = update_statusbar_bg(tmpstr, item->bar->color);