summaryrefslogtreecommitdiffstats
path: root/debian/patches/52fix_screen_utf8_nfd.patch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 02:20:21 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 02:20:21 +0000
commitef3904423d3301d87b4b499b7e5feb359d622405 (patch)
tree981032c10096a70b0cb95ea74de48492f9f08251 /debian/patches/52fix_screen_utf8_nfd.patch
parentAdding upstream version 4.6.2. (diff)
downloadscreen-debian.tar.xz
screen-debian.zip
Adding debian version 4.6.2-3+deb10u1.debian/4.6.2-3+deb10u1debian
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches/52fix_screen_utf8_nfd.patch')
-rw-r--r--debian/patches/52fix_screen_utf8_nfd.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/debian/patches/52fix_screen_utf8_nfd.patch b/debian/patches/52fix_screen_utf8_nfd.patch
new file mode 100644
index 0000000..504dfc4
--- /dev/null
+++ b/debian/patches/52fix_screen_utf8_nfd.patch
@@ -0,0 +1,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++;