From uqs@spoerlein.net  Wed Feb  9 09:58:25 2011
Return-Path: <uqs@spoerlein.net>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6DAFA1065672;
	Wed,  9 Feb 2011 09:58:25 +0000 (UTC)
	(envelope-from uqs@spoerlein.net)
Received: from acme.spoerlein.net (acme.spoerlein.net [IPv6:2a01:4f8:131:23c2::1])
	by mx1.freebsd.org (Postfix) with ESMTP id E3CA98FC21;
	Wed,  9 Feb 2011 09:58:24 +0000 (UTC)
Received: from acme.spoerlein.net (localhost.spoerlein.net [IPv6:::1])
	by acme.spoerlein.net (8.14.4/8.14.4) with ESMTP id p199wNTj000329
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Wed, 9 Feb 2011 10:58:23 +0100 (CET)
	(envelope-from uqs@acme.spoerlein.net)
Received: (from uqs@localhost)
	by acme.spoerlein.net (8.14.4/8.14.4/Submit) id p199wN9R000328;
	Wed, 9 Feb 2011 10:58:23 +0100 (CET)
	(envelope-from uqs)
Message-Id: <201102090958.p199wN9R000328@acme.spoerlein.net>
Date: Wed, 9 Feb 2011 10:58:23 +0100 (CET)
From: Ulrich Spoerlein <uqs@freebsd.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc: ed@freebsd.org
Subject: END key under screen not sending correct code to ncurses apps
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         154609
>Category:       kern
>Synopsis:       [ncurses] END key under screen not sending correct code to ncurses apps
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    ed
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Feb 09 10:00:22 UTC 2011
>Closed-Date:    
>Last-Modified:  Thu Feb 10 05:40:38 UTC 2011
>Originator:     Ulrich Spörlein
>Release:        FreeBSD 8.2-PRERELEASE amd64
>Organization:
>Environment:
	
>Description:
Something similar was fixed for the 'xterm' termcap entry a while ago. When
running mutt under screen, the same broken behaviour surfaces.

See

http://lists.freebsd.org/pipermail/freebsd-x11/2007-July/004891.html
http://git.freebsd.your.org/cgit/cgit.cgi/freebsd-head/commit/?id=8549e2650c7f1b0d98665bf5d1c3af16f1d830d3

>How-To-Repeat:
I tried several combinations to get this working, none successful though.

- Put 'term xterm' in screenrc, startup screen $TERMCAP looks suspiciously like the 'screen' entry, not 'xterm'.
- Putting termcap/terminfo/termcapinfo 'xterm ti@:te@:tc=xterm-xfree86:' into .screenrc, same result.
- Unsetting $TERMCAP inside screen, no go
- Overriding the 'screen' entry in .termcap, does nothing

Under linux it also only works when I don't override 'term xterm' in .screenrc.

Using mutt's what-key feature under FreeBSD within screen (no matter the term override):
Char = <Home>, Octal = 406, Decimal = 262   # Home key
Char = <F83>, Octal = 533, Decimal = 347    # End key

FreeBSD/xterm/TERM=xterm (no screen involved)
Char = <Home>, Octal = 406, Decimal = 262
Char = <End>, Octal = 550, Decimal = 360

Under Ubuntu/screen/TERM=screen
Char = <Home>, Octal = 406, Decimal = 262
Char = <End>, Octal = 550, Decimal = 360

Under Ubuntu/screen/TERM=xterm
Char = ~, Octal = 176, Decimal = 126  # Home key
Char = ~, Octal = 176, Decimal = 126  # End key, sic! neither of them DTRT in mutt

Under Ubuntu/xterm/TERM=xterm (no screen involved)
Char = <Home>, Octal = 406, Decimal = 262
Char = <End>, Octal = 550, Decimal = 360

So when in FreeBSD, starting a plain screen(1) I'm left with the following termcap:

