The attached patch fixes the issue for me.
--
Loïc Minier
#! /bin/sh /usr/share/dpatch/dpatch-run
## 45xterm-end-key-remap.dpatch by Loic Minier <[EMAIL PROTECTED]>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.
@DPATCH@
diff -urNad screen-4.0.3~/termcap.c screen-4.0.3/termcap.c
--- screen-4.0.3~/termcap.c 2008-06-05 12:24:28.000000000 +0200
+++ screen-4.0.3/termcap.c 2008-06-05 12:24:59.000000000 +0200
@@ -548,8 +548,6 @@
else
break;
}
- if (n < KMAP_KEYS)
- domap = 1;
if (map == 0 && domap)
return 0;
if (map && !domap)
diff -u screen-4.0.3/debian/changelog screen-4.0.3/debian/changelog
--- screen-4.0.3/debian/changelog
+++ screen-4.0.3/debian/changelog
@@ -1,3 +1,11 @@
+screen (4.0.3-10.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * New dpatch, 45xterm-end-key-remap, reverts setting of domap in termcap.c
+ when n < KMAP_KEYS as it broke the <end> key for screen in xterm.
+
+ -- Loic Minier <[EMAIL PROTECTED]> Thu, 05 Jun 2008 12:26:14 +0200
+
screen (4.0.3-10) unstable; urgency=low
* The "Whoa, this feels like a time machine" release.
diff -u screen-4.0.3/debian/patches/00list screen-4.0.3/debian/patches/00list
--- screen-4.0.3/debian/patches/00list
+++ screen-4.0.3/debian/patches/00list
@@ -30,6 +30,7 @@
28blankerprg_callsemantics
30fix_fsf_address
40cjk_eastasian
+45xterm-end-key-remap
# 50-99: experimental patches, new features etc.
50EXP_tilde_expansion
51EXP_session_creation_time
only in patch2:
unchanged:
--- screen-4.0.3.orig/debian/patches/45xterm-end-key-remap.dpatch
+++ screen-4.0.3/debian/patches/45xterm-end-key-remap.dpatch
@@ -0,0 +1,19 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 45xterm-end-key-remap.dpatch by Loic Minier <[EMAIL PROTECTED]>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
[EMAIL PROTECTED]@
+diff -urNad screen-4.0.3~/termcap.c screen-4.0.3/termcap.c
+--- screen-4.0.3~/termcap.c 2008-06-05 12:24:28.000000000 +0200
++++ screen-4.0.3/termcap.c 2008-06-05 12:24:59.000000000 +0200
+@@ -548,8 +548,6 @@
+ else
+ break;
+ }
+- if (n < KMAP_KEYS)
+- domap = 1;
+ if (map == 0 && domap)
+ return 0;
+ if (map && !domap)