Made some progress here! I haven't tried all your suggestions yet, but please
see below.
On Mon, Aug 01, 2016 at 10:06:49PM +0300, Dmitry Bogatov wrote:
>
> How insert this fancy letter "?"? I tried to `loadkeys es', but I
> failed to locate this letter.
My keyboard layout is Latin American Spanish: `loadkeys la-latin1'
The "ñ" is one key to the right of "l" (in qwerty) (where the ";" key is in
English layout). That is keycode 39.
>
> Also, let me ask you to check some of my wild guesses:
>
> - please, invoke `stty -a' in bad and good shells and tell,
> if there is any difference.
> - please, try to call 'reset' in bad shell and see, whether it helps
> - please, change your shell to /bin/sh and tell, whether anything changes
> (/bin/sh does not have .rc file, to make more clean experiment)
Hmmm. /bin/sh works well in all the six shells!!! That is something.
> - please apply following patch and tell, if anything changes
I will have to learn how to apply patches first. Please, be patient.
>
> --- a/login.c
> +++ b/login.c
> @@ -45,17 +45,9 @@ void die(const char *message) {
> struct termios oldtermios;
>
> static void echo_off() {
> - struct termios foo;
> - if (tcgetattr(0,&oldtermios))
> - die("tcgetattr failed");
> - foo=oldtermios;
> - foo.c_lflag &= ~(ECHO | ECHOE | ECHOK | ECHONL);
> - tcsetattr(0, TCSANOW, &foo);
> }
>
> static void echo_on() {
> - oldtermios.c_lflag |= ECHO | ECHOE | ECHOK;
> - tcsetattr(0, TCSANOW, &oldtermios);
> }
>
> main(int argc,char *argv[]) {
> --- a/fgetty.c
> +++ b/fgetty.c
> @@ -32,11 +32,6 @@ void error(char *message,int exitcode) {
> }
>
> static void echo_off() {
> - struct termios foo;
> - if (!tcgetattr(0,&foo)) {
> - foo.c_lflag &= ~(ECHO | ECHOE | ECHOK | ECHONL);
> - tcsetattr(0, TCSANOW, &foo);
> - }
> }
>
> int doutmp() {
>
> ---
> ---
>
> --
> Accept: text/plain, text/x-diff
> Accept-Language: eo,en,ru
> X-Web-Site: sinsekvu.github.io
>