On Wed, Jan 16, 2013 at 07:04:11PM +0100, Sven Joachim wrote:
> The relevant capability here is kUP; removing it fixes the Emacs problem
> for me.  

"select" could have been an issue with the home/end (pc-style)
versus select/remove (vt220-style).  xterm's used pc-style (again,
for quite a while).  changing the default isn't recommended.  We
use "home" and "end" because that's what most users expect.

select/remove home/end use different strings than kUP - 

#       Reconstructed via infocmp from file: 
/usr/local/ncurses/share/terminfo/x/xterm+pc+edit
xterm+pc+edit|fragment for pc-style editing keypad,
        kend=\E[4~, khome=\E[1~,

#       Reconstructed via infocmp from file: 
/usr/local/ncurses/share/terminfo/x/xterm+vt+edit
xterm+vt+edit|fragment for vt220-style editing keypad,
        kfnd=\E[1~, kslt=\E[4~,

("kslt" is "select", barring renaming by Emacs)

kUP isn't an obsolete key, but rather is one of the set of extended keys:
        kUP=\E[1;2A,

That could - hmm - be an issue with Emacs only if Emacs is using
ncurses' wgetch which would attempt to use or not use the definitions.

The last I knew, Emacs was a termcap application (like vim), and
couldn't see the extended keys(*).  That is, Emacs sees this as
a termcap application; the presence of extended capabilities doesn't
affect anything in this case:

xterm-new|modern xterm terminal emulator:\
        :am:bs:km:mi:ms:xn:\
        :co#80:it#8:li#24:\
        :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
        :K2=\EOE:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:\
        :UP=\E[%dA:ae=\E(B:al=\E[L:as=\E(0:bl=^G:bt=\E[Z:cd=\E[J:\
        :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
        :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\
        :ei=\E[4l:ho=\E[H:im=\E[4h:is=\E[!p\E[?3;4l\E[4l\E>:\
        :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:\
        :k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\
        :kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:kh=\EOH:kl=\EOD:\
        :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:\
        :me=\E[0m:mm=\E[?1034h:mo=\E[?1034l:mr=\E[7m:nd=\E[C:\
        :rc=\E8:sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
        :te=\E[?1049l:ti=\E[?1049h:ue=\E[24m:up=\E[A:us=\E[4m:\
        :vb=\E[?5h\E[?5l:ve=\E[?12l\E[?25h:vi=\E[?25l:\
        :vs=\E[?12;25h:

So I don't see a case where either confusion about the byte-stream or
confusion about the keycode from wgetch would lead to the reported
symptom - none of the data overlaps in the "right" way, and I don't
see any sign of data loss in the descriptions.

(memu/meml are seldom used, are unrelated to the keys, but that is a
different matter).
 
> > I'm not sure of the best way of fixing this.  Either the obsolete keys
> > shouldn't be included in the terminfo file, or the tic call should be
> > done without -x.  I'm leaning towards the second, but I don't have
> > enough knowledge of the package to be certain about it.
> 
> I'd like to get a comment from Thomas (CC'ed) before doing anything.
> Thanks for the report.

There's always the possibility of finding a malfunction someplace,
but turning off the extended capabilities isn't the way to fix that.

(*) while the extended capabilities are potentially visible to either
    termcap/terminfo applications, only those with exactly 2-character
    names are visible to termcap.

-- 
Thomas E. Dickey <[email protected]>
http://invisible-island.net
ftp://invisible-island.net

Attachment: signature.asc
Description: Digital signature

Reply via email to