Loading ...
Sorry, an error occurred while loading the content.

69318Re: Issue 127 in vim: TFS Plugin Broken by latest VIM

Expand Messages
  • vim@...
    Apr 29, 2013
    • 0 Attachment
      Comment #6 on issue 127 by fritzoph...@...: TFS Plugin Broken by
      latest VIM

      > 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

      You received this message because this project is configured to send all
      issue notifications to this address.
      You may adjust your notification preferences at:

      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+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    • Show all 8 messages in this topic