On Aug 22, 2015, at 18:02, Michael van Elst <mlel...@serpens.de> wrote: > > k...@azeotrope.org (Dave Huang) writes: > >> Also, it seems that >> wscons on NetBSD/i386 sends ^? for Backspace. > > It depends on what keyboard you use, pckbd sends ^?, ukbd sends ^h.
Doesn't that inconsistency cause problems then? E.g., if the terminfo entry for wsvt25 says that erase is ^H and tset sets it to that, but you're using pckbd. Does the keyboard driver pass whatever erase key it's sending on to the tty layer? I commented out the call to tset in my .login and logged in on the console with a pckbd keyboard, and erase was set to ^?. I don't know how it was set, and I don't know whether it'd be set to ^H if I used a ukbd. From what I can tell, tset setting the erase character is mainly useful for serial terminals--for network terminals (pretty much just ssh these days, but IIRC this is the case for telnet too. Don't know about rlogin), the client will send the appropriate character to the server. On the one hand, I certainly want serial terminals to work properly... I use serial console on a few of my systems. But on the other hand, I suspect network logins are much more common than serial, and tset breaking network logins is a problem. They're certainly much more common for me... I ssh to NetBSD systems every day, but I only look at a serial console maybe every few months or even less than that. Is there some way to get this working properly everywhere? In another message, you said: > The tty is almost always set to something. You needed > to set something explicitely to an undefined value to > make tset configure it, which makes tset a bit useless. So what sets the tty to something? I don't know if this is a good idea, but my idea would be that if the erase character is known, it'll be set early on. This is the case for ssh, and if it's possible for the keyboard driver to pass the ASCII code for the backspace/delete/that key at the upper-right of the keyboard to the tty layer, I think it should do that. If there's no way of knowing, such as with a serial port, the kernel should leave the erase character undefined. Then tset would only set the erase character if it's undefined, and not change it if one's already set. -- Name: Dave Huang | Mammal, mammal / their names are called / INet: k...@azeotrope.org | they raise a paw / the bat, the cat / FurryMUCK: Dahan | dolphin and dog / koala bear and hog -- TMBG Dahan: Hani G Y+C 39 Y++ L+++ W- C++ T++ A+ E+ S++ V++ F- Q+++ P+ B+ PA+ PL++