forked from pool/screen
21 lines
590 B
Diff
21 lines
590 B
Diff
--- encoding.c.orig 2003-09-08 16:25:23.000000000 +0200
|
|
+++ encoding.c 2006-10-23 14:58:14.000000000 +0200
|
|
@@ -995,8 +995,16 @@
|
|
{
|
|
/* full, recycle old entry */
|
|
if (c1 >= 0xd800 && c1 < 0xe000)
|
|
- comb_tofront(root, c1);
|
|
+ comb_tofront(root, c1 - 0xd800);
|
|
i = combchars[root]->prev;
|
|
+ if (c1 == i + 0xd800)
|
|
+ {
|
|
+ /* completely full, can't recycle */
|
|
+ debug("utf8_handle_comp: completely full!\n");
|
|
+ mc->image = '?';
|
|
+ mc->font = 0;
|
|
+ return;
|
|
+ }
|
|
/* FIXME: delete old char from all buffers */
|
|
}
|
|
else if (!combchars[i])
|