From 0488197b6abf1d5f23793fc68f60051ed95eba0a Mon Sep 17 00:00:00 2001 From: "Vanilla I. Shu" Date: Mon, 25 Sep 2006 08:29:18 +0000 Subject: 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 --- irc/irssi/Makefile | 2 +- irc/irssi/files/patch-topic_length | 41 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 irc/irssi/files/patch-topic_length (limited to 'irc/irssi') diff --git a/irc/irssi/Makefile b/irc/irssi/Makefile index 5f19320e4efd..9401141e9f44 100644 --- a/irc/irssi/Makefile +++ b/irc/irssi/Makefile @@ -7,7 +7,7 @@ PORTNAME= irssi PORTVERSION= 0.8.10 -PORTREVISION?= 2 +PORTREVISION?= 3 CATEGORIES?= irc MASTER_SITES= http://mirror.irssi.org/ diff --git a/irc/irssi/files/patch-topic_length b/irc/irssi/files/patch-topic_length new file mode 100644 index 000000000000..22d37855dfae --- /dev/null +++ b/irc/irssi/files/patch-topic_length @@ -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); -- cgit v1.2.3