summaryrefslogtreecommitdiff
path: root/chinese/irssi/files/patch-src::fe-text::gui-entry.c
diff options
context:
space:
mode:
Diffstat (limited to 'chinese/irssi/files/patch-src::fe-text::gui-entry.c')
-rw-r--r--chinese/irssi/files/patch-src::fe-text::gui-entry.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/chinese/irssi/files/patch-src::fe-text::gui-entry.c b/chinese/irssi/files/patch-src::fe-text::gui-entry.c
index 246cf32f46e5..e40b933da3b8 100644
--- a/chinese/irssi/files/patch-src::fe-text::gui-entry.c
+++ b/chinese/irssi/files/patch-src::fe-text::gui-entry.c
@@ -1,5 +1,5 @@
--- src/fe-text/gui-entry.c.orig Tue Oct 15 02:45:08 2002
-+++ src/fe-text/gui-entry.c Sat Nov 23 17:28:31 2002
++++ src/fe-text/gui-entry.c Sun Dec 29 19:18:05 2002
@@ -68,6 +68,27 @@
g_free(entry);
}
@@ -64,8 +64,20 @@
{
unichar chr;
int i, len;
-@@ -343,11 +366,18 @@
+@@ -341,13 +364,30 @@
+ return buf;
+ }
++void gui_entry_erase_to(GUI_ENTRY_REC *entry, int pos, int update_cutbuffer)
++{
++ int newpos, size = 0;
++
++ g_return_if_fail(entry != NULL);
++ for(newpos = gui_entry_get_pos(entry); newpos > pos; size ++)
++ newpos = _fix_big5_pos(entry->text, newpos - 1, -1);
++ gui_entry_erase(entry, size, update_cutbuffer);
++}
++
void gui_entry_erase(GUI_ENTRY_REC *entry, int size, int update_cutbuffer)
{
+ int newpos;
@@ -76,14 +88,14 @@
return;
+ /* recount the erase size with big5 charsets */
-+ for (newpos = entry->pos; newpos >= 0 && size > 0; size--)
++ for (newpos = entry->pos; newpos > 0 && size > 0; size--)
+ newpos = _fix_big5_pos(entry->text, newpos-1, -1);
+ size = entry->pos - newpos;
+
if (update_cutbuffer) {
/* put erased text to cutbuffer */
if (entry->cutbuffer == NULL || entry->cutbuffer_len < size) {
-@@ -471,10 +501,24 @@
+@@ -471,10 +511,24 @@
void gui_entry_move_pos(GUI_ENTRY_REC *entry, int pos)
{