% echo $TERMCAP
SC|screen|VT 100/ANSI X3.64 virtual terminal:\
        :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bs:bt=\E[Z:\
        :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:ct=\E[3g:\
        :do=^J:nd=\E[C:pt:rc=\E8:rs=\Ec:sc=\E7:st=\EH:up=\EM:\
        :le=^H:bl=^G:cr=^M:it#8:ho=\E[H:nw=\EE:ta=^I:is=\E)0:\
        :li#54:co#160:am:xn:xv:LP:sr=\EM:al=\E[L:AL=\E[%dL:\
        :cs=\E[%i%d;%dr:dl=\E[M:DL=\E[%dM:dc=\E[P:DC=\E[%dP:\
        :im=\E[4h:ei=\E[4l:mi:IC=\E[%d@:ks=\E[?1h\E=:\
        :ke=\E[?1l\E>:vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l:\
        :ti=\E[?1049h:te=\E[?1049l:us=\E[4m:ue=\E[24m:so=\E[3m:\
        :se=\E[23m:md=\E[1m:mr=\E[7m:me=\E[m:ms:\
        :Co#8:pa#64:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:AX:G0:\
        :as=\E(0:ae=\E(B:\
        :ac=\140\140aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++,,hhII00:\
        :k0=\E[10~:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:\
        :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
        :F1=\E[23~:F2=\E[24~:kb=^H:kh=\E[1~:@1=\E[1~:kH=\E[4~:\
        :@7=\E[4~:kN=\E[6~:kP=\E[5~:kI=\E[2~:kD=\E[3~:ku=\EOA:\
        :kd=\EOB:kr=\EOC:kl=\EOD:km:

While Ubuntu has this one:

% echo $TERMCAP
SC|screen|VT 100/ANSI X3.64 virtual terminal:\
        :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bs:bt=\E[Z:\
        :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:ct=\E[3g:\
        :do=^J:nd=\E[C:pt:rc=\E8:rs=\Ec:sc=\E7:st=\EH:up=\EM:\
        :le=^H:bl=^G:cr=^M:it#8:ho=\E[H:nw=\EE:ta=^I:is=\E)0:\
        :li#60:co#155:am:xn:xv:LP:sr=\EM:al=\E[L:AL=\E[%dL:\
        :cs=\E[%i%d;%dr:dl=\E[M:DL=\E[%dM:dc=\E[P:DC=\E[%dP:\
        :im=\E[4h:ei=\E[4l:mi:IC=\E[%d@:ks=\E[?1h\E=:\
        :ke=\E[?1l\E>:vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l:\
        :ti=\E[?1049h:te=\E[?1049l:us=\E[4m:ue=\E[24m:so=\E[3m:\
        :se=\E[23m:mb=\E[5m:md=\E[1m:mr=\E[7m:me=\E[m:ms:\
        :Co#8:pa#64:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:AX:\
        :vb=\Eg:G0:as=\E(0:ae=\E(B:\
        :ac=\140\140aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++,,hhII00:\
        :po=\E[5i:pf=\E[4i:k0=\E[10~:k1=\EOP:k2=\EOQ:k3=\EOR:\
        :k4=\EOS:k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
        :k9=\E[20~:k;=\E[21~:F1=\E[23~:F2=\E[24~:F3=\EO2P:\
        :F4=\EO2Q:F5=\EO2R:F6=\EO2S:F7=\E[15;2~:F8=\E[17;2~:\
        :F9=\E[18;2~:FA=\E[19;2~:kb=:K2=\EOE:kB=\E[Z:\
        :*4=\E[3;2~:*7=\E[1;2F:#2=\E[1;2H:#3=\E[2;2~:#4=\E[1;2D:\
        :%c=\E[6;2~:%e=\E[5;2~:%i=\E[1;2C:kh=\E[1~:@1=\E[1~:\
        :kH=\E[4~:@7=\E[4~:kN=\E[6~:kP=\E[5~:kI=\E[2~:kD=\E[3~:\
        :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:km:


>Fix:

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->ed 
Responsible-Changed-By: uqs 
Responsible-Changed-When: Wed Feb 9 10:03:12 UTC 2011 
Responsible-Changed-Why:  
You asked for this. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=154609 

From: Yuri Pankov <yuri.pankov@gmail.com>
To: bug-followup@freebsd.org
Cc:  
Subject: Re: misc/154609: END key under screen not sending correct code to
 ncurses apps
Date: Wed, 9 Feb 2011 13:17:37 +0300

 And it looks like it was supposed to be fixed in r189216, but I'm not
 sure if the fix did work (wasn't using screen at the time). End key
 works in mutt running under tmux (using the same TERM=screen and
 probably unrelated).
 
 
 Yuri
>Unformatted:
