Hi On Tue, Apr 23, 2013 at 5:14 PM, Ben Fritz <fritzophre...@gmail.com> wrote: > On Tuesday, April 23, 2013 8:58:20 AM UTC-5, Darek wrote: >> Hi >> >> >> >> On Mon, Apr 15, 2013 at 6:07 PM, Yegappan Lakshmanan >> >> <yegapp...@gmail.com> wrote: >> >> > >> >> > >> >> > This problem is caused by the shell command line quote escape >> >> > character in MS-Windows. >> >> > I have a fix for this issue. I will update the grep plugin and release >> >> > a new version. >> >> > >> >> > - Yegappan >> >> >> >> I was trying to analyze this problem further and what I found out that >> >> actually vim calls something like this underneath: >> >> cmd /c (C:\msys\bin\find.exe C:\dev\<my-project> -type d ( -name .SVN ) >> -prune >> >> -o -type f ( -name *.cpp ) -exec c:\msys\bin\grep.exe -s -n -- TODO {} ;) >> >> >> >> When I tried to paste it directly to cmd.exe I got: >> >> -prune was unexpected at this time. >> >> So no std output was generated and the process terminated with an error >> >> on stderr - hence no tmp file created. >> >> I think those brackets around cmd /c call conflict with brackets that make >> >> a part of find call itself. When I replace the outer brackets with quotation >> >> marks: >> >> cmd /c "C:\msys\bin\find.exe C:\dev\<my-project> -type d ( -name .SVN ) >> >> -prune -o -type f ( -name *.cpp ) -exec c:\msys\bin\grep.exe -s -n -- >> >> TODO {} ;" >> >> I get no error and expected output is printed. >> >> >> >> So my guess is either: >> >> - a different method is needed in the find call to group the conditions >> >> (does find even allow a different way of grouping?) or >> >> - inner brackets need somehow be escaped in the call or >> >> - vim system() call needs to be fixed to handle brackets in the argument >> string. >> >> >> >> Maybe is there another way to fix it or at least provide a temporary >> >> work-around? >> >> >> >> I would appreciate any hints that would enable me to use Rgrep until this >> >> problem gets fixed. >> > > There were several 7.3 patches in a row (I think in the 400s) handling > default shell escaping in Windows. I don't see your Vim version in this > thread, do you have those? > > If so, what values do you have for the following options? > > 'shellxquote' (should usually be ( or "() > 'shellquote' (should be empty) > 'shellslash' (causes problems with shellescape() function when set) > 'shellxescape' (should contain ( and )) > 'shell' (should be cmd.exe or full path to it) > 'shellcmdflag' (should be "/c" or "/c /s" or similar) > > I remember parentheses being problematic, but I thought that problem was > solved. > > See > http://vim.wikia.com/wiki/Execute_external_programs_asynchronously_under_Windows#Some_notes_on_cmd.exe_quoting > which also has links to the vim_dev discussions on the patches. > > If all your options look to be in order, you might be able to manually escape > the () characters with '^' but I didn't think you needed to. You might also > try "( instead of just ( as a shellxquote value. If neither of those work you > can try " but I *know* that has problems in some common situations, which is > why ( and "( were introduced. >
I have tried .761 and the yesterdays version from hg (reported as .905). I guess the shellquote valeus are ok since the fix in new grep.vim does the job. Thanks, Darek -- -- 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.