blob: 504dfc42dcfec14e5b0760ae06aa1363e34f24b8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
Author: Kenta Murata (mrkn) <mrkn@ruby-lang.org>
Reviewed-By: Nobuhiro Iwamatsu <iwamatsu@debian.org>
Description: screen outputs screen "ÿ" after a connected character.
This is a character without the need.
This happens in UTF-8 environment.
Before : screen$ ruby1.9.1 -e 'puts "\u304b\u3099.."'
がÿ...
patch applied : screen $ ruby1.9.1 -e 'puts "\u304b\u3099.."'
が..
Origin: https://d.hatena.ne.jp/mrkn/20101014/fix_screen_utf8_nfd_bug
Bugs-Debian: https://bugs.debian.org/600246
Bugs-Debian: https://bugs.debian.org/677512
Index: screen/ansi.c
===================================================================
--- screen.orig/ansi.c 2012-03-20 22:15:02.000000000 +0100
+++ screen/ansi.c 2012-03-20 22:41:45.000000000 +0100
@@ -725,6 +725,10 @@
LPutChar(&curr->w_layer, &omc, ox, oy);
LGotoPos(&curr->w_layer, curr->w_x, curr->w_y);
}
+ if (curr->w_mbcs)
+ {
+ curr->w_rend.mbcs = curr->w_mbcs = 0;
+ }
break;
}
font = curr->w_rend.font;
Index: screen/display.c
===================================================================
--- screen.orig/display.c 2012-03-20 22:41:28.000000000 +0100
+++ screen/display.c 2012-03-20 22:41:45.000000000 +0100
@@ -603,7 +603,7 @@
D_x += D_AM ? 1 : -1;
D_mbcs = 0;
}
- else if (utf8_isdouble(c))
+ else if (utf8_isdouble(c) || (c >= 0xd800 && c < 0xe000))
{
D_mbcs = c;
D_x++;
|