Re: MC BUG: weird behavior if hit ENTER during command



Hello!

> Analysys: I was trying to figure it out while ago.
> When in this bug "mode" it finishes after the command
> within the function ??ExitSilently. I remember that it contained
> "silently".

I know of this bug and I can reproduce it on RedHat Linux 7.3 with the CVS 
version of MC.  But I'm not sure I agree with your analysis.

Let's just run "sleep 5" in bash (without mc) and press q while it's 
running.  Then let's enter "ls" and press Enter:

[proski portland proski]$ sleep 5
q[proski portland proski]$ qls
bash: qls: command not found
[proski portland proski]$

We "reproduced" this bug without mc!  Indeed, check function 
feed_subshell() in src/subshell.c - mc resends the user input to the shell 
while the shell is running command.  mc doesn't know if the command 
"consumes" all it's input or leaves something in the buffer of the 
subshell.

In the later case, the subshell interprets the remaining input itself.  
While mc believes that the command prompt is empty, it is not.

The shell should be instructed to ignore all output after the command
completion if mc is in the state when the command completion would turn on
the panels.  Note that we don't want this behavior if mc will stay in the 
subshell (although it won't be a big annoyance).

I don't know any clean solution for this problem.  Ctrl-C would redraw the
prompt, messing the screen.  Killing input buffer in a command specified
in PROMPT_COMMAND/precmd would require some "not blocking cat" that would
have to be distribted with mc.

By the way, I'm not sure it's the bug you are taking about.  It's hard to
understand what you mean.  Try describing one simple way to reproduce the
bug step by step.  Describe what keys you a pressing, not what you are
trying to achieve.

-- 
Regards,
Pavel Roskin




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]