aboutsummaryrefslogtreecommitdiffstats
path: root/chinese/irssi
diff options
context:
space:
mode:
Diffstat (limited to 'chinese/irssi')
-rw-r--r--chinese/irssi/files/patch-src::fe-text::gui-entry.h20
-rw-r--r--chinese/irssi/files/patch-src::fe-text::gui-printtext.c11
-rw-r--r--chinese/irssi/files/patch-src::fe-text::term-terminfo.c35
-rw-r--r--chinese/irssi/files/patch-src::fe-text::textbuffer-view.c18
4 files changed, 64 insertions, 20 deletions
diff --git a/chinese/irssi/files/patch-src::fe-text::gui-entry.h b/chinese/irssi/files/patch-src::fe-text::gui-entry.h
deleted file mode 100644
index 6bdd61b4737b..000000000000
--- a/chinese/irssi/files/patch-src::fe-text::gui-entry.h
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/fe-text/gui-entry.h.orig Mon Oct 20 03:10:02 2003
-+++ src/fe-text/gui-entry.h Sun Dec 7 16:34:09 2003
-@@ -28,14 +28,14 @@
- void gui_entry_move(GUI_ENTRY_REC *entry, int xpos, int ypos, int width);
- void gui_entry_set_active(GUI_ENTRY_REC *entry);
-
--void gui_entry_set_prompt(GUI_ENTRY_REC *entry, const char *str);
-+void gui_entry_set_prompt(GUI_ENTRY_REC *entry, const unsigned char *str);
- void gui_entry_set_hidden(GUI_ENTRY_REC *entry, int hidden);
- void gui_entry_set_utf8(GUI_ENTRY_REC *entry, int utf8);
-
--void gui_entry_set_text(GUI_ENTRY_REC *entry, const char *str);
-+void gui_entry_set_text(GUI_ENTRY_REC *entry, const unsigned char *str);
- char *gui_entry_get_text(GUI_ENTRY_REC *entry);
-
--void gui_entry_insert_text(GUI_ENTRY_REC *entry, const char *str);
-+void gui_entry_insert_text(GUI_ENTRY_REC *entry, const unsigned char *str);
- void gui_entry_insert_char(GUI_ENTRY_REC *entry, unichar chr);
-
- char *gui_entry_get_cutbuffer(GUI_ENTRY_REC *entry);
diff --git a/chinese/irssi/files/patch-src::fe-text::gui-printtext.c b/chinese/irssi/files/patch-src::fe-text::gui-printtext.c
new file mode 100644
index 000000000000..7833a289a463
--- /dev/null
+++ b/chinese/irssi/files/patch-src::fe-text::gui-printtext.c
@@ -0,0 +1,11 @@
+--- src/fe-text/gui-printtext.c.orig Mon Dec 30 00:10:02 2002
++++ src/fe-text/gui-printtext.c Sun Dec 14 01:54:28 2003
+@@ -255,7 +255,7 @@
+ if (flags & GUI_PRINT_FLAG_CLRTOEOL)
+ term_clrtoeol(root_window);
+ term_addstr(root_window, str);
+- next_xpos += strlen(str);
++ next_xpos += strlen(str); // FIXME utf8 or big5
+ return;
+ }
+
diff --git a/chinese/irssi/files/patch-src::fe-text::term-terminfo.c b/chinese/irssi/files/patch-src::fe-text::term-terminfo.c
new file mode 100644
index 000000000000..03780431111b
--- /dev/null
+++ b/chinese/irssi/files/patch-src::fe-text::term-terminfo.c
@@ -0,0 +1,35 @@
+--- src/fe-text/term-terminfo.c.orig Mon Oct 20 03:10:02 2003
++++ src/fe-text/term-terminfo.c Sun Dec 14 01:54:28 2003
+@@ -421,16 +421,21 @@
+ if (vcy == term_height-1 && vcx == term_width-1)
+ return; /* last char in screen */
+
+- term_printed_text(1);
+ switch (term_type) {
+ case TERM_TYPE_UTF8:
++ term_printed_text(utf8_width(chr));
+ term_addch_utf8(window, chr);
+ break;
+ case TERM_TYPE_BIG5:
+- putc((chr >> 8) & 0xff, window->term->out);
++ if(chr>0xff) {
++ term_printed_text(2);
++ putc((chr >> 8) & 0xff, window->term->out);
++ } else
++ term_printed_text(1);
+ putc((chr & 0xff), window->term->out);
+ break;
+ default:
++ term_printed_text(1);
+ putc(chr, window->term->out);
+ break;
+ }
+@@ -443,7 +448,7 @@
+ if (term_detached) return;
+
+ if (vcmove) term_move_real();
+- len = strlen(str);
++ len = strlen(str); // FIXME utf8 or big5
+ term_printed_text(len);
+
+ if (vcy != term_height || vcx != 0)
diff --git a/chinese/irssi/files/patch-src::fe-text::textbuffer-view.c b/chinese/irssi/files/patch-src::fe-text::textbuffer-view.c
new file mode 100644
index 000000000000..d3e02fc8c355
--- /dev/null
+++ b/chinese/irssi/files/patch-src::fe-text::textbuffer-view.c
@@ -0,0 +1,18 @@
+--- src/fe-text/textbuffer-view.c.orig Sun Oct 26 13:45:02 2003
++++ src/fe-text/textbuffer-view.c Sun Dec 14 01:54:28 2003
+@@ -435,7 +435,14 @@
+ unichar chr = get_utf8_char(&end, 6);
+ char_width = utf8_width(chr);
+ } else {
+- char_width = 1;
++ if(term_type==TERM_TYPE_BIG5) {
++ if(is_big5(end[0],end[1]))
++ char_width=2;
++ else
++ char_width=1;
++ } else
++ char_width = 1;
++ end+=char_width-1;
+ }
+
+ xpos += char_width;