NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: termcap issue



On Aug 22, 2015, at 18:02, Michael van Elst <mlelstv%serpens.de@localhost> wrote:
> 
> khym%azeotrope.org@localhost (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: khym%azeotrope.org@localhost |  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++



Home | Main Index | Thread Index | Old Index