Christian Weisgerber wrote:

Edd Barrett <[EMAIL PROTECTED]> wrote:

I have here two x86 machines set up with the uk keymap (console not X). holding shift and pressing three should send #. It sends # followed by a newline. why is this?
It should send a pound sign, but a hash followed by \n is sent. The list changed the pound sign to a hash for some reason.

The top bit got "stripped" (reset to 0).

Anyway, the console driver does send a pound sign.  This character
is not part of (US-)ASCII.  The console produces the byte value
0xA3, which encodes a pound sign in ISO Latin 1 and related character
sets.

By default, ksh treats characters that have the top bit set as
Meta-<character & 0x7F>, i.e., in your case the pound sign is handled
just like the sequence <esc># would be handled.  From ksh(1):

    comment: ^[#
            If the current line does not begin with a comment character, one
            is added at the beginning of the line and the line is entered (as
            if return had been pressed); otherwise, the existing comment
            characters are removed and the cursor is placed at the beginning
            of the line.

So the console is fine, the keymap is fine, it is the application
that handles the character differently than you expect.  For OpenBSD's
ksh, there is a switch if you want to use 8-bit characters on the
command line:

$ set +o emacs-usemeta

Many thanks for clarifying this.

Edd

Reply via email to