mirror of
git://slackware.nl/current.git
synced 2024-12-28 09:59:53 +01:00
42 lines
1.5 KiB
Diff
42 lines
1.5 KiB
Diff
|
## 52fix_screen_utf8_nfd.dpatch by Nobuhiro Iwamatsu <iwamatsu@debian.org>
|
||
|
##
|
||
|
## DP: screen outputs screen "ÿ" after a connected character.
|
||
|
## DP: This is a character without the need.
|
||
|
## DP: This happens in UTF-8 environment.
|
||
|
## DP: Before : screen$ ruby1.9.1 -e 'puts "\u304b\u3099.."'
|
||
|
## DP: がÿ...
|
||
|
## DP: patch applied : screen $ ruby1.9.1 -e 'puts "\u304b\u3099.."'
|
||
|
## DP: が..
|
||
|
## DP: Report from http://d.hatena.ne.jp/mrkn/20101014/fix_screen_utf8_nfd_bug
|
||
|
## DP: Copyright Kenta Murata (mrkn) <mrkn@ruby-lang.org>
|
||
|
## DP: Modified by Nobuhiro Iwamatsu <iwamatsu@debian.org>
|
||
|
|
||
|
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++;
|