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
> 

Reply via email to