diff options
author | clive <clive@FreeBSD.org> | 2003-08-05 21:49:15 +0800 |
---|---|---|
committer | clive <clive@FreeBSD.org> | 2003-08-05 21:49:15 +0800 |
commit | 765774e69956e52451d2a1f4251af784e4bde9d6 (patch) | |
tree | 2fa80a37b4403c3d39a406fb7d17850718288dc1 /chinese | |
parent | 78b25054fb0fca46ba2c665a5b33313597b1bd26 (diff) | |
download | freebsd-ports-gnome-765774e69956e52451d2a1f4251af784e4bde9d6.tar.gz freebsd-ports-gnome-765774e69956e52451d2a1f4251af784e4bde9d6.tar.zst freebsd-ports-gnome-765774e69956e52451d2a1f4251af784e4bde9d6.zip |
Improve multibyte character (big5 actually) display ability of input buffer.
Inspired by: ports/50374
Diffstat (limited to 'chinese')
-rw-r--r-- | chinese/bitchx/files/patch-source::input.c | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/chinese/bitchx/files/patch-source::input.c b/chinese/bitchx/files/patch-source::input.c index c49d6b4e71d9..62e38c1d5261 100644 --- a/chinese/bitchx/files/patch-source::input.c +++ b/chinese/bitchx/files/patch-source::input.c @@ -1,5 +1,5 @@ ---- source/input.c~ Sun Jul 7 04:33:05 2002 -+++ source/input.c Mon Jan 8 01:09:28 2001 +--- source/input.c~ Tue Aug 5 20:43:47 2003 ++++ source/input.c Tue Aug 5 20:43:49 2003 @@ -94,6 +94,7 @@ #define MIN_CHAR INPUT_BUFFER[MIN_POS] #define PREV_CHAR INPUT_BUFFER[THIS_POS-1] @@ -155,3 +155,44 @@ update_input(UPDATE_JUST_CURSOR); } +@@ -791,11 +865,17 @@ + THIS_CHAR = key; + NEXT_CHAR = 0; + ADD_TO_INPUT(ptr); +- if (termfeatures & TERM_CAN_INSERT) +- term_insert(key); ++ if (termfeatures & TERM_CAN_INSERT) { ++ if ( check_my_role(THIS_POS) == MY_ROLE_ENG) term_insert(key); ++ else if (check_my_role(THIS_POS) == MY_ROLE_LO) {term_cursor_left(); term_insert(PREV_CHAR); term_insert(key); } ++ if (NEXT_CHAR) ++ display_flag = UPDATE_FROM_CURSOR; ++ } + else + { +- term_putchar(key); ++ if ( check_my_role(THIS_POS) == MY_ROLE_ENG) term_putchar(key); ++ else if (check_my_role(THIS_POS) == MY_ROLE_LO) {term_cursor_left(); term_putchar(PREV_CHAR); term_putchar(key);} ++ + if (NEXT_CHAR) + display_flag = UPDATE_FROM_CURSOR; + else +@@ -806,7 +886,8 @@ + { + THIS_CHAR = key; + NEXT_CHAR = 0; +- term_putchar(key); ++ if ( check_my_role(THIS_POS) == MY_ROLE_ENG) term_putchar(key); ++ else if (check_my_role(THIS_POS) == MY_ROLE_LO) {term_cursor_left(); term_putchar(PREV_CHAR); term_putchar(key);} + } + } + else +@@ -814,7 +895,8 @@ + if (THIS_CHAR == 0) + NEXT_CHAR = 0; + THIS_CHAR = key; +- term_putchar(key); ++ if ( check_my_role(THIS_POS) == MY_ROLE_ENG) term_putchar(key); ++ else if (check_my_role(THIS_POS) == MY_ROLE_LO) {term_cursor_left(); term_putchar(PREV_CHAR); term_putchar(key);} + } + + if (!THIS_POS) |