Shift enter produces dot on command line

Pavel Tsekov ptsekov at gmx.net
Tue Nov 2 09:39:34 UTC 2004


Hello,

On Mon, 1 Nov 2004, Pavel Tsekov wrote:

> Hello,
>
> On Mon, 1 Nov 2004, Leonard den Ottolander wrote:
>
> > I see something odd when entering a shift-enter on the command line. A
> > dot appears which seems not to be interpreted. Also the other characters
> > that are typed afterwards are discarded.
>
> What is Shift+Enter supposed to do ? Under what kind of terminal do you
> run MC when this happens ? Maybe you terminal generates an escape sequnce
> for Shift + Enter and it must be filled in the list of keystrokes that
> should be ignored.

Shift + Enter is passed to the command prompt widget. And is processed for
some obscure reason by that code:

cb_ret_t
input_callback (WInput *in, widget_msg_t msg, int parm)
{
    int v;

    switch (msg) {
    case WIDGET_KEY:
        if (parm == XCTRL ('q')) {
            quote = 1;
            v = handle_char (in, mi_getch ());
            quote = 0;
            return v;
        }

        /* Keys we want others to handle */
        if (parm == KEY_UP || parm == KEY_DOWN || parm == ESC_CHAR
            || parm == KEY_F (10) || parm == XCTRL ('g') || parm == '\n')
            return MSG_NOT_HANDLED;

>        /* When pasting multiline text, insert literal Enter */
>        if ((parm & ~KEY_M_MASK) == '\n') {
>            quote = 1;
>            v = handle_char (in, '\n');
>            quote = 0;
>            return v;
>        }

        return handle_char (in, parm);


So you got the '.' because the '\n' is non-printable char. I don't know
what Shift + Enter has to do with pasting though ?!



More information about the mc-devel mailing list