Here's the default MyDiff from a vim 6.2 install:
:function MyDiff()
: let opt = ''
: if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
: if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
: silent execute '!"C:\Program Files\Vim\vim62\diff" -a ' . opt . '"' .
v:fname_in . '" "' . v:fname_new . '" > "' . v:fname_out . '"'
:endfunction
I found that changing it to:
:function MyDiff()
: let opt = ''
: if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
: if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
: silent execute '!"C:\Program Files\Vim\vim62\diff" -a ' . opt . v:fname_in .
' ' . v:fname_new . ' > ' . v:fname_out
:endfunction
worked for me. The fname variables turn out to be ~-stlye
filenames, which for whatever reason my XP doesn't like them
being quoted. If the fname variables are ever likely to be
long-filename-style then this will break again, so it's really only a
workaround.
...Stu