Subject: bug#8132: 23.1; comint shell replaces \ in paths with /

From: [email-masked]
Date: Tue, 1 Mar 2011 02:06:37 -0500

On Tue, Mar 01, 2011 at 05:54:50AM +0200, Eli Zaretskii wrote:
> 
> It could be easier to make a wrapper around the file completion, which
> would simply convert all / into \ when the result is inserted into the
> shell buffer.  That's because working with / is very basic in
> file-name completion, and reaches deep into the code and the
> primitives it uses.
>
I suspect that that would break switches to commands.  I.e., it would
require quite involved logic to find out that in

  dir /a ../blah

/a should not be converted to \a.  So that code would have to keep
track which strings have been autocompleted and change / to \ *only*
in those strings.

(I did not quite understand your proposal, i.e., when and which text
would the conversion be applied to, so I apologize if that's what you
suggested.)

PS: The eshell manual is mostly empty, and when I write "help", I get the
output of the cmd.exe's help.  Needless to say, eshell does not recognize
commands that are built-in to cmd.exe (copy, for example).  I had to guess
myself towards using ls and cp, but how do I then get a list of all *eshell*
builtins?

Furthermore, neither comint with cmd.exe nor eshell like interactive commands.
I have just run "sc" which prints some usage info and a prompt like this:

Would you like to see help for the QUERY and QUERYEX commands? [ y | n ]: 

In raw cmd.exe (own window, outside of emacs), when I press 'n', the programm
immediately exits (no need to press enter after n).  In eshell, nothing
happens.  The shell never returns to the prompt; pressing up/down arrows
cycles through the history, but no input is accepted until I press C-c twice. 

Incidentally, the same thing happens in M-x shell, just that after pressing
C-c twice, it becomes visible that all input had been given to the shell,
just that the buffer hadn't been flushed.  This is the output after pressing
'n ENTER' to the above prompt:

--
Would you like to see help for the QUERY and QUERYEX commands? [ y | n ]: 
n

  C-c C-c

  c:\Users\Hue\Desktop>n
  'n' is not recognized as an internal or external command,
  operable program or batch file.
--

Pressing 'n' and C-c C-c is OK, i.e., I get the prompt and no extraneous input
has been sent to the shell.

--

I have also tried to run interactive Lua interpreter through M-x shell and
I had the same issue with interactivity.. basically no input/output to/from
the interpreter has been visible in the shell window.