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

Re: Read from command output broken on windows

Expand Messages
  • Jan Stocker
    ... Thank you all for your help. Of course you have double escape stuff when using cmd.exe twice, I missed that. By the way, here is a code snippet tested on
    Message 1 of 12 , Sep 14, 2013
    • 0 Attachment
      >> Something like (untested):
      >>
      >> if has('win32') && (v:version<7.3 || v:version==7.3 && !has('patch450')) && &shell=~cmd
      >> let s:shxq_sav = &shellxquote
      >> set shellxquote="
      >
      > Space, backslash and double-quote need backslash-escaping when used in a :set statement, see :help option-backslash
      >
      > Use
      > set shellxquote=\"
      > to set 'shellxquote' to just a double-quote character. Or else, use
      > let &shellxquote = '"'
      >
      >> endif
      >> !"c:\program files (x86)\xyz\xyz.exe" "arg1 with spaces" "arg 2 with spaces"
      >> if exists('s:shxq_sav')
      >> let &shellxquote = s:shxq_sav
      >> unlet s:shxq_sav
      >> endif
      >>

      Thank you all for your help. Of course you have double escape stuff when using cmd.exe twice, I missed that. By the way, here is a code snippet tested on Win32 based on your notes:

      if has('win32') && (v:version<703 || (v:version==703 && !has('patch450'))) && &shell=~'cmd'
      let s:shxq_sav = &shellxquote
      set shellxquote=\"
      endif

      silent! exe 'noautocmd r!'.a:cmdline

      if exists('s:shxq_sav')
      let &shellxquote = s:shxq_sav
      unlet s:shxq_sav
      endif

      Best regards,

      Jan

      --
      --
      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.
    Your message has been successfully submitted and would be delivered to recipients shortly.