summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog2
-rw-r--r--debian/patches/52fix_screen_utf8_nfd.patch41
-rw-r--r--debian/patches/series1
3 files changed, 44 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 1562ab3..84a8c6b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -17,6 +17,8 @@ screen (4.1.0~20110819git450e8f3-2) UNRELEASED; urgency=low
- debian/patches/58-show-encoding-hardstatus.patch (Closes: #533498;
the remaining part of #533498 has been fixed upstream, see
https://savannah.gnu.org/bugs/index.php?26401)
+ * Add patch 52fix_screen_utf8_nfd by Nobuhiro Iwamatsu to fix screen
+ outputing "ÿ" after a connected character. (Closes: #600246)
[ Moritz Muehlenhoff ]
* Enable hardening build flags (Closes: #656513)
diff --git a/debian/patches/52fix_screen_utf8_nfd.patch b/debian/patches/52fix_screen_utf8_nfd.patch
new file mode 100644
index 0000000..c570789
--- /dev/null
+++ b/debian/patches/52fix_screen_utf8_nfd.patch
@@ -0,0 +1,41 @@
+## 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 2011-10-06 01:30:53.000000000 +0200
++++ screen/ansi.c 2012-02-20 03:51:02.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-02-20 03:50:26.000000000 +0100
++++ screen/display.c 2012-02-20 03:51:02.000000000 +0100
+@@ -604,7 +604,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++;
diff --git a/debian/patches/series b/debian/patches/series
index 83d6414..ab09f30 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -20,6 +20,7 @@
49long-usernames.patch
50increase-max-TERM-length.patch
51fix-utf8-status-padding-bug.patch
+52fix_screen_utf8_nfd.patch
58-show-encoding-hardstatus.patch
# 80-99: experimental patches, new features etc.
80EXP_session_creation_time.patch