Comment #6 on issue 127 by fritzoph...@gmail.com: TFS Plugin Broken by latest VIM
http://code.google.com/p/vim/issues/detail?id=127

Removing the ^ worked great, thank you. Was this a change to VIM's behavior?

...sort of.

It's a change in the DEFAULT behavior.

Previously something like this:

  "C:\Program Files\MyApp\myapp.exe" "some arguments"

Would get executed directly in cmd.exe with no escaping or anything, which the wonderful world of quoting in Windows cmd.exe would interpret as:

  C:\Program Files\MyApp\myapp.exe" "some arguments

Which would obviously fail because "C:\Program" is not an executable program (and probably doesn't even exist as a directory).

The plugin you are using dates from when this was still the default behavior and is probably the only workaround that worked for the author at the time. However, as I pointed out, I have no idea why it worked, because it was wrong anyway. You can't escape quotes within quotes in Windows.

Anyway, Vim changed over a series of changes, each one less broken than the last, to actually execute something like this in the cmd.exe shell for the example I give above:

  (^"C:\Program Files\MyApp\myapp.exe^" ^"some arguments^")

This works in almost every use case, although another thread recently found something strange going on with parentheses between quotes or something like that.

Support was also added to execute something like this instead, but it's not the default, and I'm not actually sure what it fixes:

  "(^"C:\Program Files\MyApp\myapp.exe^" ^"some arguments^")"

Remember how I said that escaping quotes within quotes won't work? You might wonder why the above works. Well...cmd.exe will always strip off the first and last quote in a line that begins and ends with a quote. So it's actually like those aren't even there. Again though, I don't remember the details. I think we ended up with defaults that work *almost* all the time but still fail in specific less-common scenarios.

It's probably easier to do as some plugin authors do, and just build a .bat script in a temp file and execute that, so you don't need to worry about quoting.

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Raspunde prin e-mail lui