aboutsummaryrefslogtreecommitdiff
path: root/chinese/irssi
diff options
context:
space:
mode:
authorVanilla I. Shu <vanilla@FreeBSD.org>2001-10-31 05:14:55 +0000
committerVanilla I. Shu <vanilla@FreeBSD.org>2001-10-31 05:14:55 +0000
commiteef03ce933ed691d1edf809e567912cd498dce45 (patch)
tree7d3694e7d90c8005755389ce7a77ba937ea73b8f /chinese/irssi
parent13a82d91251b197178782be0a2f46e4ac5ef7715 (diff)
downloadports-eef03ce933ed691d1edf809e567912cd498dce45.tar.gz
ports-eef03ce933ed691d1edf809e567912cd498dce45.zip
Add a patch for big5 charset.
PR: mhsin@mhsin.org
Notes
Notes: svn path=/head/; revision=49412
Diffstat (limited to 'chinese/irssi')
-rw-r--r--chinese/irssi/Makefile3
-rw-r--r--chinese/irssi/files/patch-src_fe-text_wrap.c57
2 files changed, 59 insertions, 1 deletions
diff --git a/chinese/irssi/Makefile b/chinese/irssi/Makefile
index 98b24c56bdb2..47c2faab6556 100644
--- a/chinese/irssi/Makefile
+++ b/chinese/irssi/Makefile
@@ -9,7 +9,8 @@ MASTERDIR= ${.CURDIR}/../../irc/irssi
EXTRA_PATCHES= ${.CURDIR}/files/patch-config.h.in \
${.CURDIR}/files/patch-configure.in \
${.CURDIR}/files/patch-src_fe-text_gui-entry.c \
- ${.CURDIR}/files/patch-src_fe-text_screen.h
+ ${.CURDIR}/files/patch-src_fe-text_screen.h \
+ ${.CURDIR}/files/patch-src_fe-text_wrap.c
CATEGORIES= chinese
diff --git a/chinese/irssi/files/patch-src_fe-text_wrap.c b/chinese/irssi/files/patch-src_fe-text_wrap.c
new file mode 100644
index 000000000000..13e58345b896
--- /dev/null
+++ b/chinese/irssi/files/patch-src_fe-text_wrap.c
@@ -0,0 +1,57 @@
+--- src/fe-text/gui-windows.c.orig Mon Oct 29 20:51:52 2001
++++ src/fe-text/gui-windows.c Tue Oct 30 01:48:09 2001
+@@ -289,6 +289,7 @@
+ unsigned char cmd;
+ char *ptr, *last_space_ptr;
+ int xpos, pos, indent_pos, last_space, last_color, color;
++ int w = 0;
+
+ g_return_val_if_fail(line->text != NULL, NULL);
+
+@@ -343,14 +344,14 @@
+ continue;
+ }
+
+- if (xpos == COLS && sub != NULL &&
++ if (xpos >= COLS && sub != NULL &&
+ (last_space <= indent_pos || last_space <= 10)) {
+ /* long word, remove the indentation from this line */
+ xpos -= sub->indent;
+ sub->indent = 0;
+ }
+
+- if (xpos == COLS) {
++ if (xpos >= COLS) {
+ xpos = indent_pos;
+
+ sub = g_new(LINE_CACHE_SUB_REC, 1);
+@@ -376,8 +377,27 @@
+ continue;
+ }
+
+- xpos++;
+- if (*ptr++ == ' ') {
++ if(ptr[1] != '\0' && is_big5(ptr[0], ptr[1]))
++ w = 2;
++ else
++ w = 1;
++
++ xpos+=w;
++ if (*ptr == ' ' ||
++ (xpos <= COLS && w > 1)) {
++ last_space = xpos-1;
++ last_space_ptr = ptr + w;
++ last_color = color;
++ }
++ if(xpos <= COLS)
++ ptr += w;
++ else
++ ptr ++;
++
++ if(w == 1 && xpos <= COLS &&
++ ptr[0] != '\0' && ptr[1] != '\0' &&
++ is_big5(ptr[0], ptr[1]))
++ {
+ last_space = xpos-1;
+ last_space_ptr = ptr;
+ last_color = color;