ports/101126: [PATCH] chinese/zh-irssi: CJK flavour UTF-8 line breaking hack

Yi-Hsuan Hsin mhsin at mhsin.org
Mon Jul 31 21:10:15 UTC 2006


>Number:         101126
>Category:       ports
>Synopsis:       [PATCH] chinese/zh-irssi: CJK flavour UTF-8 line breaking hack
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 31 21:10:13 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Yi-Hsuan Hsin
>Release:        FreeBSD 4.10-RELEASE-p16 i386
>Organization:
NTU CSIE
>Environment:
System: FreeBSD a.mhsin.org 4.10-RELEASE-p16 FreeBSD 4.10-RELEASE-p16 #13: Fri Jul  1 03:06:45 CST
>Description:
When irc/irssi runs in UTF-8 mode (term_charset = utf-8), it breaks overlong
strings using SPACE-based algorithm, which is not suitable in CJK context.
CJK flavour ling breaking breaks not only at spaces but also before/after Han
characters. An ideal solution is to implement UAX#14 (
http://www.unicode.org/reports/tr14/ ). But a quick and reasonable approach is
to allow breaking before/after any "wide" (utf8_width > 1) character. The
following patch does this quick hack.

Added file(s):
- files/patch-utf8_break

Port maintainer (vanilla at FreeBSD.org) is cc'd.

Generated with FreeBSD Port Tools 0.77
>How-To-Repeat:

Ex: Given an overlong string ("ID" denotes ideograms):

    |<--    screen width    -->|
    A very long string IDIDIDIDIDIDID

Current irssi will breaks like this:

    |<--    screen width    -->|
    A very long string 
    IDIDIDIDIDIDID

But CJK users want this more likely:

    |<--    screen width    -->|
    A very long string IDIDIDID
    IDIDID

>Fix:

--- zh-irssi-0.8.10_2.patch begins here ---
diff -ruN --exclude=CVS /usr/ports/chinese/irssi.orig/Makefile /usr/ports/chinese/irssi/Makefile
--- /usr/ports/chinese/irssi.orig/Makefile	Mon Jul 31 08:39:29 2006
+++ /usr/ports/chinese/irssi/Makefile	Mon Jul 31 08:40:18 2006
@@ -13,6 +13,7 @@
 
 MASTERDIR=	${.CURDIR}/../../irc/irssi
 
-EXTRA_PATCHES=	${.CURDIR}/files/patch-irssi.conf
+EXTRA_PATCHES=	${.CURDIR}/files/patch-irssi.conf \
+		${.CURDIR}/files/patch-utf8_break
 
 .include "${MASTERDIR}/Makefile"
diff -ruN --exclude=CVS /usr/ports/chinese/irssi.orig/files/patch-utf8_break /usr/ports/chinese/irssi/files/patch-utf8_break
--- /usr/ports/chinese/irssi.orig/files/patch-utf8_break	Thu Jan  1 08:00:00 1970
+++ /usr/ports/chinese/irssi/files/patch-utf8_break	Mon Jul 31 08:39:57 2006
@@ -0,0 +1,11 @@
+--- src/fe-text/textbuffer-view.c.orig	Mon Jul 31 06:28:09 2006
++++ src/fe-text/textbuffer-view.c	Mon Jul 31 06:28:19 2006
+@@ -255,7 +255,7 @@
+ 			continue;
+ 		}
+ 
+-		if (!view->utf8 && char_len > 1) {
++		if (char_len > 1) {
+ 			last_space = xpos;
+ 			last_space_ptr = next_ptr;
+ 			last_color = color;
--- zh-irssi-0.8.10_2.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list