sundapeng / shellinabox

Automatically exported from code.google.com/p/shellinabox
Other
0 stars 0 forks source link

2.10 version introduces a keyboard layout problem #43

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Install and use Shellinabox 2.10
2. Use a french keyboard
3. Try to type the 'â' character

What is the expected output? What do you see instead?
Expected: 'â'
Seen: ']â' instead

What version of the product are you using? On what operating system?
Server: Shellinabox 2.10 on linux 2.6.31
Client: Windows XP SP3. Browsers: tried with FF 3.5.6 and IE8

This problem doesn't affect v2.9

Original issue reported on code.google.com by blanchar...@gmail.com on 24 Dec 2009 at 8:09

GoogleCodeExporter commented 9 years ago
This is an incredibly useful bug report. Thank you!

I recently had to make changes to the input handling, as there was a request to 
handle some of the more 
unusual CTRL sequences that were traditionally available on text terminals (see 
issue 31).

Javascript unfortunately has a really convoluted way of reporting key presses, 
and there are certain key 
combinations that cannot be uniquely distinguished (especially when dealing 
with non-US keyboard 
layouts). So, any time I fix an issue for a specific keyboard layout, it is 
possible that I break it for 
some other layout. And it is just possible that that's what happened here.

Unfortunately, I don't really know much about how French keyboards are supposed 
to work. So, not only 
can I not test this easily when making changes to the input handling, I also 
cannot easily fix the bug, 
now that you pointed it out to me.

As much as I love getting this particular bug report, as it is very useful in 
making sure ShellInABox 
does the right thing, I will need to ask you for a little more information in 
order for me to reproduce 
and hopefully fix the problem.

You say I should try to type "â", but for the life of me, I cannot figure out 
how to do that on a French 
keyboard -- I know how to do it on an American keyboard (on Linux), but that 
still works correctly in 
all versions of ShellInABox.

Can you please include the exact sequence of keys that I need to press to enter 
this character? And if 
you know of any other characters that do not work correctly, please also 
include the sequence of keys 
that are involved with inputting those characters.

A French keyboard layout might make sense to you, but to me it looks like a 
tool of the devil :-)

Original comment by zod...@gmail.com on 24 Dec 2009 at 5:39

GoogleCodeExporter commented 9 years ago
Thank you for taking into account this problem (which is annoying me a lot). I 
made
the required test in order to help you with this evil character :)
In order to produce 'â' on an American keyboard using the french (france) 
layout, you
need to press: [q

Let me know if it works for you. Otherwise, we'll find another way to spawn the 
devil :)

Original comment by blanchar...@gmail.com on 30 Dec 2009 at 9:04

GoogleCodeExporter commented 9 years ago
A small precision: I've noticed that the problem almost never occurs when 
making the
combination very quickly.

Original comment by blanchar...@gmail.com on 29 Jan 2010 at 12:45

GoogleCodeExporter commented 9 years ago
As far as I can see it now receives dead-keys as keystrokes too. For instance 
when I 
want to type an é, I first press shift+6 (or an '^') followed by an 'e'. 
ShellInABox 
now interprets this as '6é'.

So:

What steps will reproduce the problem?
1. Install and use Shellinabox 2.10
2. Use _any_ keyboard layout with dead keys (I'm using US International + dead 
keys)
3. Try to type the 'é' character

What is the expected output? What do you see instead?
Expected: 'é'
Seen: '6é' instead

What version of the product are you using? On what operating system?
Server: Shellinabox 2.10 on Debian Lenny
Client: Windows 7. Browsers: tried with Chrome 4.1.249.1036, FF 3.6 and IE8

This problem doesn't affect v2.9

Original comment by j.kazem...@gmail.com on 19 Mar 2010 at 5:34

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I have a fix for the French and Swiss keyboard layout issues.
There was also a typo in the encoding of unicode characters that prevented from 
typing the Euro sign.
Attached is my patch.

Original comment by macgar...@gmail.com on 20 Nov 2010 at 7:42

Attachments:

GoogleCodeExporter commented 9 years ago
Oops I missed a dead key on the Swiss keyboard

-      case 219: /* [            */ ch = this.applyModifiers(91, event); break;
+      // Conflicts with dead key ´ on Swiss keyboards
+      //case 219: /* [            */ ch = this.applyModifiers(91, event); 
break;

Original comment by macgar...@gmail.com on 20 Nov 2010 at 7:40

GoogleCodeExporter commented 9 years ago
Happens to in spanish keyboard é.

Original comment by ediaz...@gmail.com on 15 Nov 2011 at 4:46

GoogleCodeExporter commented 9 years ago
Patch applied for 2.11.

Original comment by beewoo...@gmail.com on 31 Mar 2012 at 7:20