summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2002-02-16 10:11:00 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2002-02-16 10:11:00 +0000
commit82be2070e2d48b9e26f9203d582fbd043b81b949 (patch)
tree97cabe05b378bf3f93001cf1bbab4173cff845ce
parent348a97db7c43593930b5fa17e5d9aba47ed4f75d (diff)
downloadirssi-82be2070e2d48b9e26f9203d582fbd043b81b949.zip
Cutbuffer should be cleared when ^U is used in empty line (or in general, 0
chars is erased) git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2471 dbcabf3a-b0e7-0310-adc4-f8d773084564
-rw-r--r--src/fe-text/gui-entry.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/fe-text/gui-entry.c b/src/fe-text/gui-entry.c
index fe2bf89b..1148d076 100644
--- a/src/fe-text/gui-entry.c
+++ b/src/fe-text/gui-entry.c
@@ -337,11 +337,11 @@ void gui_entry_erase(GUI_ENTRY_REC *entry, int size)
{
g_return_if_fail(entry != NULL);
- if (entry->pos < size || size == 0)
+ if (entry->pos < size)
return;
/* put erased text to cutbuffer */
- if (entry->cutbuffer_len < size) {
+ if (entry->cutbuffer == NULL || entry->cutbuffer_len < size) {
g_free(entry->cutbuffer);
entry->cutbuffer = g_new(unichar, size+1);
}
@@ -351,6 +351,11 @@ void gui_entry_erase(GUI_ENTRY_REC *entry, int size)
memcpy(entry->cutbuffer, entry->text + entry->pos - size,
size * sizeof(unichar));
+ if (size == 0) {
+ /* we just wanted to clear the cutbuffer */
+ return;
+ }
+
g_memmove(entry->text + entry->pos - size, entry->text + entry->pos,
(entry->text_len-entry->pos+1) * sizeof(unichar));