emacs -nw keypad, tpu-edt.el, and C-h

Andy Koppe andy.koppe@gmail.com
Sat May 30 18:35:00 GMT 2009


Christopher Faylor wrote:
>>Now of course if emacs can translate low-level console I/O as it sees
>>fit, then the Cygwin DLL could also be able to translate Backspace into
>>^?  characters rather than ^H, in CYGWIN=tty mode anyway.  So I had a
>>look at fhandler_console.cc.  It already uses ReadConsoleInput(), so
>>mapping from VK_BACK to ^?  might be fairly straightforward actually.
>
> And a patch would have been appreciated...

Sorry, I didn't think I understood the code enough for that.


> However, I have made the change to Cygwin to translate backspace to ^?.
> It will be in the next snapshot.

Great, thanks! Does this apply both with and without CYGWIN=tty? And I
guess native console applications won't be affected by this?

The relevant termios default setting will need to change accordingly,
either by changing the definition of CERASE in include/sys/termios.h:

-#define CERASE	CTRL('H')
+#define CERASE	CDEL

Or by changing the initialisation in fhandler_termios.c:

-      tc->ti.c_cc[VERASE]	= CERASE;
+      tc->ti.c_cc[VERASE]	= CDEL;

The cygwin section in /etc/termcap doesn't have a kb entry, so luckily
no change needed there.

terminfo has an entry for backspace though:

$ tput -T cygwin kbs | cat -v
^H

So this has to to change as well:

+++ terminfo.src        2009-05-30 07:50:44.893933600 +0100
@@ -5221,7 +5221,7 @@
-       kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       kbs=^?, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,

And then there are rxvt and xterm and their termcap and terminfo
entries as well ...

One more thing: with your change, Alt can be used to override ^? and
get ^H instead. Usually though, Ctrl is used as the modifier for this,
whereas Alt acts as Meta (i.e. it sends a ^[ prefix).

Andy

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list